* [PATCH v4 1/7] dt-bindings: usb: usbmisc-imx: add fsl,imx8ulp-usbmisc compatible
@ 2024-01-19 7:19 Xu Yang
2024-01-19 7:19 ` [PATCH v4 2/7] arm64: dts: imx8ulp: add usb nodes Xu Yang
` (6 more replies)
0 siblings, 7 replies; 15+ messages in thread
From: Xu Yang @ 2024-01-19 7:19 UTC (permalink / raw)
To: gregkh, robh+dt, krzysztof.kozlowski+dt, conor+dt, shawnguo,
s.hauer, kernel, festevam
Cc: linux-imx, devicetree, linux-arm-kernel, jun.li, linux-usb
Add "fsl,imx8ulp-usbmisc" compatible.
Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
---
Changes in v3:
- new patch due to missed this little one
Changes in v4:
- no changes
---
Documentation/devicetree/bindings/usb/fsl,usbmisc.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/usb/fsl,usbmisc.yaml b/Documentation/devicetree/bindings/usb/fsl,usbmisc.yaml
index 2d3589d284b2..0a6e7ac1b37e 100644
--- a/Documentation/devicetree/bindings/usb/fsl,usbmisc.yaml
+++ b/Documentation/devicetree/bindings/usb/fsl,usbmisc.yaml
@@ -33,6 +33,7 @@ properties:
- fsl,imx7ulp-usbmisc
- fsl,imx8mm-usbmisc
- fsl,imx8mn-usbmisc
+ - fsl,imx8ulp-usbmisc
- const: fsl,imx7d-usbmisc
- const: fsl,imx6q-usbmisc
- items:
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 2/7] arm64: dts: imx8ulp: add usb nodes
2024-01-19 7:19 [PATCH v4 1/7] dt-bindings: usb: usbmisc-imx: add fsl,imx8ulp-usbmisc compatible Xu Yang
@ 2024-01-19 7:19 ` Xu Yang
2024-01-19 7:19 ` [PATCH v4 3/7] arm64: dts: imx8ulp-evk: enable usb nodes and add ptn5150 nodes Xu Yang
` (5 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Xu Yang @ 2024-01-19 7:19 UTC (permalink / raw)
To: gregkh, robh+dt, krzysztof.kozlowski+dt, conor+dt, shawnguo,
s.hauer, kernel, festevam
Cc: linux-imx, devicetree, linux-arm-kernel, jun.li, linux-usb
Add USB nodes on i.MX8ULP platform which has 2 USB controllers.
Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
---
Changes in v2:
- no changes
Changes in v3:
- no changes
Changes in v4:
- no changes
---
arch/arm64/boot/dts/freescale/imx8ulp.dtsi | 64 ++++++++++++++++++++++
1 file changed, 64 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx8ulp.dtsi b/arch/arm64/boot/dts/freescale/imx8ulp.dtsi
index c4a0082f30d3..ead1f57e08ef 100644
--- a/arch/arm64/boot/dts/freescale/imx8ulp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8ulp.dtsi
@@ -28,6 +28,8 @@ aliases {
serial1 = &lpuart5;
serial2 = &lpuart6;
serial3 = &lpuart7;
+ usbphy0 = &usbphy1;
+ usbphy1 = &usbphy2;
};
cpus {
@@ -472,6 +474,68 @@ usdhc2: mmc@298f0000 {
status = "disabled";
};
+ usbotg1: usb@29900000 {
+ compatible = "fsl,imx8ulp-usb", "fsl,imx7ulp-usb", "fsl,imx6ul-usb";
+ reg = <0x29900000 0x200>;
+ interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&pcc4 IMX8ULP_CLK_USB0>;
+ power-domains = <&scmi_devpd IMX8ULP_PD_USB0>;
+ phys = <&usbphy1>;
+ fsl,usbmisc = <&usbmisc1 0>;
+ ahb-burst-config = <0x0>;
+ tx-burst-size-dword = <0x8>;
+ rx-burst-size-dword = <0x8>;
+ status = "disabled";
+ };
+
+ usbmisc1: usbmisc@29900200 {
+ compatible = "fsl,imx8ulp-usbmisc", "fsl,imx7d-usbmisc",
+ "fsl,imx6q-usbmisc";
+ #index-cells = <1>;
+ reg = <0x29900200 0x200>;
+ status = "disabled";
+ };
+
+ usbphy1: usb-phy@29910000 {
+ compatible = "fsl,imx8ulp-usbphy", "fsl,imx7ulp-usbphy";
+ reg = <0x29910000 0x10000>;
+ interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&pcc4 IMX8ULP_CLK_USB0_PHY>;
+ #phy-cells = <0>;
+ status = "disabled";
+ };
+
+ usbotg2: usb@29920000 {
+ compatible = "fsl,imx8ulp-usb", "fsl,imx7ulp-usb", "fsl,imx6ul-usb";
+ reg = <0x29920000 0x200>;
+ interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&pcc4 IMX8ULP_CLK_USB1>;
+ power-domains = <&scmi_devpd IMX8ULP_PD_USDHC2_USB1>;
+ phys = <&usbphy2>;
+ fsl,usbmisc = <&usbmisc2 0>;
+ ahb-burst-config = <0x0>;
+ tx-burst-size-dword = <0x8>;
+ rx-burst-size-dword = <0x8>;
+ status = "disabled";
+ };
+
+ usbmisc2: usbmisc@29920200 {
+ compatible = "fsl,imx8ulp-usbmisc", "fsl,imx7d-usbmisc",
+ "fsl,imx6q-usbmisc";
+ #index-cells = <1>;
+ reg = <0x29920200 0x200>;
+ status = "disabled";
+ };
+
+ usbphy2: usb-phy@29930000 {
+ compatible = "fsl,imx8ulp-usbphy", "fsl,imx7ulp-usbphy";
+ reg = <0x29930000 0x10000>;
+ interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&pcc4 IMX8ULP_CLK_USB1_PHY>;
+ #phy-cells = <0>;
+ status = "disabled";
+ };
+
fec: ethernet@29950000 {
compatible = "fsl,imx8ulp-fec", "fsl,imx6ul-fec", "fsl,imx6q-fec";
reg = <0x29950000 0x10000>;
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 3/7] arm64: dts: imx8ulp-evk: enable usb nodes and add ptn5150 nodes
2024-01-19 7:19 [PATCH v4 1/7] dt-bindings: usb: usbmisc-imx: add fsl,imx8ulp-usbmisc compatible Xu Yang
2024-01-19 7:19 ` [PATCH v4 2/7] arm64: dts: imx8ulp: add usb nodes Xu Yang
@ 2024-01-19 7:19 ` Xu Yang
2024-01-19 7:19 ` [PATCH v4 4/7] dt-bindings: usb: ci-hdrc-usb2: add restrictions for reg, interrupts, clock and clock-names properties Xu Yang
` (4 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Xu Yang @ 2024-01-19 7:19 UTC (permalink / raw)
To: gregkh, robh+dt, krzysztof.kozlowski+dt, conor+dt, shawnguo,
s.hauer, kernel, festevam
Cc: linux-imx, devicetree, linux-arm-kernel, jun.li, linux-usb
Enable 2 USB nodes and add 2 PTN5150 nodes on i.MX8ULP evk board.
Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
---
Changes in v2:
- fix format as suggusted by Fabio
- add PTN5150 nodes
Changes in v3:
- no changes
Changes in v4:
- no changes
---
arch/arm64/boot/dts/freescale/imx8ulp-evk.dts | 84 +++++++++++++++++++
1 file changed, 84 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts b/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts
index 69dd8e31027c..bf418af31039 100644
--- a/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts
@@ -133,6 +133,64 @@ pcal6408: gpio@21 {
gpio-controller;
#gpio-cells = <2>;
};
+
+ ptn5150_1: typec@1d {
+ compatible = "nxp,ptn5150";
+ reg = <0x1d>;
+ int-gpios = <&gpiof 3 IRQ_TYPE_EDGE_FALLING>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_typec1>;
+ status = "disabled";
+ };
+
+ ptn5150_2: typec@3d {
+ compatible = "nxp,ptn5150";
+ reg = <0x3d>;
+ int-gpios = <&gpiof 5 IRQ_TYPE_EDGE_FALLING>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_typec2>;
+ status = "disabled";
+ };
+};
+
+&usbotg1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usb1>;
+ dr_mode = "otg";
+ hnp-disable;
+ srp-disable;
+ adp-disable;
+ over-current-active-low;
+ status = "okay";
+};
+
+&usbphy1 {
+ fsl,tx-d-cal = <110>;
+ status = "okay";
+};
+
+&usbmisc1 {
+ status = "okay";
+};
+
+&usbotg2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usb2>;
+ dr_mode = "otg";
+ hnp-disable;
+ srp-disable;
+ adp-disable;
+ over-current-active-low;
+ status = "okay";
+};
+
+&usbphy2 {
+ fsl,tx-d-cal = <110>;
+ status = "okay";
+};
+
+&usbmisc2 {
+ status = "okay";
};
&usdhc0 {
@@ -224,6 +282,32 @@ MX8ULP_PAD_PTE13__LPI2C7_SDA 0x20
>;
};
+ pinctrl_typec1: typec1grp {
+ fsl,pins = <
+ MX8ULP_PAD_PTF3__PTF3 0x3
+ >;
+ };
+
+ pinctrl_typec2: typec2grp {
+ fsl,pins = <
+ MX8ULP_PAD_PTF5__PTF5 0x3
+ >;
+ };
+
+ pinctrl_usb1: usb1grp {
+ fsl,pins = <
+ MX8ULP_PAD_PTF2__USB0_ID 0x10003
+ MX8ULP_PAD_PTF4__USB0_OC 0x10003
+ >;
+ };
+
+ pinctrl_usb2: usb2grp {
+ fsl,pins = <
+ MX8ULP_PAD_PTD23__USB1_ID 0x10003
+ MX8ULP_PAD_PTF6__USB1_OC 0x10003
+ >;
+ };
+
pinctrl_usdhc0: usdhc0grp {
fsl,pins = <
MX8ULP_PAD_PTD1__SDHC0_CMD 0x3
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 4/7] dt-bindings: usb: ci-hdrc-usb2: add restrictions for reg, interrupts, clock and clock-names properties
2024-01-19 7:19 [PATCH v4 1/7] dt-bindings: usb: usbmisc-imx: add fsl,imx8ulp-usbmisc compatible Xu Yang
2024-01-19 7:19 ` [PATCH v4 2/7] arm64: dts: imx8ulp: add usb nodes Xu Yang
2024-01-19 7:19 ` [PATCH v4 3/7] arm64: dts: imx8ulp-evk: enable usb nodes and add ptn5150 nodes Xu Yang
@ 2024-01-19 7:19 ` Xu Yang
2024-01-29 15:49 ` Krzysztof Kozlowski
2024-01-19 7:19 ` [PATCH v4 5/7] dt-bindings: usb: ci-hdrc-usb2: add compatible and clock-names restriction for imx93 Xu Yang
` (3 subsequent siblings)
6 siblings, 1 reply; 15+ messages in thread
From: Xu Yang @ 2024-01-19 7:19 UTC (permalink / raw)
To: gregkh, robh+dt, krzysztof.kozlowski+dt, conor+dt, shawnguo,
s.hauer, kernel, festevam
Cc: linux-imx, devicetree, linux-arm-kernel, jun.li, linux-usb
Change reg, interrupts, clock and clock-names as common properties and add
restrictions on them for different compatibles.
Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
---
Changes in v4:
- new patch since v3's discussion
- split the reg, interrupts, clock and clock-names properties into
common part and device-specific
---
.../devicetree/bindings/usb/ci-hdrc-usb2.yaml | 118 +++++++++++++++---
1 file changed, 102 insertions(+), 16 deletions(-)
diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
index b7e664f7395b..78e30ca0a8ca 100644
--- a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
+++ b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
@@ -73,22 +73,10 @@ properties:
- nuvoton,npcm845-udc
- const: nuvoton,npcm750-udc
- reg:
- minItems: 1
- maxItems: 2
-
- interrupts:
- minItems: 1
- maxItems: 2
-
- clocks:
- minItems: 1
- maxItems: 3
-
- clock-names:
- minItems: 1
- maxItems: 3
-
+ reg: true
+ interrupts: true
+ clocks: true
+ clock-names: true
dr_mode: true
power-domains:
@@ -412,6 +400,104 @@ allOf:
samsung,picophy-pre-emp-curr-control: false
samsung,picophy-dc-vol-level-adjust: false
+ - if:
+ properties:
+ compatible:
+ oneOf:
+ - items:
+ - const: fsl,imx27-usb
+ - items:
+ - enum:
+ - fsl,imx25-usb
+ - fsl,imx35-usb
+ - const: fsl,imx27-usb
+ then:
+ properties:
+ clocks:
+ minItems: 3
+ maxItems: 3
+ clock-names:
+ minItems: 3
+ maxItems: 3
+ items:
+ anyOf:
+ - const: ipg
+ - const: ahb
+ - const: per
+
+ - if:
+ properties:
+ compatible:
+ oneOf:
+ - items:
+ - const: qcom,ci-hdrc
+ then:
+ properties:
+ reg:
+ minItems: 2
+ maxItems: 2
+ interrupts:
+ minItems: 1
+ maxItems: 2
+ clocks:
+ minItems: 2
+ maxItems: 3
+ clock-names:
+ minItems: 2
+ maxItems: 3
+ items:
+ anyOf:
+ - const: core
+ - const: iface
+ - const: fs
+ description: optional
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ oneOf:
+ - const: chipidea,usb2
+ - const: fsl,imx23-usb
+ - const: fsl,imx28-usb
+ - const: fsl,imx7d-usb
+ - const: fsl,vf610-usb
+ - const: lsi,zevio-usb
+ - const: nuvoton,npcm750-udc
+ - pattern: '^fsl,imx5[0-3]+-usb$'
+ - pattern: '^fsl,imx6[a-z]+-usb$'
+ - pattern: '^nvidia,tegra[0-9]+-ehci$'
+ - pattern: '^nvidia,tegra[0-9]+-udc$'
+ then:
+ properties:
+ clocks:
+ minItems: 1
+ maxItems: 1
+ clock-names:
+ minItems: 1
+ maxItems: 1
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ oneOf:
+ - const: chipidea,usb2
+ - const: fsl,imx27-usb
+ - const: fsl,imx6ul-usb
+ - const: lsi,zevio-usb
+ - const: nuvoton,npcm750-udc
+ - pattern: '^nvidia,tegra[0-9]+-ehci$'
+ - pattern: '^nvidia,tegra[0-9]+-udc$'
+ then:
+ properties:
+ reg:
+ minItems: 1
+ maxItems: 1
+ interrupts:
+ minItems: 1
+ maxItems: 1
+
unevaluatedProperties: false
examples:
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 5/7] dt-bindings: usb: ci-hdrc-usb2: add compatible and clock-names restriction for imx93
2024-01-19 7:19 [PATCH v4 1/7] dt-bindings: usb: usbmisc-imx: add fsl,imx8ulp-usbmisc compatible Xu Yang
` (2 preceding siblings ...)
2024-01-19 7:19 ` [PATCH v4 4/7] dt-bindings: usb: ci-hdrc-usb2: add restrictions for reg, interrupts, clock and clock-names properties Xu Yang
@ 2024-01-19 7:19 ` Xu Yang
2024-01-29 15:51 ` Krzysztof Kozlowski
2024-01-19 7:19 ` [PATCH v4 6/7] arm64: dts: imx93: add usb nodes Xu Yang
` (2 subsequent siblings)
6 siblings, 1 reply; 15+ messages in thread
From: Xu Yang @ 2024-01-19 7:19 UTC (permalink / raw)
To: gregkh, robh+dt, krzysztof.kozlowski+dt, conor+dt, shawnguo,
s.hauer, kernel, festevam
Cc: linux-imx, devicetree, linux-arm-kernel, jun.li, linux-usb
The i.MX93 needs a wakup clock to work properly. This will add compatible
and restriction for i.MX93 platform.
Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
---
Changes in v2:
- no changes
Changes in v3:
- add clocks restriction
Changes in v4:
- use 'contains' rather 'items'
---
.../devicetree/bindings/usb/ci-hdrc-usb2.yaml | 47 ++++++++++++++-----
1 file changed, 34 insertions(+), 13 deletions(-)
diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
index 78e30ca0a8ca..a86cb5de1688 100644
--- a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
+++ b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
@@ -57,6 +57,7 @@ properties:
- enum:
- fsl,imx8mm-usb
- fsl,imx8mn-usb
+ - fsl,imx93-usb
- const: fsl,imx7d-usb
- const: fsl,imx27-usb
- items:
@@ -455,19 +456,23 @@ allOf:
- if:
properties:
compatible:
- contains:
- oneOf:
- - const: chipidea,usb2
- - const: fsl,imx23-usb
- - const: fsl,imx28-usb
- - const: fsl,imx7d-usb
- - const: fsl,vf610-usb
- - const: lsi,zevio-usb
- - const: nuvoton,npcm750-udc
- - pattern: '^fsl,imx5[0-3]+-usb$'
- - pattern: '^fsl,imx6[a-z]+-usb$'
- - pattern: '^nvidia,tegra[0-9]+-ehci$'
- - pattern: '^nvidia,tegra[0-9]+-udc$'
+ oneOf:
+ - contains:
+ oneOf:
+ - const: chipidea,usb2
+ - const: fsl,imx23-usb
+ - const: fsl,imx28-usb
+ - const: fsl,vf610-usb
+ - const: lsi,zevio-usb
+ - const: nuvoton,npcm750-udc
+ - pattern: '^fsl,imx5[0-3]+-usb$'
+ - pattern: '^fsl,imx6[a-z]+-usb$'
+ - pattern: '^fsl,imx8[a-z]+-usb$'
+ - pattern: '^nvidia,tegra[0-9]+-ehci$'
+ - pattern: '^nvidia,tegra[0-9]+-udc$'
+ - items:
+ - const: fsl,imx7d-usb
+ - const: fsl,imx27-usb
then:
properties:
clocks:
@@ -477,6 +482,22 @@ allOf:
minItems: 1
maxItems: 1
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: fsl,imx93-usb
+ then:
+ properties:
+ clocks:
+ minItems: 2
+ maxItems: 2
+ clock-names:
+ minItems: 2
+ maxItems: 2
+ contains:
+ const: usb_wakeup_clk
+
- if:
properties:
compatible:
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 6/7] arm64: dts: imx93: add usb nodes
2024-01-19 7:19 [PATCH v4 1/7] dt-bindings: usb: usbmisc-imx: add fsl,imx8ulp-usbmisc compatible Xu Yang
` (3 preceding siblings ...)
2024-01-19 7:19 ` [PATCH v4 5/7] dt-bindings: usb: ci-hdrc-usb2: add compatible and clock-names restriction for imx93 Xu Yang
@ 2024-01-19 7:19 ` Xu Yang
2024-01-19 7:19 ` [PATCH v4 7/7] arm64: dts: imx93-11x11-evk: enable usb and typec nodes Xu Yang
2024-01-29 15:47 ` [PATCH v4 1/7] dt-bindings: usb: usbmisc-imx: add fsl,imx8ulp-usbmisc compatible Krzysztof Kozlowski
6 siblings, 0 replies; 15+ messages in thread
From: Xu Yang @ 2024-01-19 7:19 UTC (permalink / raw)
To: gregkh, robh+dt, krzysztof.kozlowski+dt, conor+dt, shawnguo,
s.hauer, kernel, festevam
Cc: linux-imx, devicetree, linux-arm-kernel, jun.li, linux-usb
There are 2 USB controllers on i.MX93. Add them.
Acked-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Tested-by: Alexander Stein <alexander.stein@ew.tq-group.com> # TQMa9352LA/CA
Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
---
Changes in v2:
- fix format as suggested by Alexander
- change compatible from fsl,imx8mm-usb to fsl,imx93-usb
Changes in v3:
- replace deprecated fsl,usbphy with phys as suggested by Alexander
- reorder nodes
Changes in v4:
- fix the alignment
---
arch/arm64/boot/dts/freescale/imx93.dtsi | 58 ++++++++++++++++++++++++
1 file changed, 58 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx93.dtsi b/arch/arm64/boot/dts/freescale/imx93.dtsi
index 34c0540276d1..dea0d14bbda0 100644
--- a/arch/arm64/boot/dts/freescale/imx93.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx93.dtsi
@@ -171,6 +171,20 @@ cm33: remoteproc-cm33 {
status = "disabled";
};
+ usbphynop1: usbphynop1 {
+ compatible = "usb-nop-xceiv";
+ #phy-cells = <0>;
+ clocks = <&clk IMX93_CLK_USB_PHY_BURUNIN>;
+ clock-names = "main_clk";
+ };
+
+ usbphynop2: usbphynop2 {
+ compatible = "usb-nop-xceiv";
+ #phy-cells = <0>;
+ clocks = <&clk IMX93_CLK_USB_PHY_BURUNIN>;
+ clock-names = "main_clk";
+ };
+
soc@0 {
compatible = "simple-bus";
#address-cells = <1>;
@@ -1054,6 +1068,50 @@ media_blk_ctrl: system-controller@4ac10000 {
status = "disabled";
};
+ usbotg1: usb@4c100000 {
+ compatible = "fsl,imx93-usb", "fsl,imx7d-usb", "fsl,imx27-usb";
+ reg = <0x4c100000 0x200>;
+ interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clk IMX93_CLK_USB_CONTROLLER_GATE>,
+ <&clk IMX93_CLK_HSIO_32K_GATE>;
+ clock-names = "usb_ctrl_root_clk", "usb_wakeup_clk";
+ assigned-clocks = <&clk IMX93_CLK_HSIO>;
+ assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>;
+ assigned-clock-rates = <133000000>;
+ phys = <&usbphynop1>;
+ fsl,usbmisc = <&usbmisc1 0>;
+ status = "disabled";
+ };
+
+ usbmisc1: usbmisc@4c100200 {
+ compatible = "fsl,imx8mm-usbmisc", "fsl,imx7d-usbmisc",
+ "fsl,imx6q-usbmisc";
+ reg = <0x4c100200 0x200>;
+ #index-cells = <1>;
+ };
+
+ usbotg2: usb@4c200000 {
+ compatible = "fsl,imx93-usb", "fsl,imx7d-usb", "fsl,imx27-usb";
+ reg = <0x4c200000 0x200>;
+ interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clk IMX93_CLK_USB_CONTROLLER_GATE>,
+ <&clk IMX93_CLK_HSIO_32K_GATE>;
+ clock-names = "usb_ctrl_root_clk", "usb_wakeup_clk";
+ assigned-clocks = <&clk IMX93_CLK_HSIO>;
+ assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>;
+ assigned-clock-rates = <133000000>;
+ phys = <&usbphynop2>;
+ fsl,usbmisc = <&usbmisc2 0>;
+ status = "disabled";
+ };
+
+ usbmisc2: usbmisc@4c200200 {
+ compatible = "fsl,imx8mm-usbmisc", "fsl,imx7d-usbmisc",
+ "fsl,imx6q-usbmisc";
+ reg = <0x4c200200 0x200>;
+ #index-cells = <1>;
+ };
+
ddr-pmu@4e300dc0 {
compatible = "fsl,imx93-ddr-pmu";
reg = <0x4e300dc0 0x200>;
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 7/7] arm64: dts: imx93-11x11-evk: enable usb and typec nodes
2024-01-19 7:19 [PATCH v4 1/7] dt-bindings: usb: usbmisc-imx: add fsl,imx8ulp-usbmisc compatible Xu Yang
` (4 preceding siblings ...)
2024-01-19 7:19 ` [PATCH v4 6/7] arm64: dts: imx93: add usb nodes Xu Yang
@ 2024-01-19 7:19 ` Xu Yang
2024-01-29 15:47 ` [PATCH v4 1/7] dt-bindings: usb: usbmisc-imx: add fsl,imx8ulp-usbmisc compatible Krzysztof Kozlowski
6 siblings, 0 replies; 15+ messages in thread
From: Xu Yang @ 2024-01-19 7:19 UTC (permalink / raw)
To: gregkh, robh+dt, krzysztof.kozlowski+dt, conor+dt, shawnguo,
s.hauer, kernel, festevam
Cc: linux-imx, devicetree, linux-arm-kernel, jun.li, linux-usb
There are 2 Type-C ports and 2 USB controllers on i.MX93. Enable them.
Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
---
Changes in v2:
- remove status property in ptn5110 nodes
- fix dt-schema warnings
Changes in v3:
- no changes
Changes in v4:
- no changes
---
.../boot/dts/freescale/imx93-11x11-evk.dts | 118 ++++++++++++++++++
1 file changed, 118 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts b/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
index 2b9d47716f75..87c7cfacdc7b 100644
--- a/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
@@ -5,6 +5,7 @@
/dts-v1/;
+#include <dt-bindings/usb/pd.h>
#include "imx93.dtsi"
/ {
@@ -103,6 +104,80 @@ &mu2 {
status = "okay";
};
+&lpi2c3 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ clock-frequency = <400000>;
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&pinctrl_lpi2c3>;
+ pinctrl-1 = <&pinctrl_lpi2c3>;
+ status = "okay";
+
+ ptn5110: tcpc@50 {
+ compatible = "nxp,ptn5110";
+ reg = <0x50>;
+ interrupt-parent = <&gpio3>;
+ interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
+
+ typec1_con: connector {
+ compatible = "usb-c-connector";
+ label = "USB-C";
+ power-role = "dual";
+ data-role = "dual";
+ try-power-role = "sink";
+ source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+ sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+ PDO_VAR(5000, 20000, 3000)>;
+ op-sink-microwatt = <15000000>;
+ self-powered;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ typec1_dr_sw: endpoint {
+ remote-endpoint = <&usb1_drd_sw>;
+ };
+ };
+ };
+ };
+ };
+
+ ptn5110_2: tcpc@51 {
+ compatible = "nxp,ptn5110";
+ reg = <0x51>;
+ interrupt-parent = <&gpio3>;
+ interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
+
+ typec2_con: connector {
+ compatible = "usb-c-connector";
+ label = "USB-C";
+ power-role = "dual";
+ data-role = "dual";
+ try-power-role = "sink";
+ source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+ sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+ PDO_VAR(5000, 20000, 3000)>;
+ op-sink-microwatt = <15000000>;
+ self-powered;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ typec2_dr_sw: endpoint {
+ remote-endpoint = <&usb2_drd_sw>;
+ };
+ };
+ };
+ };
+ };
+};
+
&eqos {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_eqos>;
@@ -155,6 +230,42 @@ &lpuart5 {
status = "okay";
};
+&usbotg1 {
+ dr_mode = "otg";
+ hnp-disable;
+ srp-disable;
+ adp-disable;
+ usb-role-switch;
+ disable-over-current;
+ samsung,picophy-pre-emp-curr-control = <3>;
+ samsung,picophy-dc-vol-level-adjust = <7>;
+ status = "okay";
+
+ port {
+ usb1_drd_sw: endpoint {
+ remote-endpoint = <&typec1_dr_sw>;
+ };
+ };
+};
+
+&usbotg2 {
+ dr_mode = "otg";
+ hnp-disable;
+ srp-disable;
+ adp-disable;
+ usb-role-switch;
+ disable-over-current;
+ samsung,picophy-pre-emp-curr-control = <3>;
+ samsung,picophy-dc-vol-level-adjust = <7>;
+ status = "okay";
+
+ port {
+ usb2_drd_sw: endpoint {
+ remote-endpoint = <&typec2_dr_sw>;
+ };
+ };
+};
+
&usdhc1 {
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc1>;
@@ -221,6 +332,13 @@ MX93_PAD_ENET2_TX_CTL__ENET1_RGMII_TX_CTL 0x57e
>;
};
+ pinctrl_lpi2c3: lpi2c3grp {
+ fsl,pins = <
+ MX93_PAD_GPIO_IO28__LPI2C3_SDA 0x40000b9e
+ MX93_PAD_GPIO_IO29__LPI2C3_SCL 0x40000b9e
+ >;
+ };
+
pinctrl_uart1: uart1grp {
fsl,pins = <
MX93_PAD_UART1_RXD__LPUART1_RX 0x31e
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v4 1/7] dt-bindings: usb: usbmisc-imx: add fsl,imx8ulp-usbmisc compatible
2024-01-19 7:19 [PATCH v4 1/7] dt-bindings: usb: usbmisc-imx: add fsl,imx8ulp-usbmisc compatible Xu Yang
` (5 preceding siblings ...)
2024-01-19 7:19 ` [PATCH v4 7/7] arm64: dts: imx93-11x11-evk: enable usb and typec nodes Xu Yang
@ 2024-01-29 15:47 ` Krzysztof Kozlowski
6 siblings, 0 replies; 15+ messages in thread
From: Krzysztof Kozlowski @ 2024-01-29 15:47 UTC (permalink / raw)
To: Xu Yang, gregkh, robh+dt, krzysztof.kozlowski+dt, conor+dt,
shawnguo, s.hauer, kernel, festevam
Cc: linux-imx, devicetree, linux-arm-kernel, jun.li, linux-usb
On 19/01/2024 08:19, Xu Yang wrote:
> Add "fsl,imx8ulp-usbmisc" compatible.
>
> Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
>
> ---
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 4/7] dt-bindings: usb: ci-hdrc-usb2: add restrictions for reg, interrupts, clock and clock-names properties
2024-01-19 7:19 ` [PATCH v4 4/7] dt-bindings: usb: ci-hdrc-usb2: add restrictions for reg, interrupts, clock and clock-names properties Xu Yang
@ 2024-01-29 15:49 ` Krzysztof Kozlowski
2024-01-31 8:24 ` [EXT] " Xu Yang
0 siblings, 1 reply; 15+ messages in thread
From: Krzysztof Kozlowski @ 2024-01-29 15:49 UTC (permalink / raw)
To: Xu Yang, gregkh, robh+dt, krzysztof.kozlowski+dt, conor+dt,
shawnguo, s.hauer, kernel, festevam
Cc: linux-imx, devicetree, linux-arm-kernel, jun.li, linux-usb
On 19/01/2024 08:19, Xu Yang wrote:
> Change reg, interrupts, clock and clock-names as common properties and add
> restrictions on them for different compatibles.
>
> Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
>
> ---
> Changes in v4:
> - new patch since v3's discussion
> - split the reg, interrupts, clock and clock-names properties into
> common part and device-specific
> ---
> .../devicetree/bindings/usb/ci-hdrc-usb2.yaml | 118 +++++++++++++++---
> 1 file changed, 102 insertions(+), 16 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
> index b7e664f7395b..78e30ca0a8ca 100644
> --- a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
> +++ b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
> @@ -73,22 +73,10 @@ properties:
> - nuvoton,npcm845-udc
> - const: nuvoton,npcm750-udc
>
> - reg:
> - minItems: 1
> - maxItems: 2
> -
> - interrupts:
> - minItems: 1
> - maxItems: 2
> -
> - clocks:
> - minItems: 1
> - maxItems: 3
> -
> - clock-names:
> - minItems: 1
> - maxItems: 3
Why all these are gone? They are supposed to be here. Your if:then: only
customizes them.
> -
> + reg: true
> + interrupts: true
> + clocks: true
> + clock-names: true
No. These are not booleans on other variants.
> dr_mode: true
>
> power-domains:
> @@ -412,6 +400,104 @@ allOf:
> samsung,picophy-pre-emp-curr-control: false
> samsung,picophy-dc-vol-level-adjust: false
>
> + - if:
> + properties:
> + compatible:
> + oneOf:
> + - items:
> + - const: fsl,imx27-usb
No, the syntax you need is contains:.
Look at existing code - there is no single binding with oneOf: in if: block.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 5/7] dt-bindings: usb: ci-hdrc-usb2: add compatible and clock-names restriction for imx93
2024-01-19 7:19 ` [PATCH v4 5/7] dt-bindings: usb: ci-hdrc-usb2: add compatible and clock-names restriction for imx93 Xu Yang
@ 2024-01-29 15:51 ` Krzysztof Kozlowski
2024-01-31 8:36 ` [EXT] " Xu Yang
0 siblings, 1 reply; 15+ messages in thread
From: Krzysztof Kozlowski @ 2024-01-29 15:51 UTC (permalink / raw)
To: Xu Yang, gregkh, robh+dt, krzysztof.kozlowski+dt, conor+dt,
shawnguo, s.hauer, kernel, festevam
Cc: linux-imx, devicetree, linux-arm-kernel, jun.li, linux-usb
On 19/01/2024 08:19, Xu Yang wrote:
> The i.MX93 needs a wakup clock to work properly. This will add compatible
> and restriction for i.MX93 platform.
>
> Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
>
> ---
> Changes in v2:
> - no changes
> Changes in v3:
> - add clocks restriction
> Changes in v4:
> - use 'contains' rather 'items'
> ---
> .../devicetree/bindings/usb/ci-hdrc-usb2.yaml | 47 ++++++++++++++-----
> 1 file changed, 34 insertions(+), 13 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
> index 78e30ca0a8ca..a86cb5de1688 100644
> --- a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
> +++ b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
> @@ -57,6 +57,7 @@ properties:
> - enum:
> - fsl,imx8mm-usb
> - fsl,imx8mn-usb
> + - fsl,imx93-usb
> - const: fsl,imx7d-usb
> - const: fsl,imx27-usb
> - items:
> @@ -455,19 +456,23 @@ allOf:
> - if:
> properties:
> compatible:
> - contains:
> - oneOf:
> - - const: chipidea,usb2
> - - const: fsl,imx23-usb
> - - const: fsl,imx28-usb
> - - const: fsl,imx7d-usb
> - - const: fsl,vf610-usb
> - - const: lsi,zevio-usb
> - - const: nuvoton,npcm750-udc
> - - pattern: '^fsl,imx5[0-3]+-usb$'
> - - pattern: '^fsl,imx6[a-z]+-usb$'
> - - pattern: '^nvidia,tegra[0-9]+-ehci$'
> - - pattern: '^nvidia,tegra[0-9]+-udc$'
> + oneOf:
> + - contains:
> + oneOf:
No, this does not make sense.
> + - const: chipidea,usb2
> + - const: fsl,imx23-usb
Look here is a place for your compatible... unless imx93 is not really
compatible, but then why pretending it is?
> + - const: fsl,imx28-usb
> + - const: fsl,vf610-usb
> + - const: lsi,zevio-usb
> + - const: nuvoton,npcm750-udc
> + - pattern: '^fsl,imx5[0-3]+-usb$'
> + - pattern: '^fsl,imx6[a-z]+-usb$'
> + - pattern: '^fsl,imx8[a-z]+-usb$'
> + - pattern: '^nvidia,tegra[0-9]+-ehci$'
> + - pattern: '^nvidia,tegra[0-9]+-udc$'
> + - items:
> + - const: fsl,imx7d-usb
> + - const: fsl,imx27-usb
> then:
> properties:
> clocks:
> @@ -477,6 +482,22 @@ allOf:
> minItems: 1
> maxItems: 1
>
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: fsl,imx93-usb
> + then:
> + properties:
> + clocks:
> + minItems: 2
> + maxItems: 2
> + clock-names:
> + minItems: 2
> + maxItems: 2
> + contains:
> + const: usb_wakeup_clk
Drop "_clk" suffix.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 15+ messages in thread
* RE: [EXT] Re: [PATCH v4 4/7] dt-bindings: usb: ci-hdrc-usb2: add restrictions for reg, interrupts, clock and clock-names properties
2024-01-29 15:49 ` Krzysztof Kozlowski
@ 2024-01-31 8:24 ` Xu Yang
2024-01-31 8:41 ` Krzysztof Kozlowski
0 siblings, 1 reply; 15+ messages in thread
From: Xu Yang @ 2024-01-31 8:24 UTC (permalink / raw)
To: Krzysztof Kozlowski, gregkh@linuxfoundation.org,
robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org,
conor+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de,
kernel@pengutronix.de, festevam@gmail.com
Cc: dl-linux-imx, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, Jun Li,
linux-usb@vger.kernel.org
Hi Krzysztof,
>
> On 19/01/2024 08:19, Xu Yang wrote:
> > Change reg, interrupts, clock and clock-names as common properties and add
> > restrictions on them for different compatibles.
> >
> > Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
> >
> > ---
> > Changes in v4:
> > - new patch since v3's discussion
> > - split the reg, interrupts, clock and clock-names properties into
> > common part and device-specific
> > ---
> > .../devicetree/bindings/usb/ci-hdrc-usb2.yaml | 118 +++++++++++++++---
> > 1 file changed, 102 insertions(+), 16 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml b/Documentation/devicetree/bindings/usb/ci-
> hdrc-usb2.yaml
> > index b7e664f7395b..78e30ca0a8ca 100644
> > --- a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
> > +++ b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
> > @@ -73,22 +73,10 @@ properties:
> > - nuvoton,npcm845-udc
> > - const: nuvoton,npcm750-udc
> >
> > - reg:
> > - minItems: 1
> > - maxItems: 2
> > -
> > - interrupts:
> > - minItems: 1
> > - maxItems: 2
> > -
> > - clocks:
> > - minItems: 1
> > - maxItems: 3
> > -
> > - clock-names:
> > - minItems: 1
> > - maxItems: 3
>
> Why all these are gone? They are supposed to be here. Your if:then: only
> customizes them.
I have also concerns of whether to make this part common.
I will revert this later.
>
> > -
> > + reg: true
> > + interrupts: true
> > + clocks: true
> > + clock-names: true
>
> No. These are not booleans on other variants.
Okay.
>
> > dr_mode: true
> >
> > power-domains:
> > @@ -412,6 +400,104 @@ allOf:
> > samsung,picophy-pre-emp-curr-control: false
> > samsung,picophy-dc-vol-level-adjust: false
> >
> > + - if:
> > + properties:
> > + compatible:
> > + oneOf:
> > + - items:
> > + - const: fsl,imx27-usb
>
> No, the syntax you need is contains:.
>
> Look at existing code - there is no single binding with oneOf: in if: block.
I wonder why 'make dt_binding_check' does not report this issue if the syntax
is not correct?
So I need to add contains as below, right?
- if:
properties:
compatible:
contains:
oneOf:
- items:
- const: fsl,imx27-usb
- items:
- enum:
- fsl,imx25-usb
- fsl,imx35-usb
- const: fsl,imx27-usb
The purpose of this code is to match:
- compatible = "fsl,imx27-usb";
- compatible = "fsl,imx25-usb", "fsl,imx27-usb";
- compatible = "fsl,imx35-usb", "fsl,imx27-usb";
but should not match:
- compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
Is this feasible?
Thanks,
Xu Yang
^ permalink raw reply [flat|nested] 15+ messages in thread
* RE: [EXT] Re: [PATCH v4 5/7] dt-bindings: usb: ci-hdrc-usb2: add compatible and clock-names restriction for imx93
2024-01-29 15:51 ` Krzysztof Kozlowski
@ 2024-01-31 8:36 ` Xu Yang
2024-01-31 8:45 ` Krzysztof Kozlowski
0 siblings, 1 reply; 15+ messages in thread
From: Xu Yang @ 2024-01-31 8:36 UTC (permalink / raw)
To: Krzysztof Kozlowski, gregkh@linuxfoundation.org,
robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org,
conor+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de,
kernel@pengutronix.de, festevam@gmail.com
Cc: dl-linux-imx, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, Jun Li,
linux-usb@vger.kernel.org
Hi Krzysztof,
>
> On 19/01/2024 08:19, Xu Yang wrote:
> > The i.MX93 needs a wakup clock to work properly. This will add compatible
> > and restriction for i.MX93 platform.
> >
> > Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
> >
> > ---
> > Changes in v2:
> > - no changes
> > Changes in v3:
> > - add clocks restriction
> > Changes in v4:
> > - use 'contains' rather 'items'
> > ---
> > .../devicetree/bindings/usb/ci-hdrc-usb2.yaml | 47 ++++++++++++++-----
> > 1 file changed, 34 insertions(+), 13 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml b/Documentation/devicetree/bindings/usb/ci-
> hdrc-usb2.yaml
> > index 78e30ca0a8ca..a86cb5de1688 100644
> > --- a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
> > +++ b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
> > @@ -57,6 +57,7 @@ properties:
> > - enum:
> > - fsl,imx8mm-usb
> > - fsl,imx8mn-usb
> > + - fsl,imx93-usb
> > - const: fsl,imx7d-usb
> > - const: fsl,imx27-usb
> > - items:
> > @@ -455,19 +456,23 @@ allOf:
> > - if:
> > properties:
> > compatible:
> > - contains:
> > - oneOf:
> > - - const: chipidea,usb2
> > - - const: fsl,imx23-usb
> > - - const: fsl,imx28-usb
> > - - const: fsl,imx7d-usb
> > - - const: fsl,vf610-usb
> > - - const: lsi,zevio-usb
> > - - const: nuvoton,npcm750-udc
> > - - pattern: '^fsl,imx5[0-3]+-usb$'
> > - - pattern: '^fsl,imx6[a-z]+-usb$'
> > - - pattern: '^nvidia,tegra[0-9]+-ehci$'
> > - - pattern: '^nvidia,tegra[0-9]+-udc$'
> > + oneOf:
> > + - contains:
> > + oneOf:
>
> No, this does not make sense.
>
> > + - const: chipidea,usb2
> > + - const: fsl,imx23-usb
>
> Look here is a place for your compatible... unless imx93 is not really
> compatible, but then why pretending it is?
I can't put fsl,imx93-usb here since imx93 needs 2 clocks. So I add another
if-then limitation for imx93 below this part.
>
> > + - const: fsl,imx28-usb
> > + - const: fsl,vf610-usb
> > + - const: lsi,zevio-usb
> > + - const: nuvoton,npcm750-udc
> > + - pattern: '^fsl,imx5[0-3]+-usb$'
> > + - pattern: '^fsl,imx6[a-z]+-usb$'
> > + - pattern: '^fsl,imx8[a-z]+-usb$'
> > + - pattern: '^nvidia,tegra[0-9]+-ehci$'
> > + - pattern: '^nvidia,tegra[0-9]+-udc$'
> > + - items:
> > + - const: fsl,imx7d-usb
> > + - const: fsl,imx27-usb
> > then:
> > properties:
> > clocks:
> > @@ -477,6 +482,22 @@ allOf:
> > minItems: 1
> > maxItems: 1
> >
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + const: fsl,imx93-usb
> > + then:
> > + properties:
> > + clocks:
> > + minItems: 2
> > + maxItems: 2
> > + clock-names:
> > + minItems: 2
> > + maxItems: 2
> > + contains:
> > + const: usb_wakeup_clk
>
> Drop "_clk" suffix.
Okay.
Thanks,
Xu Yang
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [EXT] Re: [PATCH v4 4/7] dt-bindings: usb: ci-hdrc-usb2: add restrictions for reg, interrupts, clock and clock-names properties
2024-01-31 8:24 ` [EXT] " Xu Yang
@ 2024-01-31 8:41 ` Krzysztof Kozlowski
2024-01-31 9:02 ` Xu Yang
0 siblings, 1 reply; 15+ messages in thread
From: Krzysztof Kozlowski @ 2024-01-31 8:41 UTC (permalink / raw)
To: Xu Yang, gregkh@linuxfoundation.org, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
shawnguo@kernel.org, s.hauer@pengutronix.de,
kernel@pengutronix.de, festevam@gmail.com
Cc: dl-linux-imx, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, Jun Li,
linux-usb@vger.kernel.org
On 31/01/2024 09:24, Xu Yang wrote:
> Hi Krzysztof,
>
>>
>> On 19/01/2024 08:19, Xu Yang wrote:
>>> Change reg, interrupts, clock and clock-names as common properties and add
>>> restrictions on them for different compatibles.
>>>
>>> Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
>>>
>>> ---
>>> Changes in v4:
>>> - new patch since v3's discussion
>>> - split the reg, interrupts, clock and clock-names properties into
>>> common part and device-specific
>>> ---
>>> .../devicetree/bindings/usb/ci-hdrc-usb2.yaml | 118 +++++++++++++++---
>>> 1 file changed, 102 insertions(+), 16 deletions(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml b/Documentation/devicetree/bindings/usb/ci-
>> hdrc-usb2.yaml
>>> index b7e664f7395b..78e30ca0a8ca 100644
>>> --- a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
>>> +++ b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
>>> @@ -73,22 +73,10 @@ properties:
>>> - nuvoton,npcm845-udc
>>> - const: nuvoton,npcm750-udc
>>>
>>> - reg:
>>> - minItems: 1
>>> - maxItems: 2
>>> -
>>> - interrupts:
>>> - minItems: 1
>>> - maxItems: 2
>>> -
>>> - clocks:
>>> - minItems: 1
>>> - maxItems: 3
>>> -
>>> - clock-names:
>>> - minItems: 1
>>> - maxItems: 3
>>
>> Why all these are gone? They are supposed to be here. Your if:then: only
>> customizes them.
>
> I have also concerns of whether to make this part common.
> I will revert this later.
Revert? No. This patch must be correct.
>
>>
>>> -
>>> + reg: true
>>> + interrupts: true
>>> + clocks: true
>>> + clock-names: true
>>
>> No. These are not booleans on other variants.
>
> Okay.
>
>>
>>> dr_mode: true
>>>
>>> power-domains:
>>> @@ -412,6 +400,104 @@ allOf:
>>> samsung,picophy-pre-emp-curr-control: false
>>> samsung,picophy-dc-vol-level-adjust: false
>>>
>>> + - if:
>>> + properties:
>>> + compatible:
>>> + oneOf:
>>> + - items:
>>> + - const: fsl,imx27-usb
>>
>> No, the syntax you need is contains:.
>>
>> Look at existing code - there is no single binding with oneOf: in if: block.
>
> I wonder why 'make dt_binding_check' does not report this issue if the syntax
> is not correct?
I did not say syntax is incorrect.
>
> So I need to add contains as below, right?
>
> - if:
> properties:
> compatible:
> contains:
> oneOf:
> - items:
> - const: fsl,imx27-usb
> - items:
> - enum:
> - fsl,imx25-usb
> - fsl,imx35-usb
> - const: fsl,imx27-usb
>
> The purpose of this code is to match:
>
> - compatible = "fsl,imx27-usb";
> - compatible = "fsl,imx25-usb", "fsl,imx27-usb";
> - compatible = "fsl,imx35-usb", "fsl,imx27-usb";
>
> but should not match:
>
> - compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
>
> Is this feasible?
So maybe they are not compatible? Your patch creates some unusual
constraints for all the variants, which is probably result of huge one
binding for all implementations of re-used IP block. I don't think that
this huge if: you add here and further in the patch helps. Just like for
other re-used IP blocks, this should have common part and
per-device/per-family/per-implementation binding.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [EXT] Re: [PATCH v4 5/7] dt-bindings: usb: ci-hdrc-usb2: add compatible and clock-names restriction for imx93
2024-01-31 8:36 ` [EXT] " Xu Yang
@ 2024-01-31 8:45 ` Krzysztof Kozlowski
0 siblings, 0 replies; 15+ messages in thread
From: Krzysztof Kozlowski @ 2024-01-31 8:45 UTC (permalink / raw)
To: Xu Yang, gregkh@linuxfoundation.org, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
shawnguo@kernel.org, s.hauer@pengutronix.de,
kernel@pengutronix.de, festevam@gmail.com
Cc: dl-linux-imx, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, Jun Li,
linux-usb@vger.kernel.org
On 31/01/2024 09:36, Xu Yang wrote:
> Hi Krzysztof,
>
>>
>> On 19/01/2024 08:19, Xu Yang wrote:
>>> The i.MX93 needs a wakup clock to work properly. This will add compatible
>>> and restriction for i.MX93 platform.
>>>
>>> Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
>>>
>>> ---
>>> Changes in v2:
>>> - no changes
>>> Changes in v3:
>>> - add clocks restriction
>>> Changes in v4:
>>> - use 'contains' rather 'items'
>>> ---
>>> .../devicetree/bindings/usb/ci-hdrc-usb2.yaml | 47 ++++++++++++++-----
>>> 1 file changed, 34 insertions(+), 13 deletions(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml b/Documentation/devicetree/bindings/usb/ci-
>> hdrc-usb2.yaml
>>> index 78e30ca0a8ca..a86cb5de1688 100644
>>> --- a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
>>> +++ b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
>>> @@ -57,6 +57,7 @@ properties:
>>> - enum:
>>> - fsl,imx8mm-usb
>>> - fsl,imx8mn-usb
>>> + - fsl,imx93-usb
>>> - const: fsl,imx7d-usb
>>> - const: fsl,imx27-usb
>>> - items:
>>> @@ -455,19 +456,23 @@ allOf:
>>> - if:
>>> properties:
>>> compatible:
>>> - contains:
>>> - oneOf:
>>> - - const: chipidea,usb2
>>> - - const: fsl,imx23-usb
>>> - - const: fsl,imx28-usb
>>> - - const: fsl,imx7d-usb
>>> - - const: fsl,vf610-usb
>>> - - const: lsi,zevio-usb
>>> - - const: nuvoton,npcm750-udc
>>> - - pattern: '^fsl,imx5[0-3]+-usb$'
>>> - - pattern: '^fsl,imx6[a-z]+-usb$'
>>> - - pattern: '^nvidia,tegra[0-9]+-ehci$'
>>> - - pattern: '^nvidia,tegra[0-9]+-udc$'
>>> + oneOf:
>>> + - contains:
>>> + oneOf:
>>
>> No, this does not make sense.
>>
>>> + - const: chipidea,usb2
>>> + - const: fsl,imx23-usb
>>
>> Look here is a place for your compatible... unless imx93 is not really
>> compatible, but then why pretending it is?
>
> I can't put fsl,imx93-usb here since imx93 needs 2 clocks. So I add another
> if-then limitation for imx93 below this part.
Hm, ok, but anyway I don't want to go deeper in this indentation. It
does not make things easier to read.
>
>>
>>> + - const: fsl,imx28-usb
>>> + - const: fsl,vf610-usb
>>> + - const: lsi,zevio-usb
>>> + - const: nuvoton,npcm750-udc
>>> + - pattern: '^fsl,imx5[0-3]+-usb$'
>>> + - pattern: '^fsl,imx6[a-z]+-usb$'
>>> + - pattern: '^fsl,imx8[a-z]+-usb$'
>>> + - pattern: '^nvidia,tegra[0-9]+-ehci$'
>>> + - pattern: '^nvidia,tegra[0-9]+-udc$'
>>> + - items:
>>> + - const: fsl,imx7d-usb
>>> + - const: fsl,imx27-usb
>>> then:
>>> properties:
>>> clocks:
>>> @@ -477,6 +482,22 @@ allOf:
>>> minItems: 1
>>> maxItems: 1
>>>
>>> + - if:
>>> + properties:
>>> + compatible:
>>> + contains:
>>> + const: fsl,imx93-usb
>>> + then:
>>> + properties:
>>> + clocks:
>>> + minItems: 2
>>> + maxItems: 2
>>> + clock-names:
>>> + minItems: 2
>>> + maxItems: 2
>>> + contains:
>>> + const: usb_wakeup_clk
>>
>> Drop "_clk" suffix.
>
Anyway neither this nor previous patch has the entries constrained. They
must be specific, so constrained.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 15+ messages in thread
* RE: [EXT] Re: [PATCH v4 4/7] dt-bindings: usb: ci-hdrc-usb2: add restrictions for reg, interrupts, clock and clock-names properties
2024-01-31 8:41 ` Krzysztof Kozlowski
@ 2024-01-31 9:02 ` Xu Yang
0 siblings, 0 replies; 15+ messages in thread
From: Xu Yang @ 2024-01-31 9:02 UTC (permalink / raw)
To: Krzysztof Kozlowski, gregkh@linuxfoundation.org,
robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org,
conor+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de,
kernel@pengutronix.de, festevam@gmail.com
Cc: dl-linux-imx, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, Jun Li,
linux-usb@vger.kernel.org
Hi Krzysztof,
>
> On 31/01/2024 09:24, Xu Yang wrote:
> > Hi Krzysztof,
> >
> >>
> >> On 19/01/2024 08:19, Xu Yang wrote:
> >>> Change reg, interrupts, clock and clock-names as common properties and add
> >>> restrictions on them for different compatibles.
> >>>
> >>> Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
> >>>
> >>> ---
> >>> Changes in v4:
> >>> - new patch since v3's discussion
> >>> - split the reg, interrupts, clock and clock-names properties into
> >>> common part and device-specific
> >>> ---
> >>> .../devicetree/bindings/usb/ci-hdrc-usb2.yaml | 118 +++++++++++++++---
> >>> 1 file changed, 102 insertions(+), 16 deletions(-)
> >>>
> >>> diff --git a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml b/Documentation/devicetree/bindings/usb/ci-
> >> hdrc-usb2.yaml
> >>> index b7e664f7395b..78e30ca0a8ca 100644
> >>> --- a/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
> >>> +++ b/Documentation/devicetree/bindings/usb/ci-hdrc-usb2.yaml
> >>> @@ -73,22 +73,10 @@ properties:
> >>> - nuvoton,npcm845-udc
> >>> - const: nuvoton,npcm750-udc
> >>>
> >>> - reg:
> >>> - minItems: 1
> >>> - maxItems: 2
> >>> -
> >>> - interrupts:
> >>> - minItems: 1
> >>> - maxItems: 2
> >>> -
> >>> - clocks:
> >>> - minItems: 1
> >>> - maxItems: 3
> >>> -
> >>> - clock-names:
> >>> - minItems: 1
> >>> - maxItems: 3
> >>
> >> Why all these are gone? They are supposed to be here. Your if:then: only
> >> customizes them.
> >
> > I have also concerns of whether to make this part common.
> > I will revert this later.
>
> Revert? No. This patch must be correct.
I mean only this part keeps unchanged like before.
> >
> >>
> >>> -
> >>> + reg: true
> >>> + interrupts: true
> >>> + clocks: true
> >>> + clock-names: true
> >>
> >> No. These are not booleans on other variants.
> >
> > Okay.
> >
> >>
> >>> dr_mode: true
> >>>
> >>> power-domains:
> >>> @@ -412,6 +400,104 @@ allOf:
> >>> samsung,picophy-pre-emp-curr-control: false
> >>> samsung,picophy-dc-vol-level-adjust: false
> >>>
> >>> + - if:
> >>> + properties:
> >>> + compatible:
> >>> + oneOf:
> >>> + - items:
> >>> + - const: fsl,imx27-usb
> >>
> >> No, the syntax you need is contains:.
> >>
> >> Look at existing code - there is no single binding with oneOf: in if: block.
> >
> > I wonder why 'make dt_binding_check' does not report this issue if the syntax
> > is not correct?
>
> I did not say syntax is incorrect.
>
>
> >
> > So I need to add contains as below, right?
> >
> > - if:
> > properties:
> > compatible:
> > contains:
> > oneOf:
> > - items:
> > - const: fsl,imx27-usb
> > - items:
> > - enum:
> > - fsl,imx25-usb
> > - fsl,imx35-usb
> > - const: fsl,imx27-usb
> >
> > The purpose of this code is to match:
> >
> > - compatible = "fsl,imx27-usb";
> > - compatible = "fsl,imx25-usb", "fsl,imx27-usb";
> > - compatible = "fsl,imx35-usb", "fsl,imx27-usb";
> >
> > but should not match:
> >
> > - compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
> >
> > Is this feasible?
>
> So maybe they are not compatible? Your patch creates some unusual
Yes, they are not fully compatible.
> constraints for all the variants, which is probably result of huge one
> binding for all implementations of re-used IP block. I don't think that
> this huge if: you add here and further in the patch helps. Just like for
> other re-used IP blocks, this should have common part and
> per-device/per-family/per-implementation binding.
Actually I've tested all dts files (not only imx parts) against this dt-binding yaml.
Then I'll rework this patch to focus on imx parts. I'm not sure if someone will add
restrictions for their family/device in the future.
Thanks,
Xu Yang
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2024-01-31 9:02 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-19 7:19 [PATCH v4 1/7] dt-bindings: usb: usbmisc-imx: add fsl,imx8ulp-usbmisc compatible Xu Yang
2024-01-19 7:19 ` [PATCH v4 2/7] arm64: dts: imx8ulp: add usb nodes Xu Yang
2024-01-19 7:19 ` [PATCH v4 3/7] arm64: dts: imx8ulp-evk: enable usb nodes and add ptn5150 nodes Xu Yang
2024-01-19 7:19 ` [PATCH v4 4/7] dt-bindings: usb: ci-hdrc-usb2: add restrictions for reg, interrupts, clock and clock-names properties Xu Yang
2024-01-29 15:49 ` Krzysztof Kozlowski
2024-01-31 8:24 ` [EXT] " Xu Yang
2024-01-31 8:41 ` Krzysztof Kozlowski
2024-01-31 9:02 ` Xu Yang
2024-01-19 7:19 ` [PATCH v4 5/7] dt-bindings: usb: ci-hdrc-usb2: add compatible and clock-names restriction for imx93 Xu Yang
2024-01-29 15:51 ` Krzysztof Kozlowski
2024-01-31 8:36 ` [EXT] " Xu Yang
2024-01-31 8:45 ` Krzysztof Kozlowski
2024-01-19 7:19 ` [PATCH v4 6/7] arm64: dts: imx93: add usb nodes Xu Yang
2024-01-19 7:19 ` [PATCH v4 7/7] arm64: dts: imx93-11x11-evk: enable usb and typec nodes Xu Yang
2024-01-29 15:47 ` [PATCH v4 1/7] dt-bindings: usb: usbmisc-imx: add fsl,imx8ulp-usbmisc compatible Krzysztof Kozlowski
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).