* [PATCH 1/8] dt-bindings: phy: Add Amlogic G12A USB2 PHY Bindings
[not found] <20190212151413.24632-1-narmstrong@baylibre.com>
@ 2019-02-12 15:14 ` Neil Armstrong
2019-02-17 21:58 ` Martin Blumenstingl
2019-02-28 15:18 ` Rob Herring
2019-02-12 15:14 ` [PATCH 2/8] dt-bindings: phy: Add Amlogic G12A USB3+PCIE Combo " Neil Armstrong
` (2 subsequent siblings)
3 siblings, 2 replies; 13+ messages in thread
From: Neil Armstrong @ 2019-02-12 15:14 UTC (permalink / raw)
To: gregkh, hminas, balbi, kishon, devicetree
Cc: linux-amlogic, linux-usb, linux-kernel, linux-arm-kernel,
Neil Armstrong
Add the Amlogic G12A Family USB2 OTG PHY Bindings
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
.../bindings/phy/meson-g12a-usb2-phy.txt | 22 +++++++++++++++++++
1 file changed, 22 insertions(+)
create mode 100644 Documentation/devicetree/bindings/phy/meson-g12a-usb2-phy.txt
diff --git a/Documentation/devicetree/bindings/phy/meson-g12a-usb2-phy.txt b/Documentation/devicetree/bindings/phy/meson-g12a-usb2-phy.txt
new file mode 100644
index 000000000000..a6ebc3dea159
--- /dev/null
+++ b/Documentation/devicetree/bindings/phy/meson-g12a-usb2-phy.txt
@@ -0,0 +1,22 @@
+* Amlogic G12A USB2 PHY binding
+
+Required properties:
+- compatible: Should be "amlogic,meson-g12a-usb2-phy"
+- reg: The base address and length of the registers
+- #phys-cells: must be 0 (see phy-bindings.txt in this directory)
+- clocks: a phandle to the clock of this PHY
+- clock-names: must be "xtal"
+- resets: a phandle to the reset line of this PHY
+- reset-names: must be "phy"
+- phy-supply: see phy-bindings.txt in this directory
+
+Example:
+ usb2_phy0: phy@36000 {
+ compatible = "amlogic,g12a-usb2-phy";
+ reg = <0x0 0x36000 0x0 0x2000>;
+ clocks = <&xtal>;
+ clock-names = "xtal";
+ resets = <&reset RESET_USB_PHY21>;
+ reset-names = "phy";
+ #phy-cells = <0>;
+ };
--
2.20.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 2/8] dt-bindings: phy: Add Amlogic G12A USB3+PCIE Combo PHY Bindings
[not found] <20190212151413.24632-1-narmstrong@baylibre.com>
2019-02-12 15:14 ` [PATCH 1/8] dt-bindings: phy: Add Amlogic G12A USB2 PHY Bindings Neil Armstrong
@ 2019-02-12 15:14 ` Neil Armstrong
2019-02-17 22:03 ` Martin Blumenstingl
2019-02-12 15:14 ` [PATCH 3/8] dt-bindings: usb: dwc2: Add Amlogic G12A DWC2 Compatible Neil Armstrong
2019-02-12 15:14 ` [PATCH 4/8] dt-bindings: usb: dwc3: Add Amlogic G12A DWC3 Glue Bindings Neil Armstrong
3 siblings, 1 reply; 13+ messages in thread
From: Neil Armstrong @ 2019-02-12 15:14 UTC (permalink / raw)
To: gregkh, hminas, balbi, kishon, devicetree
Cc: linux-amlogic, linux-usb, linux-kernel, linux-arm-kernel,
Neil Armstrong
Add the Amlogic G12A Family USB3 + PCIE Combo PHY Bindings.
This PHY can provide exclusively USB3 or PCIE support on shared I/Os.
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
.../bindings/phy/meson-g12a-usb3-pcie-phy.txt | 25 +++++++++++++++++++
1 file changed, 25 insertions(+)
create mode 100644 Documentation/devicetree/bindings/phy/meson-g12a-usb3-pcie-phy.txt
diff --git a/Documentation/devicetree/bindings/phy/meson-g12a-usb3-pcie-phy.txt b/Documentation/devicetree/bindings/phy/meson-g12a-usb3-pcie-phy.txt
new file mode 100644
index 000000000000..714d751091f5
--- /dev/null
+++ b/Documentation/devicetree/bindings/phy/meson-g12a-usb3-pcie-phy.txt
@@ -0,0 +1,25 @@
+* Amlogic G12A USB3 + PCIE Combo PHY binding
+
+Required properties:
+- compatible: Should be "amlogic,meson-g12a-usb3-pcie-phy"
+- #phys-cells: must be 1. The cell number is used to select the phy mode
+ as defined in <dt-bindings/phy/phy.h> between PHY_TYPE_USB3 and PHY_TYPE_PCIE
+- reg: The base address and length of the registers
+- clocks: a phandle to the 100MHz reference clock of this PHY
+- clock-names: must be "ref_clk"
+- resets: phandle to the reset lines for:
+ - the PHY control
+ - the USB3+PCIE PHY
+ - the PHY registers
+
+Example:
+ usb3_pcie_phy: phy@46000 {
+ compatible = "amlogic,g12a-usb3-pcie-phy";
+ reg = <0x0 0x46000 0x0 0x2000>;
+ clocks = <&clkc CLKID_PCIE_PLL>;
+ clock-names = "ref_clk";
+ resets = <&reset RESET_PCIE_CTRL_A>,
+ <&reset RESET_PCIE_PHY>,
+ <&reset RESET_PCIE_APB>;
+ #phy-cells = <1>;
+ };
--
2.20.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 3/8] dt-bindings: usb: dwc2: Add Amlogic G12A DWC2 Compatible
[not found] <20190212151413.24632-1-narmstrong@baylibre.com>
2019-02-12 15:14 ` [PATCH 1/8] dt-bindings: phy: Add Amlogic G12A USB2 PHY Bindings Neil Armstrong
2019-02-12 15:14 ` [PATCH 2/8] dt-bindings: phy: Add Amlogic G12A USB3+PCIE Combo " Neil Armstrong
@ 2019-02-12 15:14 ` Neil Armstrong
2019-02-17 22:07 ` Martin Blumenstingl
2019-02-28 16:14 ` Rob Herring
2019-02-12 15:14 ` [PATCH 4/8] dt-bindings: usb: dwc3: Add Amlogic G12A DWC3 Glue Bindings Neil Armstrong
3 siblings, 2 replies; 13+ messages in thread
From: Neil Armstrong @ 2019-02-12 15:14 UTC (permalink / raw)
To: gregkh, hminas, balbi, kishon, devicetree
Cc: Neil Armstrong, linux-amlogic, linux-usb, linux-arm-kernel,
linux-kernel
Adds the specific compatible string for the DWC2 IP found in the
Amlogic G12A SoC Family.
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
Documentation/devicetree/bindings/usb/dwc2.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/usb/dwc2.txt b/Documentation/devicetree/bindings/usb/dwc2.txt
index 6dc3c4a34483..e150b7b227c9 100644
--- a/Documentation/devicetree/bindings/usb/dwc2.txt
+++ b/Documentation/devicetree/bindings/usb/dwc2.txt
@@ -14,6 +14,7 @@ Required properties:
- "amlogic,meson8-usb": The DWC2 USB controller instance in Amlogic Meson8 SoCs;
- "amlogic,meson8b-usb": The DWC2 USB controller instance in Amlogic Meson8b SoCs;
- "amlogic,meson-gxbb-usb": The DWC2 USB controller instance in Amlogic S905 SoCs;
+ - "amlogic,meson-g12a-usb": The DWC2 USB controller instance in Amlogic G12A SoCs;
- "amcc,dwc-otg": The DWC2 USB controller instance in AMCC Canyonlands 460EX SoCs;
- snps,dwc2: A generic DWC2 USB controller with default parameters.
- "st,stm32f4x9-fsotg": The DWC2 USB FS/HS controller instance in STM32F4x9 SoCs
--
2.20.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 4/8] dt-bindings: usb: dwc3: Add Amlogic G12A DWC3 Glue Bindings
[not found] <20190212151413.24632-1-narmstrong@baylibre.com>
` (2 preceding siblings ...)
2019-02-12 15:14 ` [PATCH 3/8] dt-bindings: usb: dwc2: Add Amlogic G12A DWC2 Compatible Neil Armstrong
@ 2019-02-12 15:14 ` Neil Armstrong
2019-02-24 19:52 ` Martin Blumenstingl
2019-02-28 16:29 ` Rob Herring
3 siblings, 2 replies; 13+ messages in thread
From: Neil Armstrong @ 2019-02-12 15:14 UTC (permalink / raw)
To: gregkh, hminas, balbi, kishon, devicetree
Cc: Neil Armstrong, linux-amlogic, linux-usb, linux-arm-kernel,
linux-kernel
Adds the bindings for the Amlogic G12A USB Glue HW.
The Amlogic G12A SoC Family embeds 2 USB Controllers :
- a DWC3 IP configured as Host for USB2 and USB3
- a DWC2 IP configured as Peripheral USB2 Only
A glue connects these both controllers to 2 USB2 PHYs,
and optionnally to an USB3+PCIE Combo PHY shared with the PCIE controller.
The Glue configures the UTMI 8bit interfaces for the USB2 PHYs, including
routing of the OTG PHY between the DWC3 and DWC2 controllers, and
setups the on-chip OTG mode selection for this PHY.
The PHYs are children of the Glue node since the Glue controls the interface
with the PHY, not the DWC3 controller.
The PHY interconnect is handled into ports subnodes, which eases describing
which PHY is enabled (like the USB3 shared PHY) and futures layouts on
derivatives of the G12A Family.
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
.../devicetree/bindings/usb/amlogic,dwc3.txt | 109 ++++++++++++++++++
1 file changed, 109 insertions(+)
diff --git a/Documentation/devicetree/bindings/usb/amlogic,dwc3.txt b/Documentation/devicetree/bindings/usb/amlogic,dwc3.txt
index 9a8b631904fd..c7c4726ef10d 100644
--- a/Documentation/devicetree/bindings/usb/amlogic,dwc3.txt
+++ b/Documentation/devicetree/bindings/usb/amlogic,dwc3.txt
@@ -40,3 +40,112 @@ Example device nodes:
phy-names = "usb2-phy", "usb3-phy";
};
};
+
+Amlogic Meson G12A DWC3 USB SoC Controller Glue
+
+The Amlogic G12A embeds a DWC3 USB IP Core configured for USB2 and USB3
+in host-only mode, and a DWC2 IP Core configured for USB2 peripheral mode
+only.
+
+A glue connects the DWC3 core to USB2 PHYs and optionnaly to an USB3 PHY.
+
+One of the USB2 PHY can be re-routed in peripheral mode to a DWC2 USB IP.
+
+The DWC3 Glue controls the PHY routing and power, an interrupt line is
+connected to the Glue to serve as OTG ID change detection.
+
+Required properties:
+- compatible: Should be "amlogic,meson-g12a-usb-ctrl"
+- clocks: a handle for the "USB" clock
+- clock-names: must be "usb"
+- resets: a handle for the shared "USB" reset line
+- reset-names: must be "usb"
+- reg: The base address and length of the registers
+- interrupts: the interrupt specifier for the OTG detection
+
+Required child nodes:
+
+USB Ports are described as child 'port' nodes grouped under a 'ports' node,
+with #address-cells, #size-cells specified.
+
+Each 'port' sub-node identifies a possible USB Port served by an USB PHY
+identified by the 'phy' property as decribed in ../phy/phy-bindings.txt
+
+Each 'port' is identified by a reg property to number the port.
+
+The following table lists for each supported model the port number
+corresponding to each PHY serving a physical USB Port.
+
+ Family Port 0 Port 1 Port 2 Port 3 Port 4
+---------------------------------------------------------------
+ G12A USBHOST_A USBOTG_B Reserved Reserved USB3_0
+
+A child node must exist to represent the core DWC3 IP block. The name of
+the node is not important. The content of the node is defined in dwc3.txt.
+
+A child node must exist to represent the core DWC2 IP block. The name of
+the node is not important. The content of the node is defined in dwc2.txt.
+
+PHY documentation is provided in the following places:
+- Documentation/devicetree/bindings/phy/meson-g12a-usb2-phy.txt
+- Documentation/devicetree/bindings/phy/meson-g12a-usb3-pcie-phy.txt
+
+
+Example device nodes:
+ usb: usb@ffe09000 {
+ compatible = "amlogic,meson-g12a-usb-ctrl";
+ reg = <0x0 0xffe09000 0x0 0xa0>;
+ interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ clocks = <&clkc CLKID_USB>;
+ clock-names = "usb";
+ resets = <&reset RESET_USB>;
+ reset-names = "usb";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* USB2 Port 0 */
+ usb20: port@0 {
+ reg = <0>;
+ phys = <&usb2_phy0>;
+ };
+
+ /* USB2 Port 1 */
+ usb21: port@1 {
+ reg = <1>;
+ phys = <&usb2_phy1>;
+ };
+
+ /* USB3 Port 0 */
+ usb3: port@4 {
+ reg = <4>;
+ phys = <&usb3_pcie_phy PHY_TYPE_USB3>;
+ };
+ };
+
+ dwc2: usb@ff400000 {
+ compatible = "amlogic,meson-g12a-usb", "snps,dwc2";
+ reg = <0x0 0xff400000 0x0 0x40000>;
+ interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
+ clock-names = "ddr";
+ dr_mode = "peripheral";
+ g-rx-fifo-size = <192>;
+ g-np-tx-fifo-size = <128>;
+ g-tx-fifo-size = <128 128 16 16 16>;
+ };
+
+ dwc3: dwc3@ff500000 {
+ compatible = "snps,dwc3";
+ reg = <0x0 0xff500000 0x0 0x100000>;
+ interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+ dr_mode = "host";
+ snps,dis_u2_susphy_quirk;
+ snps,quirk-frame-length-adjustment;
+ };
+ };
--
2.20.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 1/8] dt-bindings: phy: Add Amlogic G12A USB2 PHY Bindings
2019-02-12 15:14 ` [PATCH 1/8] dt-bindings: phy: Add Amlogic G12A USB2 PHY Bindings Neil Armstrong
@ 2019-02-17 21:58 ` Martin Blumenstingl
2019-02-28 15:18 ` Rob Herring
1 sibling, 0 replies; 13+ messages in thread
From: Martin Blumenstingl @ 2019-02-17 21:58 UTC (permalink / raw)
To: Neil Armstrong
Cc: gregkh, hminas, balbi, kishon, devicetree, linux-amlogic,
linux-usb, linux-kernel, linux-arm-kernel
On Tue, Feb 12, 2019 at 4:14 PM Neil Armstrong <narmstrong@baylibre.com> wrote:
>
> Add the Amlogic G12A Family USB2 OTG PHY Bindings
nit-pick: if you want to keep "OTG" in there then please add a short
description how OTG works on this PHY.
I would describe this as: "Add the Amlogic G12A Family USB2 PHY
Bindings. The PHY works for host or peripheral modes. Configuration of
the mode is part of the USBCTRL registers which are outside of the PHY
registers."
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
with the patch description nit-pick addressed:
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Regards
Martin
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/8] dt-bindings: phy: Add Amlogic G12A USB3+PCIE Combo PHY Bindings
2019-02-12 15:14 ` [PATCH 2/8] dt-bindings: phy: Add Amlogic G12A USB3+PCIE Combo " Neil Armstrong
@ 2019-02-17 22:03 ` Martin Blumenstingl
2019-02-18 10:33 ` Neil Armstrong
0 siblings, 1 reply; 13+ messages in thread
From: Martin Blumenstingl @ 2019-02-17 22:03 UTC (permalink / raw)
To: Neil Armstrong
Cc: gregkh, hminas, balbi, kishon, devicetree, linux-amlogic,
linux-usb, linux-kernel, linux-arm-kernel
On Tue, Feb 12, 2019 at 4:15 PM Neil Armstrong <narmstrong@baylibre.com> wrote:
>
> Add the Amlogic G12A Family USB3 + PCIE Combo PHY Bindings.
>
> This PHY can provide exclusively USB3 or PCIE support on shared I/Os.
>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
one nit-pick below, but apart from that:
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
> ---
> .../bindings/phy/meson-g12a-usb3-pcie-phy.txt | 25 +++++++++++++++++++
> 1 file changed, 25 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/phy/meson-g12a-usb3-pcie-phy.txt
>
> diff --git a/Documentation/devicetree/bindings/phy/meson-g12a-usb3-pcie-phy.txt b/Documentation/devicetree/bindings/phy/meson-g12a-usb3-pcie-phy.txt
> new file mode 100644
> index 000000000000..714d751091f5
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/phy/meson-g12a-usb3-pcie-phy.txt
> @@ -0,0 +1,25 @@
> +* Amlogic G12A USB3 + PCIE Combo PHY binding
> +
> +Required properties:
> +- compatible: Should be "amlogic,meson-g12a-usb3-pcie-phy"
> +- #phys-cells: must be 1. The cell number is used to select the phy mode
> + as defined in <dt-bindings/phy/phy.h> between PHY_TYPE_USB3 and PHY_TYPE_PCIE
> +- reg: The base address and length of the registers
> +- clocks: a phandle to the 100MHz reference clock of this PHY
> +- clock-names: must be "ref_clk"
> +- resets: phandle to the reset lines for:
> + - the PHY control
> + - the USB3+PCIE PHY
> + - the PHY registers
no reset-names (like in the G12A USB2 PHY bindings) here?
even if you don't use them in the driver I suggest you add them for
consistency (and maybe to make it easier to compare the bindings with
the datasheet. I don't have access to the datasheet so I'm not sure if
having the reset-names is relevant for this case)
Regards
Martin
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 3/8] dt-bindings: usb: dwc2: Add Amlogic G12A DWC2 Compatible
2019-02-12 15:14 ` [PATCH 3/8] dt-bindings: usb: dwc2: Add Amlogic G12A DWC2 Compatible Neil Armstrong
@ 2019-02-17 22:07 ` Martin Blumenstingl
2019-02-28 16:14 ` Rob Herring
1 sibling, 0 replies; 13+ messages in thread
From: Martin Blumenstingl @ 2019-02-17 22:07 UTC (permalink / raw)
To: Neil Armstrong
Cc: gregkh, hminas, balbi, kishon, devicetree, linux-amlogic,
linux-usb, linux-kernel, linux-arm-kernel
Hi Neil,
On Tue, Feb 12, 2019 at 4:15 PM Neil Armstrong <narmstrong@baylibre.com> wrote:
>
> Adds the specific compatible string for the DWC2 IP found in the
> Amlogic G12A SoC Family.
>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
> ---
> Documentation/devicetree/bindings/usb/dwc2.txt | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/devicetree/bindings/usb/dwc2.txt b/Documentation/devicetree/bindings/usb/dwc2.txt
> index 6dc3c4a34483..e150b7b227c9 100644
> --- a/Documentation/devicetree/bindings/usb/dwc2.txt
> +++ b/Documentation/devicetree/bindings/usb/dwc2.txt
> @@ -14,6 +14,7 @@ Required properties:
> - "amlogic,meson8-usb": The DWC2 USB controller instance in Amlogic Meson8 SoCs;
> - "amlogic,meson8b-usb": The DWC2 USB controller instance in Amlogic Meson8b SoCs;
> - "amlogic,meson-gxbb-usb": The DWC2 USB controller instance in Amlogic S905 SoCs;
> + - "amlogic,meson-g12a-usb": The DWC2 USB controller instance in Amlogic G12A SoCs;
if anyone is curious: starting with GXL (not supported by the dwc2
driver yet) the dwc2 core is "peripheral mode" only while previous
SoCs had one host-only dwc2 instance and another OTG capable dwc2
instance
I also discussed the compatible string with Neil off-list because I
was not sure if we have unique compatible names for the dwc2
controller and the "USB control" registers.
The "USB control" registers are named "USBCTRL" according to Neil (I
assume he got this information from the datasheet to which I don't
have access). Thus the compatible string for the "USB control" device
will be "amlogic,meson-g12a-usb-ctrl" - so we don't have any naming
conflict.
Regards
Martin
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/8] dt-bindings: phy: Add Amlogic G12A USB3+PCIE Combo PHY Bindings
2019-02-17 22:03 ` Martin Blumenstingl
@ 2019-02-18 10:33 ` Neil Armstrong
0 siblings, 0 replies; 13+ messages in thread
From: Neil Armstrong @ 2019-02-18 10:33 UTC (permalink / raw)
To: Martin Blumenstingl
Cc: gregkh, hminas, balbi, kishon, devicetree, linux-amlogic,
linux-usb, linux-kernel, linux-arm-kernel
On 17/02/2019 23:03, Martin Blumenstingl wrote:
> On Tue, Feb 12, 2019 at 4:15 PM Neil Armstrong <narmstrong@baylibre.com> wrote:
>>
>> Add the Amlogic G12A Family USB3 + PCIE Combo PHY Bindings.
>>
>> This PHY can provide exclusively USB3 or PCIE support on shared I/Os.
>>
>> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> one nit-pick below, but apart from that:
> Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
>
>> ---
>> .../bindings/phy/meson-g12a-usb3-pcie-phy.txt | 25 +++++++++++++++++++
>> 1 file changed, 25 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/phy/meson-g12a-usb3-pcie-phy.txt
>>
>> diff --git a/Documentation/devicetree/bindings/phy/meson-g12a-usb3-pcie-phy.txt b/Documentation/devicetree/bindings/phy/meson-g12a-usb3-pcie-phy.txt
>> new file mode 100644
>> index 000000000000..714d751091f5
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/phy/meson-g12a-usb3-pcie-phy.txt
>> @@ -0,0 +1,25 @@
>> +* Amlogic G12A USB3 + PCIE Combo PHY binding
>> +
>> +Required properties:
>> +- compatible: Should be "amlogic,meson-g12a-usb3-pcie-phy"
>> +- #phys-cells: must be 1. The cell number is used to select the phy mode
>> + as defined in <dt-bindings/phy/phy.h> between PHY_TYPE_USB3 and PHY_TYPE_PCIE
>> +- reg: The base address and length of the registers
>> +- clocks: a phandle to the 100MHz reference clock of this PHY
>> +- clock-names: must be "ref_clk"
>> +- resets: phandle to the reset lines for:
>> + - the PHY control
>> + - the USB3+PCIE PHY
>> + - the PHY registers
> no reset-names (like in the G12A USB2 PHY bindings) here?
> even if you don't use them in the driver I suggest you add them for
> consistency (and maybe to make it easier to compare the bindings with
> the datasheet. I don't have access to the datasheet so I'm not sure if
> having the reset-names is relevant for this case)
You're right, it's better to have names here !
Neil
>
>
> Regards
> Martin
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 4/8] dt-bindings: usb: dwc3: Add Amlogic G12A DWC3 Glue Bindings
2019-02-12 15:14 ` [PATCH 4/8] dt-bindings: usb: dwc3: Add Amlogic G12A DWC3 Glue Bindings Neil Armstrong
@ 2019-02-24 19:52 ` Martin Blumenstingl
2019-02-28 16:29 ` Rob Herring
1 sibling, 0 replies; 13+ messages in thread
From: Martin Blumenstingl @ 2019-02-24 19:52 UTC (permalink / raw)
To: Neil Armstrong
Cc: gregkh, hminas, balbi, kishon, devicetree, linux-amlogic,
linux-usb, linux-kernel, linux-arm-kernel
Hi Neil,
On Tue, Feb 12, 2019 at 4:15 PM Neil Armstrong <narmstrong@baylibre.com> wrote:
[...]
> +
> +Example device nodes:
> + usb: usb@ffe09000 {
> + compatible = "amlogic,meson-g12a-usb-ctrl";
> + reg = <0x0 0xffe09000 0x0 0xa0>;
> + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
> + #address-cells = <2>;
> + #size-cells = <2>;
> + ranges;
> +
> + clocks = <&clkc CLKID_USB>;
> + clock-names = "usb";
> + resets = <&reset RESET_USB>;
> + reset-names = "usb";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + /* USB2 Port 0 */
> + usb20: port@0 {
> + reg = <0>;
> + phys = <&usb2_phy0>;
> + };
> +
> + /* USB2 Port 1 */
> + usb21: port@1 {
> + reg = <1>;
> + phys = <&usb2_phy1>;
> + };
> +
> + /* USB3 Port 0 */
> + usb3: port@4 {
> + reg = <4>;
> + phys = <&usb3_pcie_phy PHY_TYPE_USB3>;
> + };
> + };
> +
> + dwc2: usb@ff400000 {
> + compatible = "amlogic,meson-g12a-usb", "snps,dwc2";
> + reg = <0x0 0xff400000 0x0 0x40000>;
> + interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
> + clock-names = "ddr";
> + dr_mode = "peripheral";
> + g-rx-fifo-size = <192>;
> + g-np-tx-fifo-size = <128>;
> + g-tx-fifo-size = <128 128 16 16 16>;
> + };
you suggested (off-list) that the OTG capable PHY should be passed to
the dwc2 instance
I'm aware that this is an example - could you please still add it for
consistency?
> +
> + dwc3: dwc3@ff500000 {
> + compatible = "snps,dwc3";
> + reg = <0x0 0xff500000 0x0 0x100000>;
> + interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
> + dr_mode = "host";
> + snps,dis_u2_susphy_quirk;
> + snps,quirk-frame-length-adjustment;
> + };
maybe the phys should also be passed to the dwc3 instance?
Regards
Martin
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/8] dt-bindings: phy: Add Amlogic G12A USB2 PHY Bindings
2019-02-12 15:14 ` [PATCH 1/8] dt-bindings: phy: Add Amlogic G12A USB2 PHY Bindings Neil Armstrong
2019-02-17 21:58 ` Martin Blumenstingl
@ 2019-02-28 15:18 ` Rob Herring
1 sibling, 0 replies; 13+ messages in thread
From: Rob Herring @ 2019-02-28 15:18 UTC (permalink / raw)
Cc: gregkh, hminas, balbi, kishon, devicetree, Neil Armstrong,
linux-amlogic, linux-usb, linux-arm-kernel, linux-kernel
On Tue, 12 Feb 2019 16:14:06 +0100, Neil Armstrong wrote:
> Add the Amlogic G12A Family USB2 OTG PHY Bindings
>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> ---
> .../bindings/phy/meson-g12a-usb2-phy.txt | 22 +++++++++++++++++++
> 1 file changed, 22 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/phy/meson-g12a-usb2-phy.txt
>
Reviewed-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 3/8] dt-bindings: usb: dwc2: Add Amlogic G12A DWC2 Compatible
2019-02-12 15:14 ` [PATCH 3/8] dt-bindings: usb: dwc2: Add Amlogic G12A DWC2 Compatible Neil Armstrong
2019-02-17 22:07 ` Martin Blumenstingl
@ 2019-02-28 16:14 ` Rob Herring
1 sibling, 0 replies; 13+ messages in thread
From: Rob Herring @ 2019-02-28 16:14 UTC (permalink / raw)
Cc: gregkh, hminas, balbi, kishon, devicetree, Neil Armstrong,
linux-amlogic, linux-usb, linux-arm-kernel, linux-kernel
On Tue, 12 Feb 2019 16:14:08 +0100, Neil Armstrong wrote:
> Adds the specific compatible string for the DWC2 IP found in the
> Amlogic G12A SoC Family.
>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> ---
> Documentation/devicetree/bindings/usb/dwc2.txt | 1 +
> 1 file changed, 1 insertion(+)
>
Reviewed-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 4/8] dt-bindings: usb: dwc3: Add Amlogic G12A DWC3 Glue Bindings
2019-02-12 15:14 ` [PATCH 4/8] dt-bindings: usb: dwc3: Add Amlogic G12A DWC3 Glue Bindings Neil Armstrong
2019-02-24 19:52 ` Martin Blumenstingl
@ 2019-02-28 16:29 ` Rob Herring
2019-03-01 10:25 ` Neil Armstrong
1 sibling, 1 reply; 13+ messages in thread
From: Rob Herring @ 2019-02-28 16:29 UTC (permalink / raw)
To: Neil Armstrong
Cc: gregkh, hminas, balbi, kishon, devicetree, linux-amlogic,
linux-usb, linux-arm-kernel, linux-kernel
On Tue, Feb 12, 2019 at 04:14:09PM +0100, Neil Armstrong wrote:
> Adds the bindings for the Amlogic G12A USB Glue HW.
>
> The Amlogic G12A SoC Family embeds 2 USB Controllers :
> - a DWC3 IP configured as Host for USB2 and USB3
> - a DWC2 IP configured as Peripheral USB2 Only
>
> A glue connects these both controllers to 2 USB2 PHYs,
> and optionnally to an USB3+PCIE Combo PHY shared with the PCIE controller.
>
> The Glue configures the UTMI 8bit interfaces for the USB2 PHYs, including
> routing of the OTG PHY between the DWC3 and DWC2 controllers, and
> setups the on-chip OTG mode selection for this PHY.
>
> The PHYs are children of the Glue node since the Glue controls the interface
> with the PHY, not the DWC3 controller.
>
> The PHY interconnect is handled into ports subnodes, which eases describing
> which PHY is enabled (like the USB3 shared PHY) and futures layouts on
> derivatives of the G12A Family.
>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> ---
> .../devicetree/bindings/usb/amlogic,dwc3.txt | 109 ++++++++++++++++++
> 1 file changed, 109 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/usb/amlogic,dwc3.txt b/Documentation/devicetree/bindings/usb/amlogic,dwc3.txt
> index 9a8b631904fd..c7c4726ef10d 100644
> --- a/Documentation/devicetree/bindings/usb/amlogic,dwc3.txt
> +++ b/Documentation/devicetree/bindings/usb/amlogic,dwc3.txt
> @@ -40,3 +40,112 @@ Example device nodes:
> phy-names = "usb2-phy", "usb3-phy";
> };
> };
> +
> +Amlogic Meson G12A DWC3 USB SoC Controller Glue
> +
> +The Amlogic G12A embeds a DWC3 USB IP Core configured for USB2 and USB3
> +in host-only mode, and a DWC2 IP Core configured for USB2 peripheral mode
> +only.
> +
> +A glue connects the DWC3 core to USB2 PHYs and optionnaly to an USB3 PHY.
> +
> +One of the USB2 PHY can be re-routed in peripheral mode to a DWC2 USB IP.
> +
> +The DWC3 Glue controls the PHY routing and power, an interrupt line is
> +connected to the Glue to serve as OTG ID change detection.
> +
> +Required properties:
> +- compatible: Should be "amlogic,meson-g12a-usb-ctrl"
> +- clocks: a handle for the "USB" clock
> +- clock-names: must be "usb"
> +- resets: a handle for the shared "USB" reset line
> +- reset-names: must be "usb"
-name for a single entry is pointless.
> +- reg: The base address and length of the registers
> +- interrupts: the interrupt specifier for the OTG detection
> +
> +Required child nodes:
> +
> +USB Ports are described as child 'port' nodes grouped under a 'ports' node,
> +with #address-cells, #size-cells specified.
> +
> +Each 'port' sub-node identifies a possible USB Port served by an USB PHY
> +identified by the 'phy' property as decribed in ../phy/phy-bindings.txt
> +
> +Each 'port' is identified by a reg property to number the port.
> +
> +The following table lists for each supported model the port number
> +corresponding to each PHY serving a physical USB Port.
> +
> + Family Port 0 Port 1 Port 2 Port 3 Port 4
> +---------------------------------------------------------------
> + G12A USBHOST_A USBOTG_B Reserved Reserved USB3_0
> +
> +A child node must exist to represent the core DWC3 IP block. The name of
> +the node is not important. The content of the node is defined in dwc3.txt.
> +
> +A child node must exist to represent the core DWC2 IP block. The name of
> +the node is not important. The content of the node is defined in dwc2.txt.
> +
> +PHY documentation is provided in the following places:
> +- Documentation/devicetree/bindings/phy/meson-g12a-usb2-phy.txt
> +- Documentation/devicetree/bindings/phy/meson-g12a-usb3-pcie-phy.txt
> +
> +
> +Example device nodes:
> + usb: usb@ffe09000 {
> + compatible = "amlogic,meson-g12a-usb-ctrl";
> + reg = <0x0 0xffe09000 0x0 0xa0>;
> + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
> + #address-cells = <2>;
> + #size-cells = <2>;
> + ranges;
> +
> + clocks = <&clkc CLKID_USB>;
> + clock-names = "usb";
> + resets = <&reset RESET_USB>;
> + reset-names = "usb";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + /* USB2 Port 0 */
> + usb20: port@0 {
> + reg = <0>;
> + phys = <&usb2_phy0>;
'ports' and 'port' are reserved for the graph binding. Don't use it for
your own thing.
Can't you just make 'phys' a list using 0 phandle if you need to skip
entries.
> + };
> +
> + /* USB2 Port 1 */
> + usb21: port@1 {
> + reg = <1>;
> + phys = <&usb2_phy1>;
> + };
> +
> + /* USB3 Port 0 */
> + usb3: port@4 {
> + reg = <4>;
> + phys = <&usb3_pcie_phy PHY_TYPE_USB3>;
> + };
> + };
> +
> + dwc2: usb@ff400000 {
> + compatible = "amlogic,meson-g12a-usb", "snps,dwc2";
> + reg = <0x0 0xff400000 0x0 0x40000>;
> + interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
> + clock-names = "ddr";
> + dr_mode = "peripheral";
> + g-rx-fifo-size = <192>;
> + g-np-tx-fifo-size = <128>;
> + g-tx-fifo-size = <128 128 16 16 16>;
> + };
> +
> + dwc3: dwc3@ff500000 {
usb@... or usb3@...
> + compatible = "snps,dwc3";
> + reg = <0x0 0xff500000 0x0 0x100000>;
> + interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
> + dr_mode = "host";
> + snps,dis_u2_susphy_quirk;
> + snps,quirk-frame-length-adjustment;
> + };
> + };
> --
> 2.20.1
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 4/8] dt-bindings: usb: dwc3: Add Amlogic G12A DWC3 Glue Bindings
2019-02-28 16:29 ` Rob Herring
@ 2019-03-01 10:25 ` Neil Armstrong
0 siblings, 0 replies; 13+ messages in thread
From: Neil Armstrong @ 2019-03-01 10:25 UTC (permalink / raw)
To: Rob Herring
Cc: gregkh, hminas, balbi, kishon, devicetree, linux-amlogic,
linux-usb, linux-arm-kernel, linux-kernel
On 28/02/2019 17:29, Rob Herring wrote:
> On Tue, Feb 12, 2019 at 04:14:09PM +0100, Neil Armstrong wrote:
>> Adds the bindings for the Amlogic G12A USB Glue HW.
>>
>> The Amlogic G12A SoC Family embeds 2 USB Controllers :
>> - a DWC3 IP configured as Host for USB2 and USB3
>> - a DWC2 IP configured as Peripheral USB2 Only
>>
>> A glue connects these both controllers to 2 USB2 PHYs,
>> and optionnally to an USB3+PCIE Combo PHY shared with the PCIE controller.
>>
>> The Glue configures the UTMI 8bit interfaces for the USB2 PHYs, including
>> routing of the OTG PHY between the DWC3 and DWC2 controllers, and
>> setups the on-chip OTG mode selection for this PHY.
>>
>> The PHYs are children of the Glue node since the Glue controls the interface
>> with the PHY, not the DWC3 controller.
>>
>> The PHY interconnect is handled into ports subnodes, which eases describing
>> which PHY is enabled (like the USB3 shared PHY) and futures layouts on
>> derivatives of the G12A Family.
>>
>> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
>> ---
>> .../devicetree/bindings/usb/amlogic,dwc3.txt | 109 ++++++++++++++++++
>> 1 file changed, 109 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/usb/amlogic,dwc3.txt b/Documentation/devicetree/bindings/usb/amlogic,dwc3.txt
>> index 9a8b631904fd..c7c4726ef10d 100644
>> --- a/Documentation/devicetree/bindings/usb/amlogic,dwc3.txt
>> +++ b/Documentation/devicetree/bindings/usb/amlogic,dwc3.txt
>> @@ -40,3 +40,112 @@ Example device nodes:
>> phy-names = "usb2-phy", "usb3-phy";
>> };
>> };
>> +
>> +Amlogic Meson G12A DWC3 USB SoC Controller Glue
>> +
>> +The Amlogic G12A embeds a DWC3 USB IP Core configured for USB2 and USB3
>> +in host-only mode, and a DWC2 IP Core configured for USB2 peripheral mode
>> +only.
>> +
>> +A glue connects the DWC3 core to USB2 PHYs and optionnaly to an USB3 PHY.
>> +
>> +One of the USB2 PHY can be re-routed in peripheral mode to a DWC2 USB IP.
>> +
>> +The DWC3 Glue controls the PHY routing and power, an interrupt line is
>> +connected to the Glue to serve as OTG ID change detection.
>> +
>> +Required properties:
>> +- compatible: Should be "amlogic,meson-g12a-usb-ctrl"
>> +- clocks: a handle for the "USB" clock
>> +- clock-names: must be "usb"
>> +- resets: a handle for the shared "USB" reset line
>> +- reset-names: must be "usb"
>
> -name for a single entry is pointless.
>
>> +- reg: The base address and length of the registers
>> +- interrupts: the interrupt specifier for the OTG detection
>> +
>> +Required child nodes:
>> +
>> +USB Ports are described as child 'port' nodes grouped under a 'ports' node,
>> +with #address-cells, #size-cells specified.
>> +
>> +Each 'port' sub-node identifies a possible USB Port served by an USB PHY
>> +identified by the 'phy' property as decribed in ../phy/phy-bindings.txt
>> +
>> +Each 'port' is identified by a reg property to number the port.
>> +
>> +The following table lists for each supported model the port number
>> +corresponding to each PHY serving a physical USB Port.
>> +
>> + Family Port 0 Port 1 Port 2 Port 3 Port 4
>> +---------------------------------------------------------------
>> + G12A USBHOST_A USBOTG_B Reserved Reserved USB3_0
>> +
>> +A child node must exist to represent the core DWC3 IP block. The name of
>> +the node is not important. The content of the node is defined in dwc3.txt.
>> +
>> +A child node must exist to represent the core DWC2 IP block. The name of
>> +the node is not important. The content of the node is defined in dwc2.txt.
>> +
>> +PHY documentation is provided in the following places:
>> +- Documentation/devicetree/bindings/phy/meson-g12a-usb2-phy.txt
>> +- Documentation/devicetree/bindings/phy/meson-g12a-usb3-pcie-phy.txt
>> +
>> +
>> +Example device nodes:
>> + usb: usb@ffe09000 {
>> + compatible = "amlogic,meson-g12a-usb-ctrl";
>> + reg = <0x0 0xffe09000 0x0 0xa0>;
>> + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
>> + #address-cells = <2>;
>> + #size-cells = <2>;
>> + ranges;
>> +
>> + clocks = <&clkc CLKID_USB>;
>> + clock-names = "usb";
>> + resets = <&reset RESET_USB>;
>> + reset-names = "usb";
>> +
>> + ports {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + /* USB2 Port 0 */
>> + usb20: port@0 {
>> + reg = <0>;
>> + phys = <&usb2_phy0>;
>
> 'ports' and 'port' are reserved for the graph binding. Don't use it for
> your own thing.
>
> Can't you just make 'phys' a list using 0 phandle if you need to skip
> entries.
Yep, finally this would be simpler.
>
>> + };
>> +
>> + /* USB2 Port 1 */
>> + usb21: port@1 {
>> + reg = <1>;
>> + phys = <&usb2_phy1>;
>> + };
>> +
>> + /* USB3 Port 0 */
>> + usb3: port@4 {
>> + reg = <4>;
>> + phys = <&usb3_pcie_phy PHY_TYPE_USB3>;
>> + };
>> + };
>> +
>> + dwc2: usb@ff400000 {
>> + compatible = "amlogic,meson-g12a-usb", "snps,dwc2";
>> + reg = <0x0 0xff400000 0x0 0x40000>;
>> + interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
>> + clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
>> + clock-names = "ddr";
>> + dr_mode = "peripheral";
>> + g-rx-fifo-size = <192>;
>> + g-np-tx-fifo-size = <128>;
>> + g-tx-fifo-size = <128 128 16 16 16>;
>> + };
>> +
>> + dwc3: dwc3@ff500000 {
>
> usb@... or usb3@...
Ok
>
>> + compatible = "snps,dwc3";
>> + reg = <0x0 0xff500000 0x0 0x100000>;
>> + interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
>> + dr_mode = "host";
>> + snps,dis_u2_susphy_quirk;
>> + snps,quirk-frame-length-adjustment;
>> + };
>> + };
>> --
>> 2.20.1
>>
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2019-03-01 10:25 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20190212151413.24632-1-narmstrong@baylibre.com>
2019-02-12 15:14 ` [PATCH 1/8] dt-bindings: phy: Add Amlogic G12A USB2 PHY Bindings Neil Armstrong
2019-02-17 21:58 ` Martin Blumenstingl
2019-02-28 15:18 ` Rob Herring
2019-02-12 15:14 ` [PATCH 2/8] dt-bindings: phy: Add Amlogic G12A USB3+PCIE Combo " Neil Armstrong
2019-02-17 22:03 ` Martin Blumenstingl
2019-02-18 10:33 ` Neil Armstrong
2019-02-12 15:14 ` [PATCH 3/8] dt-bindings: usb: dwc2: Add Amlogic G12A DWC2 Compatible Neil Armstrong
2019-02-17 22:07 ` Martin Blumenstingl
2019-02-28 16:14 ` Rob Herring
2019-02-12 15:14 ` [PATCH 4/8] dt-bindings: usb: dwc3: Add Amlogic G12A DWC3 Glue Bindings Neil Armstrong
2019-02-24 19:52 ` Martin Blumenstingl
2019-02-28 16:29 ` Rob Herring
2019-03-01 10:25 ` Neil Armstrong
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).