diff mbox

[1/2,v2] ARM: dts: Add Aspeed SoC USB controllers to device-tree

Message ID 1515738064.31850.100.camel@kernel.crashing.org (mailing list archive)
State New, archived
Headers show

Commit Message

Benjamin Herrenschmidt Jan. 12, 2018, 6:21 a.m. UTC
This adds the USB controllers to the DT template of the
AST24xx and AST25xx SoCs.

This patch doesn't enable them by default on any board specific
.dts yet. This will be done when we have the necessary clock/reset
and pinmux support. In the meantime though, this will work if
u-boot configures things properly.

For the AST2400 I only added pinmux definition for port 1
which is dual USB1/USB2. There are additional USB1 only ports
that might require more work but I don't have HW to test at
hand so I'm leaving that to whoever cares.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---

v2: Previous patch was missing actually adding the nodes
    (which was an old patch in my tree I had forgotten to
    merge).

 arch/arm/boot/dts/aspeed-g4.dtsi | 27 +++++++++++++++++++++++++++
 arch/arm/boot/dts/aspeed-g5.dtsi | 40 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+)

Comments

Joel Stanley Jan. 15, 2018, 3:33 p.m. UTC | #1
On Thu, Jan 11, 2018 at 10:21 PM, Benjamin Herrenschmidt
<benh@kernel.crashing.org> wrote:
> This adds the USB controllers to the DT template of the
> AST24xx and AST25xx SoCs.
>
> This patch doesn't enable them by default on any board specific
> .dts yet. This will be done when we have the necessary clock/reset
> and pinmux support. In the meantime though, this will work if
> u-boot configures things properly.
>
> For the AST2400 I only added pinmux definition for port 1
> which is dual USB1/USB2. There are additional USB1 only ports
> that might require more work but I don't have HW to test at
> hand so I'm leaving that to whoever cares.
>
> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

Andrew, can you check the pinmux stuff for us please?

The other parts look good.

Cheers,

Joel

