ARM: BCM5301X: Specify PHY of USB 2.0 in DT
diff mbox

Message ID 1464808585-14996-1-git-send-email-zajec5@gmail.com
State New
Headers show

Commit Message

Rafał Miłecki June 1, 2016, 7:16 p.m. UTC
Driver for Northstar USB 2.0 PHY was added in 4.7-rc1 by:
commit d3feb4067335 ("phy: bcm-ns-usb2: new driver for USB 2.0 PHY on
Northstar").
It should be used to let EHCI platform driver init PHY.

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

Comments

Florian Fainelli June 1, 2016, 7:21 p.m. UTC | #1
On 06/01/2016 12:16 PM, Rafał Miłecki wrote:
> Driver for Northstar USB 2.0 PHY was added in 4.7-rc1 by:
> commit d3feb4067335 ("phy: bcm-ns-usb2: new driver for USB 2.0 PHY on
> Northstar").
> It should be used to let EHCI platform driver init PHY.
> 
> Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
> ---
>  arch/arm/boot/dts/bcm5301x.dtsi | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
> index 7d4d29b..9300e19 100644
> --- a/arch/arm/boot/dts/bcm5301x.dtsi
> +++ b/arch/arm/boot/dts/bcm5301x.dtsi
> @@ -140,6 +140,22 @@
>  		};
>  	};
>  
> +	phys {
> +		compatible = "simple-bus";
> +		ranges = <0x00000000 0x18000000 0x00100000>;
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +
> +		usb2_phy2: usb2-phy {
> +			compatible = "brcm,ns-usb2-phy";
> +			reg = <0x0000c000 0x1000>;
> +			reg-names = "dmu";
> +			#phy-cells = <0>;
> +			clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
> +			clock-names = "phy-ref-clk";
> +		};

You guys need to get everything straigthen up when it comes to busing
and child nodes for bcm53101x.dtsi, why do we need a "simple-bus" node
here which overlaps in part with the brcm-bus-axi node's range?

The more I look at BCMA and how it gets used for a non-external WLAN
card, and the less I am convinced it brings anything useful to the game,
quite the contrary...

> +	};
> +
>  	axi@18000000 {
>  		compatible = "brcm,bus-axi";
>  		reg = <0x18000000 0x1000>;
> @@ -217,6 +233,8 @@
>  
>  			#address-cells = <1>;
>  			#size-cells = <1>;
> +
> +			phys = <&usb2_phy2>;
>  		};
>  
>  		usb3: usb3@23000 {
>
Rafał Miłecki June 1, 2016, 7:35 p.m. UTC | #2
On 1 June 2016 at 21:21, Florian Fainelli <f.fainelli@gmail.com> wrote:
> On 06/01/2016 12:16 PM, Rafał Miłecki wrote:
>> Driver for Northstar USB 2.0 PHY was added in 4.7-rc1 by:
>> commit d3feb4067335 ("phy: bcm-ns-usb2: new driver for USB 2.0 PHY on
>> Northstar").
>> It should be used to let EHCI platform driver init PHY.
>>
>> Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
>> ---
>>  arch/arm/boot/dts/bcm5301x.dtsi | 18 ++++++++++++++++++
>>  1 file changed, 18 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
>> index 7d4d29b..9300e19 100644
>> --- a/arch/arm/boot/dts/bcm5301x.dtsi
>> +++ b/arch/arm/boot/dts/bcm5301x.dtsi
>> @@ -140,6 +140,22 @@
>>               };
>>       };
>>
>> +     phys {
>> +             compatible = "simple-bus";
>> +             ranges = <0x00000000 0x18000000 0x00100000>;
>> +             #address-cells = <1>;
>> +             #size-cells = <1>;
>> +
>> +             usb2_phy2: usb2-phy {
>> +                     compatible = "brcm,ns-usb2-phy";
>> +                     reg = <0x0000c000 0x1000>;
>> +                     reg-names = "dmu";
>> +                     #phy-cells = <0>;
>> +                     clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
>> +                     clock-names = "phy-ref-clk";
>> +             };
>
> You guys need to get everything straigthen up when it comes to busing
> and child nodes for bcm53101x.dtsi, why do we need a "simple-bus" node
> here which overlaps in part with the brcm-bus-axi node's range?

I believed I'm making things cleaner by adding a separated node for
PHYs (in the future there will be also USB 3.0 PHY and probably a PCIe
PHY). I'm fine with placing this PHY node somewhere else if you think
it better fits there.
Florian Fainelli June 1, 2016, 7:50 p.m. UTC | #3
On 06/01/2016 12:35 PM, Rafał Miłecki wrote:
> On 1 June 2016 at 21:21, Florian Fainelli <f.fainelli@gmail.com> wrote:
>> On 06/01/2016 12:16 PM, Rafał Miłecki wrote:
>>> Driver for Northstar USB 2.0 PHY was added in 4.7-rc1 by:
>>> commit d3feb4067335 ("phy: bcm-ns-usb2: new driver for USB 2.0 PHY on
>>> Northstar").
>>> It should be used to let EHCI platform driver init PHY.
>>>
>>> Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
>>> ---
>>>  arch/arm/boot/dts/bcm5301x.dtsi | 18 ++++++++++++++++++
>>>  1 file changed, 18 insertions(+)
>>>
>>> diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
>>> index 7d4d29b..9300e19 100644
>>> --- a/arch/arm/boot/dts/bcm5301x.dtsi
>>> +++ b/arch/arm/boot/dts/bcm5301x.dtsi
>>> @@ -140,6 +140,22 @@
>>>               };
>>>       };
>>>
>>> +     phys {
>>> +             compatible = "simple-bus";
>>> +             ranges = <0x00000000 0x18000000 0x00100000>;
>>> +             #address-cells = <1>;
>>> +             #size-cells = <1>;
>>> +
>>> +             usb2_phy2: usb2-phy {
>>> +                     compatible = "brcm,ns-usb2-phy";
>>> +                     reg = <0x0000c000 0x1000>;
>>> +                     reg-names = "dmu";
>>> +                     #phy-cells = <0>;
>>> +                     clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
>>> +                     clock-names = "phy-ref-clk";
>>> +             };
>>
>> You guys need to get everything straigthen up when it comes to busing
>> and child nodes for bcm53101x.dtsi, why do we need a "simple-bus" node
>> here which overlaps in part with the brcm-bus-axi node's range?
> 
> I believed I'm making things cleaner by adding a separated node for
> PHYs (in the future there will be also USB 3.0 PHY and probably a PCIe
> PHY). I'm fine with placing this PHY node somewhere else if you think
> it better fits there.

The intent looks good, but it seems to me (and the datasheet helps here
too) that extending the brcm,bus-axi node to cover a wider register
range size could allow you to put the different PHYs as child nodes of
that bus. That way even if the core is probed with BCMA you still have a
proper of_node refefence that your driver can use.

Maybe as a better immediate solution, something like the NAND controller
node would be more elegant, where it only consumes its register space
and not more?

Patch
diff mbox

diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
index 7d4d29b..9300e19 100644
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -140,6 +140,22 @@ 
 		};
 	};
 
+	phys {
+		compatible = "simple-bus";
+		ranges = <0x00000000 0x18000000 0x00100000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		usb2_phy2: usb2-phy {
+			compatible = "brcm,ns-usb2-phy";
+			reg = <0x0000c000 0x1000>;
+			reg-names = "dmu";
+			#phy-cells = <0>;
+			clocks = <&genpll BCM_NSP_GENPLL_USB_PHY_REF_CLK>;
+			clock-names = "phy-ref-clk";
+		};
+	};
+
 	axi@18000000 {
 		compatible = "brcm,bus-axi";
 		reg = <0x18000000 0x1000>;
@@ -217,6 +233,8 @@ 
 
 			#address-cells = <1>;
 			#size-cells = <1>;
+
+			phys = <&usb2_phy2>;
 		};
 
 		usb3: usb3@23000 {