diff mbox

ARM: BCM5301X: Set GPIO enabling USB power on Netgear R7000

Message ID 1466509358-25498-1-git-send-email-zajec5@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Rafał Miłecki June 21, 2016, 11:42 a.m. UTC
There is one GPIO controlling power for both USB ports.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
---
 arch/arm/boot/dts/bcm4709-netgear-r7000.dts | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Imre Kaloz June 21, 2016, 12:22 p.m. UTC | #1
Is there any reason you are not handling this properly as a regulator with  
usb-nop-xceiv?


Imre

On Tue, 21 Jun 2016 13:42:38 +0200, Rafał Miłecki <zajec5@gmail.com> wrote:

> There is one GPIO controlling power for both USB ports.
>
> Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
> ---
>  arch/arm/boot/dts/bcm4709-netgear-r7000.dts | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/arch/arm/boot/dts/bcm4709-netgear-r7000.dts  
> b/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
> index a22ed14..a76486b 100644
> --- a/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
> +++ b/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
> @@ -104,3 +104,11 @@
>  &uart0 {
>  	status = "okay";
>  };
> +
> +&usb2 {
> +	vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
> +};
> +
> +&usb3 {
> +	vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
> +};
Rafał Miłecki June 21, 2016, 12:26 p.m. UTC | #2
On 21 June 2016 at 14:22, Imre Kaloz <kaloz@openwrt.org> wrote:
> Is there any reason you are not handling this properly as a regulator with
> usb-nop-xceiv?

We can't use USB NOP PHY as we need a specific PHY driver for Broadcom's USB.

I sent patch for this:
https://patchwork.kernel.org/patch/9148097/
Imre Kaloz June 21, 2016, 2:29 p.m. UTC | #3
On Tue, 21 Jun 2016 14:26:11 +0200, Rafał Miłecki <zajec5@gmail.com> wrote:

> On 21 June 2016 at 14:22, Imre Kaloz <kaloz@openwrt.org> wrote:
>> Is there any reason you are not handling this properly as a regulator  
>> with
>> usb-nop-xceiv?
>
> We can't use USB NOP PHY as we need a specific PHY driver for Broadcom's  
> USB.

I see. That shouldn't stop you from addressing the regulator part, tho ;)


Imre
Rafał Miłecki June 21, 2016, 3:23 p.m. UTC | #4
On 21 June 2016 at 16:29, Imre Kaloz <kaloz@openwrt.org> wrote:
> On Tue, 21 Jun 2016 14:26:11 +0200, Rafał Miłecki <zajec5@gmail.com> wrote:
>
>> On 21 June 2016 at 14:22, Imre Kaloz <kaloz@openwrt.org> wrote:
>>>
>>> Is there any reason you are not handling this properly as a regulator
>>> with
>>> usb-nop-xceiv?
>>
>>
>> We can't use USB NOP PHY as we need a specific PHY driver for Broadcom's
>> USB.
>
>
> I see. That shouldn't stop you from addressing the regulator part, tho ;)

How? Be more specific please.
Imre Kaloz June 22, 2016, 10:21 a.m. UTC | #5
On Tue, 21 Jun 2016 17:23:18 +0200, Rafał Miłecki <zajec5@gmail.com> wrote:

> On 21 June 2016 at 16:29, Imre Kaloz <kaloz@openwrt.org> wrote:
>> On Tue, 21 Jun 2016 14:26:11 +0200, Rafał Miłecki <zajec5@gmail.com>  
>> wrote:
>>
>>> On 21 June 2016 at 14:22, Imre Kaloz <kaloz@openwrt.org> wrote:
>>>>
>>>> Is there any reason you are not handling this properly as a regulator
>>>> with
>>>> usb-nop-xceiv?
>>>
>>>
>>> We can't use USB NOP PHY as we need a specific PHY driver for  
>>> Broadcom's
>>> USB.
>>
>>
>> I see. That shouldn't stop you from addressing the regulator part, tho  
>> ;)
>
> How? Be more specific please.
>

Instead of blindly enabling a GPIO, you should define that GPIO line as a  
fixed regulator and make the USB phy driver handle it. Take a look at  
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=7776ab70d75ff9857343e44e428744d81c30ce1b  
for example.


Imre
diff mbox

Patch

diff --git a/arch/arm/boot/dts/bcm4709-netgear-r7000.dts b/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
index a22ed14..a76486b 100644
--- a/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
+++ b/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
@@ -104,3 +104,11 @@ 
 &uart0 {
 	status = "okay";
 };
+
+&usb2 {
+	vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
+};
+
+&usb3 {
+	vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
+};