* [PATCH 0/4] Add support for new IMX8MP based board
@ 2024-09-17 15:09 Michal Vokáč
2024-09-17 15:09 ` [PATCH 1/4] dt-bindings: arm: Add i.MX8MP IOTA2 Lumpy board Michal Vokáč
` (4 more replies)
0 siblings, 5 replies; 13+ messages in thread
From: Michal Vokáč @ 2024-09-17 15:09 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Greg Kroah-Hartman, Shawn Guo, Petr Benes
Cc: Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Herburger,
Hiago De Franco, Hugo Villeneuve, Joao Paulo Goncalves,
Michael Walle, Alexander Stein, Mathieu Othacehe, devicetree,
linux-kernel, linux-usb, imx, linux-arm-kernel,
Michal Vokáč
Hi,
this series adds support for a new member in our IOTA platform.
The board is based on the i.MX8MP SoC. The first two patches
add support for most of the board functionality except USB Type-C
port and some other minor things.
[PATCH 3] adds new device tree binding for a Diodes Incorporated
PI5USB30213A Type-C Controller and [PATCH 4] enables that port on
the IOTA2 Lumpy board.
We also wrote a driver for that Type-C port controller. I would like
to get that driver upstream as well but I expect it will take much
more iterations and effort to get it into mainline-ready shape so
I intentionally excluded it from this series. AFAIK it should not
be a problem to accept a device tree binding for a HW that does not
have a driver in the kernel yet.
Michal Vokáč (2):
dt-bindings: arm: Add i.MX8MP IOTA2 Lumpy board
arm64: dts: imx: Add imx8mp-iota2-lumpy board
Petr Benes (2):
dt-bindings: usb: Add Diodes Incorporated PI5USB30213A Type-C
Controller
arm64: dts: imx8mp-iota2: Enable the USB Type-C port
.../devicetree/bindings/arm/fsl.yaml | 1 +
.../bindings/usb/diodes,pi5usb30213a.yaml | 95 ++++
arch/arm64/boot/dts/freescale/Makefile | 1 +
.../boot/dts/freescale/imx8mp-iota2-lumpy.dts | 521 ++++++++++++++++++
4 files changed, 618 insertions(+)
create mode 100644 Documentation/devicetree/bindings/usb/diodes,pi5usb30213a.yaml
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts
--
2.43.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 1/4] dt-bindings: arm: Add i.MX8MP IOTA2 Lumpy board
2024-09-17 15:09 [PATCH 0/4] Add support for new IMX8MP based board Michal Vokáč
@ 2024-09-17 15:09 ` Michal Vokáč
2024-09-18 13:12 ` Krzysztof Kozlowski
2024-09-17 15:09 ` [PATCH 2/4] arm64: dts: imx: Add imx8mp-iota2-lumpy board Michal Vokáč
` (3 subsequent siblings)
4 siblings, 1 reply; 13+ messages in thread
From: Michal Vokáč @ 2024-09-17 15:09 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Greg Kroah-Hartman, Shawn Guo, Petr Benes
Cc: Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Herburger,
Hiago De Franco, Hugo Villeneuve, Joao Paulo Goncalves,
Michael Walle, Alexander Stein, Mathieu Othacehe, devicetree,
linux-kernel, linux-usb, imx, linux-arm-kernel,
Michal Vokáč
Add new board from the Y Soft IOTA family. This one is based on the i.MX8MP
SoC. It is basically a stripped-down clone of the EVK board with some minor
additions.
Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
---
Documentation/devicetree/bindings/arm/fsl.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml
index 80747d79418a..12f987a38ac0 100644
--- a/Documentation/devicetree/bindings/arm/fsl.yaml
+++ b/Documentation/devicetree/bindings/arm/fsl.yaml
@@ -1089,6 +1089,7 @@ properties:
- toradex,verdin-imx8mp # Verdin iMX8M Plus Modules
- toradex,verdin-imx8mp-nonwifi # Verdin iMX8M Plus Modules without Wi-Fi / BT
- toradex,verdin-imx8mp-wifi # Verdin iMX8M Plus Wi-Fi / BT Modules
+ - ysoft,imx8mp-iota2-lumpy # Y Soft i.MX8MP IOTA2 Lumpy Board
- const: fsl,imx8mp
- description: Avnet (MSC Branded) Boards with SM2S i.MX8M Plus Modules
--
2.43.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 2/4] arm64: dts: imx: Add imx8mp-iota2-lumpy board
2024-09-17 15:09 [PATCH 0/4] Add support for new IMX8MP based board Michal Vokáč
2024-09-17 15:09 ` [PATCH 1/4] dt-bindings: arm: Add i.MX8MP IOTA2 Lumpy board Michal Vokáč
@ 2024-09-17 15:09 ` Michal Vokáč
2024-09-17 19:07 ` Frank Li
2024-09-17 15:10 ` [PATCH 3/4] dt-bindings: usb: Add Diodes Incorporated PI5USB30213A Type-C Controller Michal Vokáč
` (2 subsequent siblings)
4 siblings, 1 reply; 13+ messages in thread
From: Michal Vokáč @ 2024-09-17 15:09 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Greg Kroah-Hartman, Shawn Guo, Petr Benes
Cc: Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Herburger,
Hiago De Franco, Hugo Villeneuve, Joao Paulo Goncalves,
Michael Walle, Alexander Stein, Mathieu Othacehe, devicetree,
linux-kernel, linux-usb, imx, linux-arm-kernel,
Michal Vokáč
The IOTA2 Lumpy board is based on the i.MX8MPlus EVK.
Basic features are:
- 4GB LPDDR4
- 64GB eMMC
- 2x 1GB Ethernet
- USB 3.0 Type-C dual role port, without power delivery
- USB 3.0 Type-A host port
- RGB LED - PWM driven
- speaker - PWM driven
- RTC with super capacitor backup
Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
---
arch/arm64/boot/dts/freescale/Makefile | 1 +
.../boot/dts/freescale/imx8mp-iota2-lumpy.dts | 425 ++++++++++++++++++
2 files changed, 426 insertions(+)
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index f04c22b7de72..421c36c5ae68 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -171,6 +171,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk2.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk3.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-icore-mx8mp-edimm2.2.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-iota2-lumpy.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-msc-sm2s-ep1.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-navqp.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts b/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts
new file mode 100644
index 000000000000..21d0899cabd5
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts
@@ -0,0 +1,425 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2023 Y Soft
+ */
+
+/dts-v1/;
+
+#include "imx8mp.dtsi"
+
+/ {
+ model = "Y Soft i.MX8MPlus IOTA2 Lumpy board";
+ compatible = "ysoft,imx8mp-iota2-lumpy", "fsl,imx8mp";
+
+ chosen {
+ stdout-path = &uart2;
+ };
+
+ beeper {
+ compatible = "pwm-beeper";
+ pwms = <&pwm4 0 500000 0>;
+ };
+
+ gpio_keys: gpio-keys {
+ compatible = "gpio-keys";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_gpio_keys>;
+
+ button-reset {
+ label = "Factory RESET";
+ linux,code = <BTN_0>;
+ gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ memory@40000000 {
+ device_type = "memory";
+ reg = <0x0 0x40000000 0 0x80000000>,
+ <0x1 0x00000000 0 0x80000000>;
+ };
+
+ reg_usb_host: regulator-usb-host {
+ compatible = "regulator-fixed";
+ enable-active-high;
+ gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usb_host_vbus>;
+ regulator-max-microvolt = <5000000>;
+ regulator-min-microvolt = <5000000>;
+ regulator-name = "usb-host";
+ };
+};
+
+&A53_0 {
+ cpu-supply = <®_arm>;
+};
+
+&A53_1 {
+ cpu-supply = <®_arm>;
+};
+
+&A53_2 {
+ cpu-supply = <®_arm>;
+};
+
+&A53_3 {
+ cpu-supply = <®_arm>;
+};
+
+&eqos {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_eqos>;
+ phy-mode = "rgmii-id";
+ phy-handle = <ðphy0>;
+ status = "okay";
+
+ mdio {
+ compatible = "snps,dwmac-mdio";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ ethphy0: ethernet-phy@0 {
+ pinctrl-0 = <&pinctrl_ethphy0>;
+ pinctrl-names = "default";
+ reg = <0>;
+ interrupt-parent = <&gpio3>;
+ interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
+ micrel,led-mode = <0>;
+ reset-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>;
+ reset-assert-us = <1000>;
+ reset-deassert-us = <1000>;
+ };
+ };
+};
+
+&fec {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_fec>;
+ phy-mode = "rgmii-id";
+ phy-handle = <ðphy1>;
+ fsl,magic-packet;
+ status = "okay";
+
+ mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ ethphy1: ethernet-phy@0 {
+ pinctrl-0 = <&pinctrl_ethphy1>;
+ pinctrl-names = "default";
+ reg = <0>;
+ interrupt-parent = <&gpio3>;
+ interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
+ micrel,led-mode = <0>;
+ reset-gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
+ reset-assert-us = <1000>;
+ reset-deassert-us = <1000>;
+ };
+ };
+};
+
+&i2c1 {
+ clock-frequency = <400000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c1>;
+ status = "okay";
+
+ pmic@25 {
+ compatible = "nxp,pca9450c";
+ reg = <0x25>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_pmic>;
+ interrupt-parent = <&gpio1>;
+ interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+
+ regulators {
+ BUCK1 {
+ regulator-name = "BUCK1";
+ regulator-min-microvolt = <720000>;
+ regulator-max-microvolt = <1000000>;
+ regulator-boot-on;
+ regulator-always-on;
+ regulator-ramp-delay = <3125>;
+ };
+
+ reg_arm: BUCK2 {
+ regulator-name = "BUCK2";
+ regulator-min-microvolt = <720000>;
+ regulator-max-microvolt = <1025000>;
+ regulator-boot-on;
+ regulator-always-on;
+ regulator-ramp-delay = <3125>;
+ nxp,dvs-run-voltage = <950000>;
+ nxp,dvs-standby-voltage = <850000>;
+ };
+
+ BUCK4 {
+ regulator-name = "BUCK4";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3600000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ BUCK5 {
+ regulator-name = "BUCK5";
+ regulator-min-microvolt = <1650000>;
+ regulator-max-microvolt = <1950000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ BUCK6 {
+ regulator-name = "BUCK6";
+ regulator-min-microvolt = <1045000>;
+ regulator-max-microvolt = <1155000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ LDO1 {
+ regulator-name = "LDO1";
+ regulator-min-microvolt = <1650000>;
+ regulator-max-microvolt = <1950000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ LDO3 {
+ regulator-name = "LDO3";
+ regulator-min-microvolt = <1710000>;
+ regulator-max-microvolt = <1890000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ LDO4 {
+ regulator-name = "LDO4";
+ regulator-min-microvolt = <850000>;
+ regulator-max-microvolt = <950000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ LDO5 {
+ regulator-name = "LDO5";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+ };
+ };
+};
+
+&i2c2 {
+ clock-frequency = <400000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c2>;
+ status = "okay";
+
+ rtc: rtc@68 {
+ compatible = "dallas,ds1341";
+ reg = <0x68>;
+ };
+};
+
+&pwm4 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_pwm4>;
+ pwm-gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
+ status = "okay";
+};
+
+&uart2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart2>;
+ status = "okay";
+};
+
+&usb3_phy1 {
+ vbus-supply = <®_usb_host>;
+ status = "okay";
+};
+
+&usb3_1 {
+ status = "okay";
+};
+
+&usb_dwc3_1 {
+ pinctrl-names = "default";
+ dr_mode = "host";
+ status = "okay";
+};
+
+&usdhc3 {
+ assigned-clocks = <&clk IMX8MP_CLK_USDHC3>;
+ assigned-clock-rates = <400000000>;
+ pinctrl-names = "default", "state_100mhz", "state_200mhz";
+ pinctrl-0 = <&pinctrl_usdhc3>;
+ pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+ pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+ bus-width = <8>;
+ non-removable;
+ status = "okay";
+};
+
+&wdog1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_wdog>;
+ fsl,ext-reset-output;
+ status = "okay";
+};
+
+&iomuxc {
+ pinctrl_eqos: eqosgrp {
+ fsl,pins = <
+ MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC 0x2
+ MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO 0x2
+ MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0 0x90
+ MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1 0x90
+ MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2 0x90
+ MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3 0x90
+ MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x90
+ MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK 0x90
+ MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0 0x16
+ MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1 0x16
+ MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2 0x16
+ MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3 0x16
+ MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x16
+ MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x16
+ >;
+ };
+
+ pinctrl_ethphy0: ethphy0grp {
+ fsl,pins = <
+ MX8MP_IOMUXC_SAI5_RXD0__GPIO3_IO21 0x10
+ MX8MP_IOMUXC_SAI5_RXD1__GPIO3_IO22 0x10
+ >;
+ };
+
+ pinctrl_ethphy1: ethphy1grp {
+ fsl,pins = <
+ MX8MP_IOMUXC_SAI5_RXFS__GPIO3_IO19 0x10
+ MX8MP_IOMUXC_SAI5_RXC__GPIO3_IO20 0x10
+ >;
+ };
+
+ pinctrl_fec: fecgrp {
+ fsl,pins = <
+ MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC 0x2
+ MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO 0x2
+ MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0 0x90
+ MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1 0x90
+ MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2 0x90
+ MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3 0x90
+ MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC 0x90
+ MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL 0x90
+ MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0 0x16
+ MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1 0x16
+ MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2 0x16
+ MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3 0x16
+ MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL 0x16
+ MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC 0x16
+ >;
+ };
+
+ pinctrl_gpio_keys: gpiokeysgrp {
+ fsl,pins = <
+ MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07 0x80
+ >;
+ };
+
+ pinctrl_i2c1: i2c1grp {
+ fsl,pins = <
+ MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL 0x400001c2
+ MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA 0x400001c2
+ >;
+ };
+
+ pinctrl_i2c2: i2c2grp {
+ fsl,pins = <
+ MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL 0x400001c2
+ MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA 0x400001c2
+ >;
+ };
+
+ pinctrl_pmic: pmicgrp {
+ fsl,pins = <
+ MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03 0x1c0
+ >;
+ };
+
+ pinctrl_pwm4: pwm4grp {
+ fsl,pins = <
+ MX8MP_IOMUXC_SAI3_MCLK__PWM4_OUT 0x102
+ >;
+ };
+
+ pinctrl_uart2: uart2grp {
+ fsl,pins = <
+ MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX 0x0
+ MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX 0x0
+ >;
+ };
+
+ pinctrl_usb_host_vbus: usb1grp {
+ fsl,pins = <
+ MX8MP_IOMUXC_GPIO1_IO14__USB2_OTG_PWR 0x0
+ >;
+ };
+
+ pinctrl_usdhc3: usdhc3grp {
+ fsl,pins = <
+ MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x190
+ MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d0
+ MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d0
+ MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d0
+ MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d0
+ MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d0
+ MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d0
+ MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d0
+ MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d0
+ MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d0
+ MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x190
+ >;
+ };
+
+ pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+ fsl,pins = <
+ MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x194
+ MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d4
+ MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d4
+ MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d4
+ MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d4
+ MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d4
+ MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d4
+ MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d4
+ MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d4
+ MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d4
+ MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x194
+ >;
+ };
+
+ pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+ fsl,pins = <
+ MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x196
+ MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d6
+ MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d6
+ MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d6
+ MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d6
+ MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d6
+ MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d6
+ MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d6
+ MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d6
+ MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d6
+ MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x196
+ >;
+ };
+
+ pinctrl_wdog: wdoggrp {
+ fsl,pins = <
+ MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B 0x166
+ >;
+ };
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 3/4] dt-bindings: usb: Add Diodes Incorporated PI5USB30213A Type-C Controller
2024-09-17 15:09 [PATCH 0/4] Add support for new IMX8MP based board Michal Vokáč
2024-09-17 15:09 ` [PATCH 1/4] dt-bindings: arm: Add i.MX8MP IOTA2 Lumpy board Michal Vokáč
2024-09-17 15:09 ` [PATCH 2/4] arm64: dts: imx: Add imx8mp-iota2-lumpy board Michal Vokáč
@ 2024-09-17 15:10 ` Michal Vokáč
2024-09-18 13:16 ` Krzysztof Kozlowski
2024-09-17 15:10 ` [PATCH 4/4] arm64: dts: imx8mp-iota2: Enable the USB Type-C port Michal Vokáč
2024-09-18 17:06 ` [PATCH 0/4] Add support for new IMX8MP based board Rob Herring (Arm)
4 siblings, 1 reply; 13+ messages in thread
From: Michal Vokáč @ 2024-09-17 15:10 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Greg Kroah-Hartman, Shawn Guo, Petr Benes
Cc: Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Herburger,
Hiago De Franco, Hugo Villeneuve, Joao Paulo Goncalves,
Michael Walle, Alexander Stein, Mathieu Othacehe, devicetree,
linux-kernel, linux-usb, imx, linux-arm-kernel,
Michal Vokáč
From: Petr Benes <petr.benes@ysoft.com>
Diodes Incorporated PI5USB30213A Type-C Controller supports host,
device, and dual-role mode based on voltage levels detected on CC
pin. Supports dual differential channel, 2:1 USB 3.0 Mux/Demux,
USB Type-C specification 1.1.
Signed-off-by: Petr Benes <petr.benes@ysoft.com>
Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
---
.../bindings/usb/diodes,pi5usb30213a.yaml | 95 +++++++++++++++++++
1 file changed, 95 insertions(+)
create mode 100644 Documentation/devicetree/bindings/usb/diodes,pi5usb30213a.yaml
diff --git a/Documentation/devicetree/bindings/usb/diodes,pi5usb30213a.yaml b/Documentation/devicetree/bindings/usb/diodes,pi5usb30213a.yaml
new file mode 100644
index 000000000000..1cae10724152
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/diodes,pi5usb30213a.yaml
@@ -0,0 +1,95 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/diodes,pi5usb30213a.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: PI5USB30213A Type-C port controller
+
+description:
+ Diodes Incorporated PI5USB30213A Type-C Controller supports host,
+ device, and dual-role mode based on voltage levels detected on CC
+ pin. Dual differential channel, 2:1 USB 3.0 Mux/Demux, USB Type-C
+ specification 1.1 compliant.
+
+maintainers:
+ - Petr Benes <petr.benes@ysoft.com>
+
+properties:
+ compatible:
+ enum:
+ - diodes,pi5usb30213a
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ connector:
+ type: object
+ $ref: ../connector/usb-connector.yaml#
+ unevaluatedProperties: false
+ description:
+ The managed USB Type-C connector.
+
+ properties:
+ compatible:
+ const: usb-c-connector
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - connector
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pi5usb30213a: tcpc@d {
+ compatible = "diodes,pi5usb30213a";
+ reg = <0xd>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_typec>;
+ interrupts-extended = <&gpio1 5 IRQ_TYPE_LEVEL_LOW>;
+ status = "okay";
+
+ connector {
+ compatible = "usb-c-connector";
+ label = "USB-C";
+ vbus-supply = <®_typec>;
+ power-role = "source";
+ data-role = "dual";
+ typec-power-opmode = "default";
+ pd-disable;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ usb_con_hs: endpoint {
+ remote-endpoint = <&typec_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ usb_con_ss: endpoint {
+ remote-endpoint = <&typec_ss>;
+ };
+ };
+ };
+ };
+ };
+ };
--
2.43.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 4/4] arm64: dts: imx8mp-iota2: Enable the USB Type-C port
2024-09-17 15:09 [PATCH 0/4] Add support for new IMX8MP based board Michal Vokáč
` (2 preceding siblings ...)
2024-09-17 15:10 ` [PATCH 3/4] dt-bindings: usb: Add Diodes Incorporated PI5USB30213A Type-C Controller Michal Vokáč
@ 2024-09-17 15:10 ` Michal Vokáč
2024-09-18 13:17 ` Krzysztof Kozlowski
2024-09-18 17:06 ` [PATCH 0/4] Add support for new IMX8MP based board Rob Herring (Arm)
4 siblings, 1 reply; 13+ messages in thread
From: Michal Vokáč @ 2024-09-17 15:10 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Greg Kroah-Hartman, Shawn Guo, Petr Benes
Cc: Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Herburger,
Hiago De Franco, Hugo Villeneuve, Joao Paulo Goncalves,
Michael Walle, Alexander Stein, Mathieu Othacehe, devicetree,
linux-kernel, linux-usb, imx, linux-arm-kernel,
Michal Vokáč
From: Petr Benes <petr.benes@ysoft.com>
Enable the USB Type-C port with the Diodes PI5USB30213A port controller.
The port supports dual role data but can operate only in source power role
and PD is not supported.
Signed-off-by: Petr Benes <petr.benes@ysoft.com>
Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
---
.../boot/dts/freescale/imx8mp-iota2-lumpy.dts | 96 +++++++++++++++++++
1 file changed, 96 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts b/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts
index 21d0899cabd5..b15d211e8667 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts
@@ -38,6 +38,17 @@ memory@40000000 {
<0x1 0x00000000 0 0x80000000>;
};
+ reg_typec: regulator-typec {
+ compatible = "regulator-fixed";
+ enable-active-high;
+ gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usbc_vbus>;
+ regulator-max-microvolt = <5000000>;
+ regulator-min-microvolt = <5000000>;
+ regulator-name = "typec";
+ };
+
reg_usb_host: regulator-usb-host {
compatible = "regulator-fixed";
enable-active-high;
@@ -218,6 +229,47 @@ &i2c2 {
pinctrl-0 = <&pinctrl_i2c2>;
status = "okay";
+ tcpc@d {
+ compatible = "diodes,pi5usb30213a";
+ reg = <0xd>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_typec>;
+ interrupts-extended = <&gpio1 5 IRQ_TYPE_LEVEL_LOW>;
+ status = "okay";
+
+ connector {
+ compatible = "usb-c-connector";
+ label = "USB-C";
+ vbus-supply = <®_typec>;
+ power-role = "source";
+ data-role = "dual";
+ typec-power-opmode = "default";
+ self-powered;
+ pd-disable;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ usb_con_hs: endpoint {
+ remote-endpoint = <&typec_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ usb_con_ss: endpoint {
+ remote-endpoint = <&typec_ss>;
+ };
+ };
+ };
+ };
+ };
+
rtc: rtc@68 {
compatible = "dallas,ds1341";
reg = <0x68>;
@@ -237,6 +289,38 @@ &uart2 {
status = "okay";
};
+&usb3_phy0 {
+ status = "okay";
+};
+
+&usb3_0 {
+ status = "okay";
+};
+
+&usb_dwc3_0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ dr_mode = "otg";
+ usb-role-switch;
+ status = "okay";
+
+ port@0 {
+ reg = <0>;
+
+ typec_hs: endpoint {
+ remote-endpoint = <&usb_con_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ typec_ss: endpoint {
+ remote-endpoint = <&usb_con_ss>;
+ };
+ };
+};
+
&usb3_phy1 {
vbus-supply = <®_usb_host>;
status = "okay";
@@ -356,6 +440,12 @@ MX8MP_IOMUXC_SAI3_MCLK__PWM4_OUT 0x102
>;
};
+ pinctrl_typec: typecgrp {
+ fsl,pins = <
+ MX8MP_IOMUXC_GPIO1_IO05__GPIO1_IO05 0x1c0
+ >;
+ };
+
pinctrl_uart2: uart2grp {
fsl,pins = <
MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX 0x0
@@ -363,6 +453,12 @@ MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX 0x0
>;
};
+ pinctrl_usbc_vbus: usbcgrp {
+ fsl,pins =
+ <MX8MP_IOMUXC_GPIO1_IO12__GPIO1_IO12 0x0
+ >;
+ };
+
pinctrl_usb_host_vbus: usb1grp {
fsl,pins = <
MX8MP_IOMUXC_GPIO1_IO14__USB2_OTG_PWR 0x0
--
2.43.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 2/4] arm64: dts: imx: Add imx8mp-iota2-lumpy board
2024-09-17 15:09 ` [PATCH 2/4] arm64: dts: imx: Add imx8mp-iota2-lumpy board Michal Vokáč
@ 2024-09-17 19:07 ` Frank Li
2024-09-18 8:32 ` Michal Vokáč
0 siblings, 1 reply; 13+ messages in thread
From: Frank Li @ 2024-09-17 19:07 UTC (permalink / raw)
To: Michal Vokáč
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Greg Kroah-Hartman, Shawn Guo, Petr Benes, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, Herburger,
Hiago De Franco, Hugo Villeneuve, Joao Paulo Goncalves,
Michael Walle, Alexander Stein, Mathieu Othacehe, devicetree,
linux-kernel, linux-usb, imx, linux-arm-kernel
On Tue, Sep 17, 2024 at 05:09:59PM +0200, Michal Vokáč wrote:
> The IOTA2 Lumpy board is based on the i.MX8MPlus EVK.
>
> Basic features are:
> - 4GB LPDDR4
> - 64GB eMMC
> - 2x 1GB Ethernet
> - USB 3.0 Type-C dual role port, without power delivery
> - USB 3.0 Type-A host port
> - RGB LED - PWM driven
> - speaker - PWM driven
> - RTC with super capacitor backup
>
> Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
> ---
Suggest you try tools https://github.com/lznuaa/dt-format
to make sure nodes sorted.
Any issue let me know.
Frank
> arch/arm64/boot/dts/freescale/Makefile | 1 +
> .../boot/dts/freescale/imx8mp-iota2-lumpy.dts | 425 ++++++++++++++++++
> 2 files changed, 426 insertions(+)
> create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts
>
> diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
> index f04c22b7de72..421c36c5ae68 100644
> --- a/arch/arm64/boot/dts/freescale/Makefile
> +++ b/arch/arm64/boot/dts/freescale/Makefile
> @@ -171,6 +171,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk2.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk3.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-icore-mx8mp-edimm2.2.dtb
> +dtb-$(CONFIG_ARCH_MXC) += imx8mp-iota2-lumpy.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-msc-sm2s-ep1.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-navqp.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts b/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts
> new file mode 100644
> index 000000000000..21d0899cabd5
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts
> @@ -0,0 +1,425 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright 2023 Y Soft
> + */
> +
> +/dts-v1/;
> +
> +#include "imx8mp.dtsi"
> +
> +/ {
> + model = "Y Soft i.MX8MPlus IOTA2 Lumpy board";
> + compatible = "ysoft,imx8mp-iota2-lumpy", "fsl,imx8mp";
> +
> + chosen {
> + stdout-path = &uart2;
> + };
> +
> + beeper {
> + compatible = "pwm-beeper";
> + pwms = <&pwm4 0 500000 0>;
> + };
> +
> + gpio_keys: gpio-keys {
> + compatible = "gpio-keys";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_gpio_keys>;
> +
> + button-reset {
> + label = "Factory RESET";
> + linux,code = <BTN_0>;
> + gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
> + };
> + };
> +
> + memory@40000000 {
> + device_type = "memory";
> + reg = <0x0 0x40000000 0 0x80000000>,
> + <0x1 0x00000000 0 0x80000000>;
> + };
> +
> + reg_usb_host: regulator-usb-host {
> + compatible = "regulator-fixed";
> + enable-active-high;
> + gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_usb_host_vbus>;
> + regulator-max-microvolt = <5000000>;
> + regulator-min-microvolt = <5000000>;
> + regulator-name = "usb-host";
> + };
> +};
> +
> +&A53_0 {
> + cpu-supply = <®_arm>;
> +};
> +
> +&A53_1 {
> + cpu-supply = <®_arm>;
> +};
> +
> +&A53_2 {
> + cpu-supply = <®_arm>;
> +};
> +
> +&A53_3 {
> + cpu-supply = <®_arm>;
> +};
> +
> +&eqos {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_eqos>;
> + phy-mode = "rgmii-id";
> + phy-handle = <ðphy0>;
> + status = "okay";
> +
> + mdio {
> + compatible = "snps,dwmac-mdio";
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + ethphy0: ethernet-phy@0 {
> + pinctrl-0 = <&pinctrl_ethphy0>;
> + pinctrl-names = "default";
> + reg = <0>;
> + interrupt-parent = <&gpio3>;
> + interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
> + micrel,led-mode = <0>;
> + reset-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>;
> + reset-assert-us = <1000>;
> + reset-deassert-us = <1000>;
> + };
> + };
> +};
> +
> +&fec {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_fec>;
> + phy-mode = "rgmii-id";
> + phy-handle = <ðphy1>;
> + fsl,magic-packet;
> + status = "okay";
> +
> + mdio {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + ethphy1: ethernet-phy@0 {
> + pinctrl-0 = <&pinctrl_ethphy1>;
> + pinctrl-names = "default";
> + reg = <0>;
> + interrupt-parent = <&gpio3>;
> + interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
> + micrel,led-mode = <0>;
> + reset-gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
> + reset-assert-us = <1000>;
> + reset-deassert-us = <1000>;
> + };
> + };
> +};
> +
> +&i2c1 {
> + clock-frequency = <400000>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_i2c1>;
> + status = "okay";
> +
> + pmic@25 {
> + compatible = "nxp,pca9450c";
> + reg = <0x25>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_pmic>;
> + interrupt-parent = <&gpio1>;
> + interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
> +
> + regulators {
> + BUCK1 {
> + regulator-name = "BUCK1";
> + regulator-min-microvolt = <720000>;
> + regulator-max-microvolt = <1000000>;
> + regulator-boot-on;
> + regulator-always-on;
> + regulator-ramp-delay = <3125>;
> + };
> +
> + reg_arm: BUCK2 {
> + regulator-name = "BUCK2";
> + regulator-min-microvolt = <720000>;
> + regulator-max-microvolt = <1025000>;
> + regulator-boot-on;
> + regulator-always-on;
> + regulator-ramp-delay = <3125>;
> + nxp,dvs-run-voltage = <950000>;
> + nxp,dvs-standby-voltage = <850000>;
> + };
> +
> + BUCK4 {
> + regulator-name = "BUCK4";
> + regulator-min-microvolt = <3000000>;
> + regulator-max-microvolt = <3600000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + BUCK5 {
> + regulator-name = "BUCK5";
> + regulator-min-microvolt = <1650000>;
> + regulator-max-microvolt = <1950000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + BUCK6 {
> + regulator-name = "BUCK6";
> + regulator-min-microvolt = <1045000>;
> + regulator-max-microvolt = <1155000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + LDO1 {
> + regulator-name = "LDO1";
> + regulator-min-microvolt = <1650000>;
> + regulator-max-microvolt = <1950000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + LDO3 {
> + regulator-name = "LDO3";
> + regulator-min-microvolt = <1710000>;
> + regulator-max-microvolt = <1890000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + LDO4 {
> + regulator-name = "LDO4";
> + regulator-min-microvolt = <850000>;
> + regulator-max-microvolt = <950000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> +
> + LDO5 {
> + regulator-name = "LDO5";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-boot-on;
> + regulator-always-on;
> + };
> + };
> + };
> +};
> +
> +&i2c2 {
> + clock-frequency = <400000>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_i2c2>;
> + status = "okay";
> +
> + rtc: rtc@68 {
> + compatible = "dallas,ds1341";
> + reg = <0x68>;
> + };
> +};
> +
> +&pwm4 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_pwm4>;
> + pwm-gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
> + status = "okay";
> +};
> +
> +&uart2 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart2>;
> + status = "okay";
> +};
> +
> +&usb3_phy1 {
> + vbus-supply = <®_usb_host>;
> + status = "okay";
> +};
> +
> +&usb3_1 {
> + status = "okay";
> +};
> +
> +&usb_dwc3_1 {
> + pinctrl-names = "default";
> + dr_mode = "host";
> + status = "okay";
> +};
> +
> +&usdhc3 {
> + assigned-clocks = <&clk IMX8MP_CLK_USDHC3>;
> + assigned-clock-rates = <400000000>;
> + pinctrl-names = "default", "state_100mhz", "state_200mhz";
> + pinctrl-0 = <&pinctrl_usdhc3>;
> + pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
> + pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
> + bus-width = <8>;
> + non-removable;
> + status = "okay";
> +};
> +
> +&wdog1 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_wdog>;
> + fsl,ext-reset-output;
> + status = "okay";
> +};
> +
> +&iomuxc {
> + pinctrl_eqos: eqosgrp {
> + fsl,pins = <
> + MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC 0x2
> + MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO 0x2
> + MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0 0x90
> + MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1 0x90
> + MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2 0x90
> + MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3 0x90
> + MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x90
> + MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK 0x90
> + MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0 0x16
> + MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1 0x16
> + MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2 0x16
> + MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3 0x16
> + MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x16
> + MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x16
> + >;
> + };
> +
> + pinctrl_ethphy0: ethphy0grp {
> + fsl,pins = <
> + MX8MP_IOMUXC_SAI5_RXD0__GPIO3_IO21 0x10
> + MX8MP_IOMUXC_SAI5_RXD1__GPIO3_IO22 0x10
> + >;
> + };
> +
> + pinctrl_ethphy1: ethphy1grp {
> + fsl,pins = <
> + MX8MP_IOMUXC_SAI5_RXFS__GPIO3_IO19 0x10
> + MX8MP_IOMUXC_SAI5_RXC__GPIO3_IO20 0x10
> + >;
> + };
> +
> + pinctrl_fec: fecgrp {
> + fsl,pins = <
> + MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC 0x2
> + MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO 0x2
> + MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0 0x90
> + MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1 0x90
> + MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2 0x90
> + MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3 0x90
> + MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC 0x90
> + MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL 0x90
> + MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0 0x16
> + MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1 0x16
> + MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2 0x16
> + MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3 0x16
> + MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL 0x16
> + MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC 0x16
> + >;
> + };
> +
> + pinctrl_gpio_keys: gpiokeysgrp {
> + fsl,pins = <
> + MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07 0x80
> + >;
> + };
> +
> + pinctrl_i2c1: i2c1grp {
> + fsl,pins = <
> + MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL 0x400001c2
> + MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA 0x400001c2
> + >;
> + };
> +
> + pinctrl_i2c2: i2c2grp {
> + fsl,pins = <
> + MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL 0x400001c2
> + MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA 0x400001c2
> + >;
> + };
> +
> + pinctrl_pmic: pmicgrp {
> + fsl,pins = <
> + MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03 0x1c0
> + >;
> + };
> +
> + pinctrl_pwm4: pwm4grp {
> + fsl,pins = <
> + MX8MP_IOMUXC_SAI3_MCLK__PWM4_OUT 0x102
> + >;
> + };
> +
> + pinctrl_uart2: uart2grp {
> + fsl,pins = <
> + MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX 0x0
> + MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX 0x0
> + >;
> + };
> +
> + pinctrl_usb_host_vbus: usb1grp {
> + fsl,pins = <
> + MX8MP_IOMUXC_GPIO1_IO14__USB2_OTG_PWR 0x0
> + >;
> + };
> +
> + pinctrl_usdhc3: usdhc3grp {
> + fsl,pins = <
> + MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x190
> + MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d0
> + MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d0
> + MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d0
> + MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d0
> + MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d0
> + MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d0
> + MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d0
> + MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d0
> + MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d0
> + MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x190
> + >;
> + };
> +
> + pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
> + fsl,pins = <
> + MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x194
> + MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d4
> + MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d4
> + MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d4
> + MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d4
> + MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d4
> + MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d4
> + MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d4
> + MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d4
> + MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d4
> + MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x194
> + >;
> + };
> +
> + pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
> + fsl,pins = <
> + MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK 0x196
> + MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD 0x1d6
> + MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0 0x1d6
> + MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1 0x1d6
> + MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2 0x1d6
> + MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3 0x1d6
> + MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4 0x1d6
> + MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5 0x1d6
> + MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6 0x1d6
> + MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7 0x1d6
> + MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE 0x196
> + >;
> + };
> +
> + pinctrl_wdog: wdoggrp {
> + fsl,pins = <
> + MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B 0x166
> + >;
> + };
> +};
> --
> 2.43.0
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 2/4] arm64: dts: imx: Add imx8mp-iota2-lumpy board
2024-09-17 19:07 ` Frank Li
@ 2024-09-18 8:32 ` Michal Vokáč
0 siblings, 0 replies; 13+ messages in thread
From: Michal Vokáč @ 2024-09-18 8:32 UTC (permalink / raw)
To: Frank Li
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Greg Kroah-Hartman, Shawn Guo, Petr Benes, Sascha Hauer,
Pengutronix Kernel Team, Fabio Estevam, Herburger,
Hiago De Franco, Hugo Villeneuve, Joao Paulo Goncalves,
Michael Walle, Alexander Stein, Mathieu Othacehe, devicetree,
linux-kernel, linux-usb, imx, linux-arm-kernel
On 17. 09. 24 21:07, Frank Li wrote:
> On Tue, Sep 17, 2024 at 05:09:59PM +0200, Michal Vokáč wrote:
>> The IOTA2 Lumpy board is based on the i.MX8MPlus EVK.
>>
>> Basic features are:
>> - 4GB LPDDR4
>> - 64GB eMMC
>> - 2x 1GB Ethernet
>> - USB 3.0 Type-C dual role port, without power delivery
>> - USB 3.0 Type-A host port
>> - RGB LED - PWM driven
>> - speaker - PWM driven
>> - RTC with super capacitor backup
>>
>> Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
>> ---
>
> Suggest you try tools https://github.com/lznuaa/dt-format
>
> Any issue let me know.
Hi Frank,
I was aware of some non-written rules how the nodes
and properties should be sorted but this will definitely help!
I will try it for v2.
Thanks a lot.
>> arch/arm64/boot/dts/freescale/Makefile | 1 +
>> .../boot/dts/freescale/imx8mp-iota2-lumpy.dts | 425 ++++++++++++++++++
>> 2 files changed, 426 insertions(+)
>> create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts
>>
>> diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
>> index f04c22b7de72..421c36c5ae68 100644
>> --- a/arch/arm64/boot/dts/freescale/Makefile
>> +++ b/arch/arm64/boot/dts/freescale/Makefile
>> @@ -171,6 +171,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk2.dtb
>> dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk3.dtb
>> dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
>> dtb-$(CONFIG_ARCH_MXC) += imx8mp-icore-mx8mp-edimm2.2.dtb
>> +dtb-$(CONFIG_ARCH_MXC) += imx8mp-iota2-lumpy.dtb
>> dtb-$(CONFIG_ARCH_MXC) += imx8mp-msc-sm2s-ep1.dtb
>> dtb-$(CONFIG_ARCH_MXC) += imx8mp-navqp.dtb
>> dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb
>> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts b/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts
>> new file mode 100644
...
[snip]
...
>> +
>> +&pwm4 {
>> + pinctrl-names = "default";
>> + pinctrl-0 = <&pinctrl_pwm4>;
>> + pwm-gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
^^^ The pwm-gpios property should not be here. I will remove it in v2.
>> + status = "okay";
>> +};
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 1/4] dt-bindings: arm: Add i.MX8MP IOTA2 Lumpy board
2024-09-17 15:09 ` [PATCH 1/4] dt-bindings: arm: Add i.MX8MP IOTA2 Lumpy board Michal Vokáč
@ 2024-09-18 13:12 ` Krzysztof Kozlowski
0 siblings, 0 replies; 13+ messages in thread
From: Krzysztof Kozlowski @ 2024-09-18 13:12 UTC (permalink / raw)
To: Michal Vokáč, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Greg Kroah-Hartman, Shawn Guo, Petr Benes
Cc: Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Herburger,
Hiago De Franco, Hugo Villeneuve, Joao Paulo Goncalves,
Michael Walle, Alexander Stein, Mathieu Othacehe, devicetree,
linux-kernel, linux-usb, imx, linux-arm-kernel
On 17/09/2024 17:09, Michal Vokáč wrote:
> Add new board from the Y Soft IOTA family. This one is based on the i.MX8MP
> SoC. It is basically a stripped-down clone of the EVK board with some minor
> additions.
>
> Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 3/4] dt-bindings: usb: Add Diodes Incorporated PI5USB30213A Type-C Controller
2024-09-17 15:10 ` [PATCH 3/4] dt-bindings: usb: Add Diodes Incorporated PI5USB30213A Type-C Controller Michal Vokáč
@ 2024-09-18 13:16 ` Krzysztof Kozlowski
2024-09-19 12:49 ` Michal Vokáč
0 siblings, 1 reply; 13+ messages in thread
From: Krzysztof Kozlowski @ 2024-09-18 13:16 UTC (permalink / raw)
To: Michal Vokáč, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Greg Kroah-Hartman, Shawn Guo, Petr Benes
Cc: Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Herburger,
Hiago De Franco, Hugo Villeneuve, Joao Paulo Goncalves,
Michael Walle, Alexander Stein, Mathieu Othacehe, devicetree,
linux-kernel, linux-usb, imx, linux-arm-kernel
On 17/09/2024 17:10, Michal Vokáč wrote:
> From: Petr Benes <petr.benes@ysoft.com>
>
> Diodes Incorporated PI5USB30213A Type-C Controller supports host,
> device, and dual-role mode based on voltage levels detected on CC
> pin. Supports dual differential channel, 2:1 USB 3.0 Mux/Demux,
> USB Type-C specification 1.1.
>
> Signed-off-by: Petr Benes <petr.benes@ysoft.com>
> Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
> ---
> .../bindings/usb/diodes,pi5usb30213a.yaml | 95 +++++++++++++++++++
> 1 file changed, 95 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/usb/diodes,pi5usb30213a.yaml
>
> diff --git a/Documentation/devicetree/bindings/usb/diodes,pi5usb30213a.yaml b/Documentation/devicetree/bindings/usb/diodes,pi5usb30213a.yaml
> new file mode 100644
> index 000000000000..1cae10724152
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/diodes,pi5usb30213a.yaml
> @@ -0,0 +1,95 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/usb/diodes,pi5usb30213a.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: PI5USB30213A Type-C port controller
> +
> +description:
> + Diodes Incorporated PI5USB30213A Type-C Controller supports host,
> + device, and dual-role mode based on voltage levels detected on CC
> + pin. Dual differential channel, 2:1 USB 3.0 Mux/Demux, USB Type-C
> + specification 1.1 compliant.
> +
> +maintainers:
> + - Petr Benes <petr.benes@ysoft.com>
Please put maintainers before description: block.
> +
> +properties:
> + compatible:
> + enum:
> + - diodes,pi5usb30213a
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + connector:
> + type: object
> + $ref: ../connector/usb-connector.yaml#
Full path, so /schemas/connector/usb-....
> + unevaluatedProperties: false
> + description:
> + The managed USB Type-C connector.
Description should not be needed.
> +
> + properties:
> + compatible:
> + const: usb-c-connector
Drop, not needed.
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - connector
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/irq.h>
> +
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + pi5usb30213a: tcpc@d {
typec@d
and drop label
> + compatible = "diodes,pi5usb30213a";
> + reg = <0xd>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_typec>;
> + interrupts-extended = <&gpio1 5 IRQ_TYPE_LEVEL_LOW>;
> + status = "okay";
Drop status
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 4/4] arm64: dts: imx8mp-iota2: Enable the USB Type-C port
2024-09-17 15:10 ` [PATCH 4/4] arm64: dts: imx8mp-iota2: Enable the USB Type-C port Michal Vokáč
@ 2024-09-18 13:17 ` Krzysztof Kozlowski
2024-09-19 12:52 ` Michal Vokáč
0 siblings, 1 reply; 13+ messages in thread
From: Krzysztof Kozlowski @ 2024-09-18 13:17 UTC (permalink / raw)
To: Michal Vokáč, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Greg Kroah-Hartman, Shawn Guo, Petr Benes
Cc: Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Herburger,
Hiago De Franco, Hugo Villeneuve, Joao Paulo Goncalves,
Michael Walle, Alexander Stein, Mathieu Othacehe, devicetree,
linux-kernel, linux-usb, imx, linux-arm-kernel
On 17/09/2024 17:10, Michal Vokáč wrote:
> From: Petr Benes <petr.benes@ysoft.com>
>
> Enable the USB Type-C port with the Diodes PI5USB30213A port controller.
> The port supports dual role data but can operate only in source power role
> and PD is not supported.
>
> Signed-off-by: Petr Benes <petr.benes@ysoft.com>
> Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
> ---
> .../boot/dts/freescale/imx8mp-iota2-lumpy.dts | 96 +++++++++++++++++++
> 1 file changed, 96 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts b/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts
> index 21d0899cabd5..b15d211e8667 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts
> +++ b/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts
> @@ -38,6 +38,17 @@ memory@40000000 {
> <0x1 0x00000000 0 0x80000000>;
> };
>
> + reg_typec: regulator-typec {
> + compatible = "regulator-fixed";
> + enable-active-high;
> + gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_usbc_vbus>;
> + regulator-max-microvolt = <5000000>;
> + regulator-min-microvolt = <5000000>;
> + regulator-name = "typec";
> + };
> +
> reg_usb_host: regulator-usb-host {
> compatible = "regulator-fixed";
> enable-active-high;
> @@ -218,6 +229,47 @@ &i2c2 {
> pinctrl-0 = <&pinctrl_i2c2>;
> status = "okay";
>
> + tcpc@d {
typec@d
> + compatible = "diodes,pi5usb30213a";
> + reg = <0xd>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_typec>;
> + interrupts-extended = <&gpio1 5 IRQ_TYPE_LEVEL_LOW>;
> + status = "okay";
Drop
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 0/4] Add support for new IMX8MP based board
2024-09-17 15:09 [PATCH 0/4] Add support for new IMX8MP based board Michal Vokáč
` (3 preceding siblings ...)
2024-09-17 15:10 ` [PATCH 4/4] arm64: dts: imx8mp-iota2: Enable the USB Type-C port Michal Vokáč
@ 2024-09-18 17:06 ` Rob Herring (Arm)
4 siblings, 0 replies; 13+ messages in thread
From: Rob Herring (Arm) @ 2024-09-18 17:06 UTC (permalink / raw)
To: Michal Vokáč
Cc: Alexander Stein, linux-arm-kernel, Krzysztof Kozlowski,
Petr Benes, Hiago De Franco, Pengutronix Kernel Team,
Mathieu Othacehe, linux-kernel, devicetree, Greg Kroah-Hartman,
Shawn Guo, linux-usb, Joao Paulo Goncalves, Sascha Hauer,
Michael Walle, Conor Dooley, Fabio Estevam, Herburger,
Hugo Villeneuve, imx
On Tue, 17 Sep 2024 17:09:57 +0200, Michal Vokáč wrote:
> Hi,
>
> this series adds support for a new member in our IOTA platform.
> The board is based on the i.MX8MP SoC. The first two patches
> add support for most of the board functionality except USB Type-C
> port and some other minor things.
>
> [PATCH 3] adds new device tree binding for a Diodes Incorporated
> PI5USB30213A Type-C Controller and [PATCH 4] enables that port on
> the IOTA2 Lumpy board.
>
> We also wrote a driver for that Type-C port controller. I would like
> to get that driver upstream as well but I expect it will take much
> more iterations and effort to get it into mainline-ready shape so
> I intentionally excluded it from this series. AFAIK it should not
> be a problem to accept a device tree binding for a HW that does not
> have a driver in the kernel yet.
>
> Michal Vokáč (2):
> dt-bindings: arm: Add i.MX8MP IOTA2 Lumpy board
> arm64: dts: imx: Add imx8mp-iota2-lumpy board
>
> Petr Benes (2):
> dt-bindings: usb: Add Diodes Incorporated PI5USB30213A Type-C
> Controller
> arm64: dts: imx8mp-iota2: Enable the USB Type-C port
>
> .../devicetree/bindings/arm/fsl.yaml | 1 +
> .../bindings/usb/diodes,pi5usb30213a.yaml | 95 ++++
> arch/arm64/boot/dts/freescale/Makefile | 1 +
> .../boot/dts/freescale/imx8mp-iota2-lumpy.dts | 521 ++++++++++++++++++
> 4 files changed, 618 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/usb/diodes,pi5usb30213a.yaml
> create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts
>
> --
> 2.43.0
>
>
My bot found new DTB warnings on the .dts files added or changed in this
series.
Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.
If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:
pip3 install dtschema --upgrade
New warnings running 'make CHECK_DTBS=y freescale/imx8mp-iota2-lumpy.dtb' for 20240917151001.1289399-1-michal.vokac@ysoft.com:
arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dtb: pwm@30690000: 'pwm-gpios' does not match any of the regexes: 'pinctrl-[0-9]+'
from schema $id: http://devicetree.org/schemas/pwm/imx-pwm.yaml#
arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dtb: pcie-ep@33800000: reg: [[864026624, 4194304], [402653184, 134217728]] is too short
from schema $id: http://devicetree.org/schemas/pci/fsl,imx6q-pcie-ep.yaml#
arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dtb: pcie-ep@33800000: reg-names: ['dbi', 'addr_space'] is too short
from schema $id: http://devicetree.org/schemas/pci/fsl,imx6q-pcie-ep.yaml#
arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dtb: usb@38200000: 'pinctrl-0' is a dependency of 'pinctrl-names'
from schema $id: http://devicetree.org/schemas/pinctrl/pinctrl-consumer.yaml#
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 3/4] dt-bindings: usb: Add Diodes Incorporated PI5USB30213A Type-C Controller
2024-09-18 13:16 ` Krzysztof Kozlowski
@ 2024-09-19 12:49 ` Michal Vokáč
0 siblings, 0 replies; 13+ messages in thread
From: Michal Vokáč @ 2024-09-19 12:49 UTC (permalink / raw)
To: Krzysztof Kozlowski, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Greg Kroah-Hartman, Shawn Guo, Petr Benes
Cc: Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Herburger,
Hiago De Franco, Hugo Villeneuve, Joao Paulo Goncalves,
Michael Walle, Alexander Stein, Mathieu Othacehe, devicetree,
linux-kernel, linux-usb, imx, linux-arm-kernel
On 18. 09. 24 15:16, Krzysztof Kozlowski wrote:
> On 17/09/2024 17:10, Michal Vokáč wrote:
>> From: Petr Benes <petr.benes@ysoft.com>
>>
>> Diodes Incorporated PI5USB30213A Type-C Controller supports host,
>> device, and dual-role mode based on voltage levels detected on CC
>> pin. Supports dual differential channel, 2:1 USB 3.0 Mux/Demux,
>> USB Type-C specification 1.1.
>>
>> Signed-off-by: Petr Benes <petr.benes@ysoft.com>
>> Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
>> ---
>> .../bindings/usb/diodes,pi5usb30213a.yaml | 95 +++++++++++++++++++
>> 1 file changed, 95 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/usb/diodes,pi5usb30213a.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/usb/diodes,pi5usb30213a.yaml b/Documentation/devicetree/bindings/usb/diodes,pi5usb30213a.yaml
>> new file mode 100644
>> index 000000000000..1cae10724152
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/usb/diodes,pi5usb30213a.yaml
>> @@ -0,0 +1,95 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevicetree.org%2Fschemas%2Fusb%2Fdiodes%2Cpi5usb30213a.yaml%23&data=05%7C02%7Cmichal.vokac%40ysoft.com%7C925faa72b27547fa80c308dcd7e425f4%7Cb5839965430f4be2b282d7a3149f2b37%7C0%7C0%7C638622622118849100%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=T2NXqovVWUhM4ID1XdytvSaD9yQMKLH9QfQ%2FwFJ9xOs%3D&reserved=0
>> +$schema: https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevicetree.org%2Fmeta-schemas%2Fcore.yaml%23&data=05%7C02%7Cmichal.vokac%40ysoft.com%7C925faa72b27547fa80c308dcd7e425f4%7Cb5839965430f4be2b282d7a3149f2b37%7C0%7C0%7C638622622118861671%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=tAR73Ny5eXo1GmO4%2BAqiUhpqLdwEgOrfuzwtY4b7K%2Bs%3D&reserved=0
>> +
>> +title: PI5USB30213A Type-C port controller
>> +
>> +description:
>> + Diodes Incorporated PI5USB30213A Type-C Controller supports host,
>> + device, and dual-role mode based on voltage levels detected on CC
>> + pin. Dual differential channel, 2:1 USB 3.0 Mux/Demux, USB Type-C
>> + specification 1.1 compliant.
>> +
>> +maintainers:
>> + - Petr Benes <petr.benes@ysoft.com>
>
> Please put maintainers before description: block.
OK
>> +
>> +properties:
>> + compatible:
>> + enum:
>> + - diodes,pi5usb30213a
>> +
>> + reg:
>> + maxItems: 1
>> +
>> + interrupts:
>> + maxItems: 1
>> +
>> + connector:
>> + type: object
>> + $ref: ../connector/usb-connector.yaml#
>
> Full path, so /schemas/connector/usb-....
OK.
>> + unevaluatedProperties: false
>> + description:
>> + The managed USB Type-C connector.
>
> Description should not be needed.
OK, I will remove it.
>> +
>> + properties:
>> + compatible:
>> + const: usb-c-connector
>
> Drop, not needed.
OK.
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - interrupts
>> + - connector
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/interrupt-controller/irq.h>
>> +
>> + i2c {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + pi5usb30213a: tcpc@d {
>
> typec@d
>
> and drop label
OK.
>> + compatible = "diodes,pi5usb30213a";
>> + reg = <0xd>;
>> + pinctrl-names = "default";
>> + pinctrl-0 = <&pinctrl_typec>;
>> + interrupts-extended = <&gpio1 5 IRQ_TYPE_LEVEL_LOW>;
>> + status = "okay";
>
> Drop status
OK.
Thank you for the review,
Michal
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 4/4] arm64: dts: imx8mp-iota2: Enable the USB Type-C port
2024-09-18 13:17 ` Krzysztof Kozlowski
@ 2024-09-19 12:52 ` Michal Vokáč
0 siblings, 0 replies; 13+ messages in thread
From: Michal Vokáč @ 2024-09-19 12:52 UTC (permalink / raw)
To: Krzysztof Kozlowski, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Greg Kroah-Hartman, Shawn Guo, Petr Benes
Cc: Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, Herburger,
Hiago De Franco, Hugo Villeneuve, Joao Paulo Goncalves,
Michael Walle, Alexander Stein, Mathieu Othacehe, devicetree,
linux-kernel, linux-usb, imx, linux-arm-kernel
On 18. 09. 24 15:17, Krzysztof Kozlowski wrote:
> On 17/09/2024 17:10, Michal Vokáč wrote:
>> From: Petr Benes <petr.benes@ysoft.com>
>>
>> Enable the USB Type-C port with the Diodes PI5USB30213A port controller.
>> The port supports dual role data but can operate only in source power role
>> and PD is not supported.
>>
>> Signed-off-by: Petr Benes <petr.benes@ysoft.com>
>> Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
>> ---
>> .../boot/dts/freescale/imx8mp-iota2-lumpy.dts | 96 +++++++++++++++++++
>> 1 file changed, 96 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts b/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts
>> index 21d0899cabd5..b15d211e8667 100644
>> --- a/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts
>> +++ b/arch/arm64/boot/dts/freescale/imx8mp-iota2-lumpy.dts
>> @@ -38,6 +38,17 @@ memory@40000000 {
>> <0x1 0x00000000 0 0x80000000>;
>> };
>>
>> + reg_typec: regulator-typec {
>> + compatible = "regulator-fixed";
>> + enable-active-high;
>> + gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
>> + pinctrl-names = "default";
>> + pinctrl-0 = <&pinctrl_usbc_vbus>;
>> + regulator-max-microvolt = <5000000>;
>> + regulator-min-microvolt = <5000000>;
>> + regulator-name = "typec";
>> + };
>> +
>> reg_usb_host: regulator-usb-host {
>> compatible = "regulator-fixed";
>> enable-active-high;
>> @@ -218,6 +229,47 @@ &i2c2 {
>> pinctrl-0 = <&pinctrl_i2c2>;
>> status = "okay";
>>
>> + tcpc@d {
>
> typec@d
>
>> + compatible = "diodes,pi5usb30213a";
>> + reg = <0xd>;
>> + pinctrl-names = "default";
>> + pinctrl-0 = <&pinctrl_typec>;
>> + interrupts-extended = <&gpio1 5 IRQ_TYPE_LEVEL_LOW>;
>> + status = "okay";
>
> Drop
OK. I will address both comments.
Thank you for the review,
Michal
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2024-09-19 12:53 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-17 15:09 [PATCH 0/4] Add support for new IMX8MP based board Michal Vokáč
2024-09-17 15:09 ` [PATCH 1/4] dt-bindings: arm: Add i.MX8MP IOTA2 Lumpy board Michal Vokáč
2024-09-18 13:12 ` Krzysztof Kozlowski
2024-09-17 15:09 ` [PATCH 2/4] arm64: dts: imx: Add imx8mp-iota2-lumpy board Michal Vokáč
2024-09-17 19:07 ` Frank Li
2024-09-18 8:32 ` Michal Vokáč
2024-09-17 15:10 ` [PATCH 3/4] dt-bindings: usb: Add Diodes Incorporated PI5USB30213A Type-C Controller Michal Vokáč
2024-09-18 13:16 ` Krzysztof Kozlowski
2024-09-19 12:49 ` Michal Vokáč
2024-09-17 15:10 ` [PATCH 4/4] arm64: dts: imx8mp-iota2: Enable the USB Type-C port Michal Vokáč
2024-09-18 13:17 ` Krzysztof Kozlowski
2024-09-19 12:52 ` Michal Vokáč
2024-09-18 17:06 ` [PATCH 0/4] Add support for new IMX8MP based board Rob Herring (Arm)
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).