> ---
>
> v2: Previous patch was missing actually adding the nodes
>     (which was an old patch in my tree I had forgotten to
>     merge).
>
>  arch/arm/boot/dts/aspeed-g4.dtsi | 27 +++++++++++++++++++++++++++
>  arch/arm/boot/dts/aspeed-g5.dtsi | 40 ++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 67 insertions(+)
>
> diff --git a/arch/arm/boot/dts/aspeed-g4.dtsi b/arch/arm/boot/dts/aspeed-g4.dtsi
> index b0d8431a3700..e55f2ad5de59 100644
> --- a/arch/arm/boot/dts/aspeed-g4.dtsi
> +++ b/arch/arm/boot/dts/aspeed-g4.dtsi
> @@ -103,6 +103,23 @@
>                         status = "disabled";
>                 };
>
> +               ehci0: usb@1e6a1000 {
> +                       compatible = "aspeed,ast2400-ehci", "generic-ehci";
> +                       reg = <0x1e6a1000 0x100>;
> +                       interrupts = <5>;
> +                       clocks = <&syscon ASPEED_CLK_GATE_USBPORT1CLK>;
> +                       status = "disabled";
> +               };
> +
> +               uhci: usb@1e6b0000 {
> +                       compatible = "aspeed,ast2400-uhci", "generic-uhci";
> +                       reg = <0x1e6b0000 0x100>;
> +                       interrupts = <14>;
> +                       #ports = <3>;
> +                       clocks = <&syscon ASPEED_CLK_GATE_USBUHCICLK>;
> +                       status = "disabled";
> +               };
> +
>                 apb {
>                         compatible = "simple-bus";
>                         #address-cells = <1>;
> @@ -1227,6 +1244,16 @@
>                 groups = "USBCKI";
>         };
>
> +       pinctrl_usb2h_default: usb2h_default {
> +               function = "USB2H1";
> +               groups = "USB2H1";
> +       };
> +
> +       pinctrl_usb2d_default: usb2d_default {
> +               function = "USB2D1";
> +               groups = "USB2D1";
> +       };
> +
>         pinctrl_vgabios_rom_default: vgabios_rom_default {
>                 function = "VGABIOS_ROM";
>                 groups = "VGABIOS_ROM";
> diff --git a/arch/arm/boot/dts/aspeed-g5.dtsi b/arch/arm/boot/dts/aspeed-g5.dtsi
> index 40de3b66c33f..655258edee24 100644
> --- a/arch/arm/boot/dts/aspeed-g5.dtsi
> +++ b/arch/arm/boot/dts/aspeed-g5.dtsi
> @@ -138,6 +138,31 @@
>                         status = "disabled";
>                 };
>
> +               ehci0: usb@1e6a1000 {
> +                       compatible = "aspeed,ast2500-ehci", "generic-ehci";
> +                       reg = <0x1e6a1000 0x100>;
> +                       interrupts = <5>;
> +                       clocks = <&syscon ASPEED_CLK_GATE_USBPORT1CLK>;
> +                       status = "disabled";
> +               };
> +
> +               ehci1: usb@1e6a3000 {
> +                       compatible = "aspeed,ast2500-ehci", "generic-ehci";
> +                       reg = <0x1e6a3000 0x100>;
> +                       interrupts = <13>;
> +                       clocks = <&syscon ASPEED_CLK_GATE_USBPORT2CLK>;
> +                       status = "disabled";
> +               };
> +
> +               uhci: usb@1e6b0000 {
> +                       compatible = "aspeed,ast2500-uhci", "generic-uhci";
> +                       reg = <0x1e6b0000 0x100>;
> +                       interrupts = <14>;
> +                       #ports = <2>;
> +                       clocks = <&syscon ASPEED_CLK_GATE_USBUHCICLK>;
> +                       status = "disabled";
> +               };
> +
>                 apb {
>                         compatible = "simple-bus";
>                         #address-cells = <1>;
> @@ -1358,6 +1383,21 @@
>                 groups = "USBCKI";
>         };
>
> +       pinctrl_usb2ah_default: usb2ah_default {
> +               function = "USB2AH";
> +               groups = "USB2AH";
> +       };
> +
> +       pinctrl_usb11bhid_default: usb11bhid_default {
> +               function = "USB11BHID";
> +               groups = "USB11BHID";
> +       };
> +
> +       pinctrl_usb2bh_default: usb2bh_default {
> +               function = "USB2BH";
> +               groups = "USB2BH";
> +       };
> +
>         pinctrl_vgabiosrom_default: vgabiosrom_default {
>                 function = "VGABIOSROM";
>                 groups = "VGABIOSROM";
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Andrew Jeffery Jan. 15, 2018, 3:59 p.m. UTC | #2
On Fri, 2018-01-12 at 17:21 +1100, Benjamin Herrenschmidt wrote:
> This adds the USB controllers to the DT template of the
> AST24xx and AST25xx SoCs.
> 
> This patch doesn't enable them by default on any board specific
> .dts yet. This will be done when we have the necessary clock/reset
> and pinmux support. In the meantime though, this will work if
> u-boot configures things properly.
> 
> For the AST2400 I only added pinmux definition for port 1
> which is dual USB1/USB2. There are additional USB1 only ports
> that might require more work but I don't have HW to test at
> hand so I'm leaving that to whoever cares.
> 
> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> ---
> 
> v2: Previous patch was missing actually adding the nodes
>     (which was an old patch in my tree I had forgotten to
>     merge).
> 
>  arch/arm/boot/dts/aspeed-g4.dtsi | 27 +++++++++++++++++++++++++++
>  arch/arm/boot/dts/aspeed-g5.dtsi | 40 ++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 67 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/aspeed-g4.dtsi b/arch/arm/boot/dts/aspeed-g4.dtsi
> index b0d8431a3700..e55f2ad5de59 100644
> --- a/arch/arm/boot/dts/aspeed-g4.dtsi
> +++ b/arch/arm/boot/dts/aspeed-g4.dtsi
> @@ -103,6 +103,23 @@
>  			status = "disabled";
>  		};
>  
> +		ehci0: usb@1e6a1000 {
> +			compatible = "aspeed,ast2400-ehci", "generic-ehci";
> +			reg = <0x1e6a1000 0x100>;
> +			interrupts = <5>;
> +			clocks = <&syscon ASPEED_CLK_GATE_USBPORT1CLK>;
> +			status = "disabled";
> +		};
> +
> +		uhci: usb@1e6b0000 {
> +			compatible = "aspeed,ast2400-uhci", "generic-uhci";
> +			reg = <0x1e6b0000 0x100>;
> +			interrupts = <14>;
> +			#ports = <3>;

I tried to find the documentation for the #ports property, but it seems
to not exist. Couldn't find any users either, but maybe I didn't look
broadly enough. It is tested for in drivers/usb/host/uhci-platform.c
though, so I guess it's functional.

> +			clocks = <&syscon ASPEED_CLK_GATE_USBUHCICLK>;
> +			status = "disabled";
> +		};
> +
>  		apb {
>  			compatible = "simple-bus";
>  			#address-cells = <1>;
> @@ -1227,6 +1244,16 @@
>  		groups = "USBCKI";
>  	};
>  
> +	pinctrl_usb2h_default: usb2h_default {
> +		function = "USB2H1";
> +		groups = "USB2H1";
> +	};
> +
> +	pinctrl_usb2d_default: usb2d_default {
> +		function = "USB2D1";
> +		groups = "USB2D1";
> +	};
> +
>  	pinctrl_vgabios_rom_default: vgabios_rom_default {
>  		function = "VGABIOS_ROM";
>  		groups = "VGABIOS_ROM";
> diff --git a/arch/arm/boot/dts/aspeed-g5.dtsi b/arch/arm/boot/dts/aspeed-g5.dtsi
> index 40de3b66c33f..655258edee24 100644
> --- a/arch/arm/boot/dts/aspeed-g5.dtsi
> +++ b/arch/arm/boot/dts/aspeed-g5.dtsi
> @@ -138,6 +138,31 @@
>  			status = "disabled";
>  		};
>  
> +		ehci0: usb@1e6a1000 {
> +			compatible = "aspeed,ast2500-ehci", "generic-ehci";
> +			reg = <0x1e6a1000 0x100>;
> +			interrupts = <5>;
> +			clocks = <&syscon ASPEED_CLK_GATE_USBPORT1CLK>;
> +			status = "disabled";
> +		};
> +
> +		ehci1: usb@1e6a3000 {
> +			compatible = "aspeed,ast2500-ehci", "generic-ehci";
> +			reg = <0x1e6a3000 0x100>;
> +			interrupts = <13>;
> +			clocks = <&syscon ASPEED_CLK_GATE_USBPORT2CLK>;
> +			status = "disabled";
> +		};
> +
> +		uhci: usb@1e6b0000 {
> +			compatible = "aspeed,ast2500-uhci", "generic-uhci";
> +			reg = <0x1e6b0000 0x100>;
> +			interrupts = <14>;
> +			#ports = <2>;
> +			clocks = <&syscon ASPEED_CLK_GATE_USBUHCICLK>;
> +			status = "disabled";
> +		};
> +
>  		apb {
>  			compatible = "simple-bus";
>  			#address-cells = <1>;
> @@ -1358,6 +1383,21 @@
>  		groups = "USBCKI";
>  	};
>  
> +	pinctrl_usb2ah_default: usb2ah_default {
> +		function = "USB2AH";
> +		groups = "USB2AH";
> +	};
> +
> +	pinctrl_usb11bhid_default: usb11bhid_default {
> +		function = "USB11BHID";
> +		groups = "USB11BHID";
> +	};
> +
> +	pinctrl_usb2bh_default: usb2bh_default {
> +		function = "USB2BH";
> +		groups = "USB2BH";
> +	};
> +
>  	pinctrl_vgabiosrom_default: vgabiosrom_default {
>  		function = "VGABIOSROM";
>  		groups = "VGABIOSROM";

Reviewed-by: Andrew Jeffery <andrew@aj.id.au>

> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Benjamin Herrenschmidt Jan. 15, 2018, 9:56 p.m. UTC | #3
On Mon, 2018-01-15 at 09:59 -0600, Andrew Jeffery wrote:
> > +             uhci: usb@1e6b0000 {
> > +                     compatible = "aspeed,ast2400-uhci", "generic-uhci";
> > +                     reg = <0x1e6b0000 0x100>;
> > +                     interrupts = <14>;
> > +                     #ports = <3>;
> 
> I tried to find the documentation for the #ports property, but it seems
> to not exist. Couldn't find any users either, but maybe I didn't look
> broadly enough. It is tested for in drivers/usb/host/uhci-platform.c
> though, so I guess it's functional.

I added it to uhci-platform back when that was merged but forgot to
update the binding. I'll send a separate patch for that.

Cheers,
Ben.
Joel Stanley March 28, 2018, 12:32 a.m. UTC | #4
On 16 January 2018 at 02:29, Andrew Jeffery <andrew@aj.id.au> wrote:
> On Fri, 2018-01-12 at 17:21 +1100, Benjamin Herrenschmidt wrote:
>> This adds the USB controllers to the DT template of the
>> AST24xx and AST25xx SoCs.
>>
>> This patch doesn't enable them by default on any board specific
>> .dts yet. This will be done when we have the necessary clock/reset
>> and pinmux support. In the meantime though, this will work if
>> u-boot configures things properly.
>>
>> For the AST2400 I only added pinmux definition for port 1
>> which is dual USB1/USB2. There are additional USB1 only ports
>> that might require more work but I don't have HW to test at
>> hand so I'm leaving that to whoever cares.
>>
>> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
>> ---
>>
>> v2: Previous patch was missing actually adding the nodes
>>     (which was an old patch in my tree I had forgotten to
>>     merge).
>>
>>  arch/arm/boot/dts/aspeed-g4.dtsi | 27 +++++++++++++++++++++++++++
>>  arch/arm/boot/dts/aspeed-g5.dtsi | 40 ++++++++++++++++++++++++++++++++++++++++
>>  2 files changed, 67 insertions(+)

> Reviewed-by: Andrew Jeffery <andrew@aj.id.au>

This one also slipped through the cracks. I have applied it to the
aspeed tree with Andrew's review.

Cheers,

Joel
diff mbox

Patch

diff --git a/arch/arm/boot/dts/aspeed-g4.dtsi b/arch/arm/boot/dts/aspeed-g4.dtsi
index b0d8431a3700..e55f2ad5de59 100644
--- a/arch/arm/boot/dts/aspeed-g4.dtsi
+++ b/arch/arm/boot/dts/aspeed-g4.dtsi
@@ -103,6 +103,23 @@ 
 			status = "disabled";
 		};
 
+		ehci0: usb@1e6a1000 {
+			compatible = "aspeed,ast2400-ehci", "generic-ehci";
+			reg = <0x1e6a1000 0x100>;
+			interrupts = <5>;
+			clocks = <&syscon ASPEED_CLK_GATE_USBPORT1CLK>;
+			status = "disabled";
+		};
+
+		uhci: usb@1e6b0000 {
+			compatible = "aspeed,ast2400-uhci", "generic-uhci";
+			reg = <0x1e6b0000 0x100>;
+			interrupts = <14>;
+			#ports = <3>;
+			clocks = <&syscon ASPEED_CLK_GATE_USBUHCICLK>;
+			status = "disabled";
+		};
+
 		apb {
 			compatible = "simple-bus";
 			#address-cells = <1>;
@@ -1227,6 +1244,16 @@ 
 		groups = "USBCKI";
 	};
 
+	pinctrl_usb2h_default: usb2h_default {
+		function = "USB2H1";
+		groups = "USB2H1";
+	};
+
+	pinctrl_usb2d_default: usb2d_default {
+		function = "USB2D1";
+		groups = "USB2D1";
+	};
+
 	pinctrl_vgabios_rom_default: vgabios_rom_default {
 		function = "VGABIOS_ROM";
 		groups = "VGABIOS_ROM";
diff --git a/arch/arm/boot/dts/aspeed-g5.dtsi b/arch/arm/boot/dts/aspeed-g5.dtsi
index 40de3b66c33f..655258edee24 100644
--- a/arch/arm/boot/dts/aspeed-g5.dtsi
+++ b/arch/arm/boot/dts/aspeed-g5.dtsi
@@ -138,6 +138,31 @@ 
 			status = "disabled";
 		};
 
+		ehci0: usb@1e6a1000 {
+			compatible = "aspeed,ast2500-ehci", "generic-ehci";
+			reg = <0x1e6a1000 0x100>;
+			interrupts = <5>;
+			clocks = <&syscon ASPEED_CLK_GATE_USBPORT1CLK>;
+			status = "disabled";
+		};
+
+		ehci1: usb@1e6a3000 {
+			compatible = "aspeed,ast2500-ehci", "generic-ehci";
+			reg = <0x1e6a3000 0x100>;
+			interrupts = <13>;
+			clocks = <&syscon ASPEED_CLK_GATE_USBPORT2CLK>;
+			status = "disabled";
+		};
+
+		uhci: usb@1e6b0000 {
+			compatible = "aspeed,ast2500-uhci", "generic-uhci";
+			reg = <0x1e6b0000 0x100>;
+			interrupts = <14>;
+			#ports = <2>;
+			clocks = <&syscon ASPEED_CLK_GATE_USBUHCICLK>;
+			status = "disabled";
+		};
+
 		apb {
 			compatible = "simple-bus";
 			#address-cells = <1>;
@@ -1358,6 +1383,21 @@ 
 		groups = "USBCKI";
 	};
 
+	pinctrl_usb2ah_default: usb2ah_default {
+		function = "USB2AH";
+		groups = "USB2AH";
+	};
+
+	pinctrl_usb11bhid_default: usb11bhid_default {
+		function = "USB11BHID";
+		groups = "USB11BHID";
+	};
+
+	pinctrl_usb2bh_default: usb2bh_default {
+		function = "USB2BH";
+		groups = "USB2BH";
+	};
+
 	pinctrl_vgabiosrom_default: vgabiosrom_default {
 		function = "VGABIOSROM";
 		groups = "VGABIOSROM";