From patchwork Tue Apr 9 08:28:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 10890705 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B4A9E17E1 for ; Tue, 9 Apr 2019 08:29:43 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A129B274A3 for ; Tue, 9 Apr 2019 08:29:43 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 956AA285BD; Tue, 9 Apr 2019 08:29:43 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3DE9C274A3 for ; Tue, 9 Apr 2019 08:29:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726685AbfDII3C (ORCPT ); Tue, 9 Apr 2019 04:29:02 -0400 Received: from mail-wr1-f67.google.com ([209.85.221.67]:35159 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726062AbfDII3C (ORCPT ); Tue, 9 Apr 2019 04:29:02 -0400 Received: by mail-wr1-f67.google.com with SMTP id w1so19708537wrp.2 for ; Tue, 09 Apr 2019 01:29:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=oDHFDpA+LDAaFrEgc9NLsZxvCSbtmYUT07CTCE02Foc=; b=detqpy/lFCxRKBEtg/rbfa4pFoXMjmaZqVapKPvZQHv07lV1eutRqeK7OxiNldd3uu n6l0XywIpgXn7K2n6pUZhkMgxdEgimGcTseLs2e8TlKH3zC2jugfMuPPoSSqCiHS8/zF cqH/dVpHlRnImOWKB5g/ae/tzWMzYmaxTUNpDdFS2QTl7yAbXiLr8iJmD0aT5VwCZF7r 1vCi1/61UxuDoriTtb2AJF37bKe6K4b4eqx1u7GXPJYYr/WjBIZTas8vCgC8S69vfEvu j4ku1DQU1oaHeuw//ce8oNyPnq+bsZP9ukBi9jWlimCPd0EYwCopVSt6yf8xGLa2j7n5 hkbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=oDHFDpA+LDAaFrEgc9NLsZxvCSbtmYUT07CTCE02Foc=; b=UxakWXwOD4vCLEh/w52/5/+W1X6B2kV2bFa8BHp89dkoxmLD+fr5I6WtmchuN9MPZw +b+1OJYVbeDX3XTfWdccGwTtREzDMyJFTqalwQi4GvOAH9VNzWe8gTvZXTldAYsBR5hJ kSceS4PA4ErFrN8a5+iMJC/ZGWUkAxzNZm3DRUSYuSpCEt36YnVgd0lKDc62O8PvUj2K 1iHiiEGd7RAzvNjPrlED6Uef278LcJ3mSlXROGShpduoCWPYv5jS8GfSIMdGOjmuPNMW ch9LvzbhQwjMLHPrYy0hKVEeIBYIIHx+j044OaQ1DLeyPTVbei8RmtNS53y6kvW5t4GK Qozw== X-Gm-Message-State: APjAAAW7hiCXaKDGX3MBuQQeXAeUyslJpyq6bHNSELCn33V8BTHd3Lm+ 8vsj6PJJBoAZqBsyRhVVyz8PMQ== X-Google-Smtp-Source: APXvYqwCpN8co4hFEFy3tLbJi0y3Wsz1ehUVA7yESuheTK1WxaISMtk9iED7jiKaRU713M2sj+5QfA== X-Received: by 2002:adf:f285:: with SMTP id k5mr6966327wro.110.1554798540359; Tue, 09 Apr 2019 01:29:00 -0700 (PDT) Received: from debian-brgl.home ([2a01:cb1d:af:5b00:6d6c:8493:1ab5:dad7]) by smtp.gmail.com with ESMTPSA id c20sm59968651wre.28.2019.04.09.01.28.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 09 Apr 2019 01:28:59 -0700 (PDT) From: Bartosz Golaszewski To: Sekhar Nori , Kevin Hilman , Alan Stern , Greg Kroah-Hartman Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH v3 0/6] ARM: davinci: ohci-da8xx: model the vbus GPIO as a fixed regulator Date: Tue, 9 Apr 2019 10:28:49 +0200 Message-Id: <20190409082855.15373-1-brgl@bgdev.pl> X-Mailer: git-send-email 2.21.0 MIME-Version: 1.0 Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Bartosz Golaszewski Historically the power supply management in this driver has been handled in two separate places in parallel. Device-tree users simply defined an appropriate regulator, while two boards with no DT support (da830-evm and omapl138-hawk) passed functions defined in their respective board files over platform data. These functions simply used legacy GPIO calls to watch the oc GPIO for interrupts and disable the vbus GPIO when the irq fires. Commit d193abf1c913 ("usb: ohci-da8xx: add vbus and overcurrent gpios") updated these GPIO calls to the modern API and moved them inside the driver. This however is not the optimal solution for the vbus GPIO as it duplicates code. Instead we should model the GPIO as a fixed regulator that can be controlled with a GPIO. This series adds fixed regulators for all users of vbus GPIO, adds overcurrent protection using the existing vbus regulator in the USB driver and removes the vbus GPIO calls once they're no longer used. Tested on da830-evm with the module both built-in and loadable. v1 -> v2: - add patch 1/6 that fixes an existing problem with missing array sentinels in GPIO lookups - add patch 2/6 that removes an unnecessary use count variable from the driver - reorder the changes: add support for overcurrent protection using the existing vbus regulator first, then setup fixed regulators in board files and finally remove the vbus GPIO from the ohci driver v2 -> v3: - change the device id of the fixed regulator to 0 since it's the first one - drop the interrupt-context handler and only use the thread - drop Alan's Ack from patch 3/6 as it's changed significantly - rebase on top of v5.1-rc4 Bartosz Golaszewski (6): ARM: davinci: add missing sentinels to GPIO lookup tables usb: ohci-da8xx: let the regulator framework keep track of use count usb: ohci-da8xx: disable the regulator if the overcurrent irq fired ARM: davinci: omapl138-hawk: add a fixed regulator for ohci-da8xx ARM: davinci: da830-evm: add a fixed regulator for ohci-da8xx usb: ohci-da8xx: drop the vbus GPIO arch/arm/mach-davinci/board-da830-evm.c | 51 +++++++++++++++++++-- arch/arm/mach-davinci/board-da850-evm.c | 1 + arch/arm/mach-davinci/board-dm355-evm.c | 1 + arch/arm/mach-davinci/board-dm644x-evm.c | 1 + arch/arm/mach-davinci/board-omapl138-hawk.c | 50 ++++++++++++++++++-- drivers/usb/host/ohci-da8xx.c | 46 ++++++++----------- 6 files changed, 116 insertions(+), 34 deletions(-)