* [PATCH v3 01/12] ARM: dts: imx7d: cl-som-imx7 imx7d-sbc-imx7: move USB
@ 2020-01-31 8:36 André Draszik
2020-01-31 8:36 ` [PATCH v3 02/12] ARM: dts: imx7d: cl-som-imx7: add phy-reset-gpios André Draszik
` (10 more replies)
0 siblings, 11 replies; 14+ messages in thread
From: André Draszik @ 2020-01-31 8:36 UTC (permalink / raw)
To: linux-kernel
Cc: André Draszik, Ilya Ledvich, Igor Grinberg, Rob Herring,
Mark Rutland, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, NXP Linux Team, devicetree, linux-arm-kernel
Whether and which USB port is enabled and how they
are powered is a function of the carrier board, not
of the SoM. Different carrier boards can have different
ports enabled / wired up, and power them differently;
so this should really move into the respective DTS.
Do so and update the USB power supply to reflect
the actual situation on the sbc-imx7 carrier board.
Signed-off-by: André Draszik <git@andred.net>
Cc: Ilya Ledvich <ilya@compulab.co.il>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
---
arch/arm/boot/dts/imx7d-cl-som-imx7.dts | 24 ------------------------
arch/arm/boot/dts/imx7d-sbc-imx7.dts | 13 +++++++++++++
2 files changed, 13 insertions(+), 24 deletions(-)
diff --git a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
index 7646284e13a7..0d962e9fe83a 100644
--- a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
+++ b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
@@ -22,15 +22,6 @@
device_type = "memory";
reg = <0x80000000 0x10000000>; /* 256 MB - minimal configuration */
};
-
- reg_usb_otg1_vbus: regulator-vbus {
- compatible = "regulator-fixed";
- regulator-name = "usb_otg1_vbus";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- };
};
&cpu0 {
@@ -195,13 +186,6 @@
status = "okay";
};
-&usbotg1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_usbotg1>;
- vbus-supply = <®_usb_otg1_vbus>;
- status = "okay";
-};
-
&usdhc3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc3>;
@@ -280,11 +264,3 @@
>;
};
};
-
-&iomuxc_lpsr {
- pinctrl_usbotg1: usbotg1grp {
- fsl,pins = <
- MX7D_PAD_LPSR_GPIO1_IO05__GPIO1_IO5 0x14 /* OTG PWREN */
- >;
- };
-};
diff --git a/arch/arm/boot/dts/imx7d-sbc-imx7.dts b/arch/arm/boot/dts/imx7d-sbc-imx7.dts
index f8a868552707..aab646903de3 100644
--- a/arch/arm/boot/dts/imx7d-sbc-imx7.dts
+++ b/arch/arm/boot/dts/imx7d-sbc-imx7.dts
@@ -15,6 +15,14 @@
/ {
model = "CompuLab SBC-iMX7";
compatible = "compulab,sbc-imx7", "compulab,cl-som-imx7", "fsl,imx7d";
+
+ reg_usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+ regulator-name = "usb_vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-always-on;
+ };
};
&usdhc1 {
@@ -26,6 +34,11 @@
status = "okay";
};
+&&usbotg1 {
+ vbus-supply = <®_usb_vbus>;
+ status = "okay";
+};
+
&iomuxc {
pinctrl_usdhc1: usdhc1grp {
fsl,pins = <
--
2.23.0.rc1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 02/12] ARM: dts: imx7d: cl-som-imx7: add phy-reset-gpios
2020-01-31 8:36 [PATCH v3 01/12] ARM: dts: imx7d: cl-som-imx7 imx7d-sbc-imx7: move USB André Draszik
@ 2020-01-31 8:36 ` André Draszik
2020-01-31 8:36 ` [PATCH v3 03/12] ARM: dts: imx7d: cl-som-imx7: fix i2c2 André Draszik
` (9 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: André Draszik @ 2020-01-31 8:36 UTC (permalink / raw)
To: linux-kernel
Cc: André Draszik, Ilya Ledvich, Igor Grinberg, Rob Herring,
Mark Rutland, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, NXP Linux Team, devicetree, linux-arm-kernel
According to the design team:
* reset input PHY0 is directly connected to the
corresponding pin GPIO1_4 in the i.MX7
* reset for PHY1 is done using the gpio expander bit 4
While touching this area, also add a 'compatible'
to the phy to make it more clear what this is and
which driver handles this - an Ethernet phy attached
to mdio, handled by of_mdio.c
Signed-off-by: André Draszik <git@andred.net>
Cc: Ilya Ledvich <ilya@compulab.co.il>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
---
arch/arm/boot/dts/imx7d-cl-som-imx7.dts | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
index 0d962e9fe83a..e0432a3aa36f 100644
--- a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
+++ b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
@@ -30,13 +30,14 @@
&fec1 {
pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_enet1>;
+ pinctrl-0 = <&pinctrl_enet1 &pinctrl_enet1phy>;
assigned-clocks = <&clks IMX7D_ENET1_TIME_ROOT_SRC>,
<&clks IMX7D_ENET1_TIME_ROOT_CLK>;
assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
assigned-clock-rates = <0>, <100000000>;
phy-mode = "rgmii-id";
phy-handle = <ðphy0>;
+ phy-reset-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
fsl,magic-packet;
status = "okay";
@@ -65,6 +66,7 @@
assigned-clock-rates = <0>, <100000000>;
phy-mode = "rgmii-id";
phy-handle = <ðphy1>;
+ phy-reset-gpios = <&pca9555 4 GPIO_ACTIVE_LOW>;
fsl,magic-packet;
status = "okay";
};
@@ -264,3 +266,11 @@
>;
};
};
+
+&iomuxc_lpsr {
+ pinctrl_enet1phy: enet1phygrp {
+ fsl,pins = <
+ MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4 0x34
+ >;
+ };
+};
--
2.23.0.rc1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 03/12] ARM: dts: imx7d: cl-som-imx7: fix i2c2
2020-01-31 8:36 [PATCH v3 01/12] ARM: dts: imx7d: cl-som-imx7 imx7d-sbc-imx7: move USB André Draszik
2020-01-31 8:36 ` [PATCH v3 02/12] ARM: dts: imx7d: cl-som-imx7: add phy-reset-gpios André Draszik
@ 2020-01-31 8:36 ` André Draszik
2020-01-31 8:36 ` [PATCH v3 04/12] ARM: dts: imx7d: cl-som-imx7: add emmicro,em3027 RTC André Draszik
` (8 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: André Draszik @ 2020-01-31 8:36 UTC (permalink / raw)
To: linux-kernel
Cc: André Draszik, Ilya Ledvich, Igor Grinberg, Rob Herring,
Mark Rutland, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, NXP Linux Team, devicetree, linux-arm-kernel
I2C2 is configured incorrectly at the moment:
* update i2c2 to actually work (fix incorrect pinctrl assignments)
* add the i2c2 bus recovery information [1]
[1] Note that scl is being marked as GPIO_OPEN_DRAIN even
though the i.MX pinctrl driver does not support enabling
open drain directly - it is enabled by the fixed pinmux
entry.
So while this flag has no effect in practice, it needs
to be there purely so as to fix the following warning
from gpiolib:
gpio-6 (scl): enforced open drain please flag it properly in DT/ACPI DSDT/board file
as that is the mode requested by i2c-imx.c
Signed-off-by: André Draszik <git@andred.net>
Cc: Ilya Ledvich <ilya@compulab.co.il>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
---
arch/arm/boot/dts/imx7d-cl-som-imx7.dts | 26 +++++++++++++++++--------
1 file changed, 18 insertions(+), 8 deletions(-)
diff --git a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
index e0432a3aa36f..ec82f4738c4f 100644
--- a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
+++ b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
@@ -72,8 +72,11 @@
};
&i2c2 {
- pinctrl-names = "default";
+ pinctrl-names = "default", "gpio";
pinctrl-0 = <&pinctrl_i2c2>;
+ pinctrl-1 = <&pinctrl_i2c2_recovery>;
+ sda-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+ scl-gpios = <&gpio1 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
status = "okay";
pmic: pmic@8 {
@@ -236,13 +239,6 @@
>;
};
- pinctrl_i2c2: i2c2grp {
- fsl,pins = <
- MX7D_PAD_I2C2_SDA__I2C2_SDA 0x4000007f
- MX7D_PAD_I2C2_SCL__I2C2_SCL 0x4000007f
- >;
- };
-
pinctrl_uart1: uart1grp {
fsl,pins = <
MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX 0x79
@@ -273,4 +269,18 @@
MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4 0x34
>;
};
+
+ pinctrl_i2c2: i2c2grp {
+ fsl,pins = <
+ MX7D_PAD_LPSR_GPIO1_IO07__I2C2_SDA 0x4000000f
+ MX7D_PAD_LPSR_GPIO1_IO06__I2C2_SCL 0x4000000f
+ >;
+ };
+
+ pinctrl_i2c2_recovery: i2c2recoverygrp {
+ fsl,pins = <
+ MX7D_PAD_LPSR_GPIO1_IO07__GPIO1_IO7 0x4000007f
+ MX7D_PAD_LPSR_GPIO1_IO06__GPIO1_IO6 0x4000007f
+ >;
+ };
};
--
2.23.0.rc1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 04/12] ARM: dts: imx7d: cl-som-imx7: add emmicro,em3027 RTC
2020-01-31 8:36 [PATCH v3 01/12] ARM: dts: imx7d: cl-som-imx7 imx7d-sbc-imx7: move USB André Draszik
2020-01-31 8:36 ` [PATCH v3 02/12] ARM: dts: imx7d: cl-som-imx7: add phy-reset-gpios André Draszik
2020-01-31 8:36 ` [PATCH v3 03/12] ARM: dts: imx7d: cl-som-imx7: fix i2c2 André Draszik
@ 2020-01-31 8:36 ` André Draszik
2020-01-31 8:36 ` [PATCH v3 05/12] ARM: dts: imx7d: cl-som-imx7: update pfuze3000 max voltage André Draszik
` (7 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: André Draszik @ 2020-01-31 8:36 UTC (permalink / raw)
To: linux-kernel
Cc: André Draszik, Ilya Ledvich, Igor Grinberg, Rob Herring,
Mark Rutland, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, NXP Linux Team, devicetree, linux-arm-kernel
add/enable RTC support using the on-board EM3027 real time
clock on i2c2.
Signed-off-by: André Draszik <git@andred.net>
Cc: Ilya Ledvich <ilya@compulab.co.il>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
---
arch/arm/boot/dts/imx7d-cl-som-imx7.dts | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
index ec82f4738c4f..481bd3971c55 100644
--- a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
+++ b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
@@ -181,6 +181,11 @@
reg = <0x50>;
pagesize = <16>;
};
+
+ rtc@56 {
+ compatible = "emmicro,em3027";
+ reg = <0x56>;
+ };
};
&uart1 {
--
2.23.0.rc1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 05/12] ARM: dts: imx7d: cl-som-imx7: update pfuze3000 max voltage
2020-01-31 8:36 [PATCH v3 01/12] ARM: dts: imx7d: cl-som-imx7 imx7d-sbc-imx7: move USB André Draszik
` (2 preceding siblings ...)
2020-01-31 8:36 ` [PATCH v3 04/12] ARM: dts: imx7d: cl-som-imx7: add emmicro,em3027 RTC André Draszik
@ 2020-01-31 8:36 ` André Draszik
2020-02-14 3:24 ` Shawn Guo
2020-01-31 8:36 ` [PATCH v3 06/12] ARM: dts: imx7d: cl-som-imx7: add / enable watchdog André Draszik
` (6 subsequent siblings)
10 siblings, 1 reply; 14+ messages in thread
From: André Draszik @ 2020-01-31 8:36 UTC (permalink / raw)
To: linux-kernel
Cc: André Draszik, Ilya Ledvich, Igor Grinberg, Rob Herring,
Mark Rutland, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, NXP Linux Team, devicetree, linux-arm-kernel
The max voltage of SW1A is 3.3V on PF3000 as per
http://cache.freescale.com/files/analog/doc/data_sheet/PF3000.pdf?fsrch=1&sr=1&pageNum=1
While at it, remove the unnecessary leading zero from
the i2c address.
Signed-off-by: André Draszik <git@andred.net>
Cc: Ilya Ledvich <ilya@compulab.co.il>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
---
arch/arm/boot/dts/imx7d-cl-som-imx7.dts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
index 481bd3971c55..78046633d91b 100644
--- a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
+++ b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
@@ -81,12 +81,12 @@
pmic: pmic@8 {
compatible = "fsl,pfuze3000";
- reg = <0x08>;
+ reg = <0x8>;
regulators {
sw1a_reg: sw1a {
regulator-min-microvolt = <700000>;
- regulator-max-microvolt = <1475000>;
+ regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
regulator-ramp-delay = <6250>;
--
2.23.0.rc1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 06/12] ARM: dts: imx7d: cl-som-imx7: add / enable watchdog
2020-01-31 8:36 [PATCH v3 01/12] ARM: dts: imx7d: cl-som-imx7 imx7d-sbc-imx7: move USB André Draszik
` (3 preceding siblings ...)
2020-01-31 8:36 ` [PATCH v3 05/12] ARM: dts: imx7d: cl-som-imx7: update pfuze3000 max voltage André Draszik
@ 2020-01-31 8:36 ` André Draszik
2020-01-31 8:36 ` [PATCH v3 07/12] ARM: dts: imx7d: cl-som-imx7: add/enable SPI flash on spi1 André Draszik
` (5 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: André Draszik @ 2020-01-31 8:36 UTC (permalink / raw)
To: linux-kernel
Cc: André Draszik, Ilya Ledvich, Igor Grinberg, Rob Herring,
Mark Rutland, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, NXP Linux Team, devicetree, linux-arm-kernel
add / enable watchdog which is connected via
WDOG_B to the PMIC, due to i.MX7 Errata e10574
Signed-off-by: André Draszik <git@andred.net>
Cc: Ilya Ledvich <ilya@compulab.co.il>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
---
arch/arm/boot/dts/imx7d-cl-som-imx7.dts | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
index 78046633d91b..ca3c5d95d6c3 100644
--- a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
+++ b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
@@ -207,6 +207,12 @@
status = "okay";
};
+&wdog1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_wdog>;
+ fsl,ext-reset-output;
+};
+
&iomuxc {
pinctrl_enet1: enet1grp {
fsl,pins = <
@@ -288,4 +294,10 @@
MX7D_PAD_LPSR_GPIO1_IO06__GPIO1_IO6 0x4000007f
>;
};
+
+ pinctrl_wdog: wdoggrp {
+ fsl,pins = <
+ MX7D_PAD_LPSR_GPIO1_IO00__WDOG1_WDOG_B 0x74
+ >;
+ };
};
--
2.23.0.rc1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 07/12] ARM: dts: imx7d: cl-som-imx7: add/enable SPI flash on spi1
2020-01-31 8:36 [PATCH v3 01/12] ARM: dts: imx7d: cl-som-imx7 imx7d-sbc-imx7: move USB André Draszik
` (4 preceding siblings ...)
2020-01-31 8:36 ` [PATCH v3 06/12] ARM: dts: imx7d: cl-som-imx7: add / enable watchdog André Draszik
@ 2020-01-31 8:36 ` André Draszik
2020-01-31 8:36 ` [PATCH v3 08/12] ARM: dts: imx7d: cl-som-imx7: update UART1 (debug) clock André Draszik
` (4 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: André Draszik @ 2020-01-31 8:36 UTC (permalink / raw)
To: linux-kernel
Cc: André Draszik, Ilya Ledvich, Igor Grinberg, Rob Herring,
Mark Rutland, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, NXP Linux Team, devicetree, linux-arm-kernel
add/enable SPI flash on spi1 using the default vendor's
partition layout as per downstream kernel
Signed-off-by: André Draszik <git@andred.net>
Cc: Ilya Ledvich <ilya@compulab.co.il>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
---
arch/arm/boot/dts/imx7d-cl-som-imx7.dts | 45 +++++++++++++++++++++++++
1 file changed, 45 insertions(+)
diff --git a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
index ca3c5d95d6c3..d4637a8ca223 100644
--- a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
+++ b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
@@ -28,6 +28,36 @@
cpu-supply = <&sw1a_reg>;
};
+&ecspi1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1_cs>;
+ cs-gpios = <&gpio4 19 GPIO_ACTIVE_HIGH>;
+ status = "okay";
+
+ flash@0 {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "jedec,spi-nor";
+ spi-max-frequency = <20000000>;
+ reg = <0>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0xc0000>;
+ };
+
+ partition@c0000 {
+ label = "uboot environment";
+ reg = <0xc0000 0x40000>;
+ };
+
+ partition@100000 {
+ label = "splash";
+ reg = <0x100000 0x100000>;
+ };
+ };
+};
+
&fec1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_enet1 &pinctrl_enet1phy>;
@@ -214,6 +244,21 @@
};
&iomuxc {
+ pinctrl_ecspi1: ecspi1grp {
+ fsl,pins = <
+ MX7D_PAD_ECSPI1_MOSI__ECSPI1_MOSI 0xf
+ MX7D_PAD_ECSPI1_MISO__ECSPI1_MISO 0xf
+ MX7D_PAD_ECSPI1_SCLK__ECSPI1_SCLK 0xf
+ >;
+ };
+
+ pinctrl_ecspi1_cs: ecspi1_cs_grp {
+ fsl,pins = <
+ /* SPI flash chipselect */
+ MX7D_PAD_ECSPI1_SS0__GPIO4_IO19 0x34
+ >;
+ };
+
pinctrl_enet1: enet1grp {
fsl,pins = <
MX7D_PAD_SD2_CD_B__ENET1_MDIO 0x30
--
2.23.0.rc1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 08/12] ARM: dts: imx7d: cl-som-imx7: update UART1 (debug) clock
2020-01-31 8:36 [PATCH v3 01/12] ARM: dts: imx7d: cl-som-imx7 imx7d-sbc-imx7: move USB André Draszik
` (5 preceding siblings ...)
2020-01-31 8:36 ` [PATCH v3 07/12] ARM: dts: imx7d: cl-som-imx7: add/enable SPI flash on spi1 André Draszik
@ 2020-01-31 8:36 ` André Draszik
2020-01-31 8:36 ` [PATCH v3 09/12] ARM: dts: imx7d: cl-som-imx7: add SMSC USB3503 usb hub André Draszik
` (3 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: André Draszik @ 2020-01-31 8:36 UTC (permalink / raw)
To: linux-kernel
Cc: André Draszik, Ilya Ledvich, Igor Grinberg, Rob Herring,
Mark Rutland, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, NXP Linux Team, devicetree, linux-arm-kernel
assign OSC as uart1 (debug) clock to achieve low power,
so that the PLL doesn't need to be kept on
Signed-off-by: André Draszik <git@andred.net>
Cc: Ilya Ledvich <ilya@compulab.co.il>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
---
arch/arm/boot/dts/imx7d-cl-som-imx7.dts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
index d4637a8ca223..f80be855b4ec 100644
--- a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
+++ b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
@@ -222,7 +222,7 @@
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart1>;
assigned-clocks = <&clks IMX7D_UART1_ROOT_SRC>;
- assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
+ assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>;
status = "okay";
};
--
2.23.0.rc1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 09/12] ARM: dts: imx7d: cl-som-imx7: add SMSC USB3503 usb hub
2020-01-31 8:36 [PATCH v3 01/12] ARM: dts: imx7d: cl-som-imx7 imx7d-sbc-imx7: move USB André Draszik
` (6 preceding siblings ...)
2020-01-31 8:36 ` [PATCH v3 08/12] ARM: dts: imx7d: cl-som-imx7: update UART1 (debug) clock André Draszik
@ 2020-01-31 8:36 ` André Draszik
2020-01-31 8:36 ` [PATCH v3 10/12] ARM: dts: imx7d: cl-som-imx7: add WiLink8 WLAN support André Draszik
` (2 subsequent siblings)
10 siblings, 0 replies; 14+ messages in thread
From: André Draszik @ 2020-01-31 8:36 UTC (permalink / raw)
To: linux-kernel
Cc: André Draszik, Ilya Ledvich, Igor Grinberg, Rob Herring,
Mark Rutland, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, NXP Linux Team, devicetree, linux-arm-kernel
As per the SoM design, add the SMSC USB3503 that is
used as a PHY in hardware-only mode, connected
to the imx7d's &usbh interface, providing additional
USB ports for USB and mini-PCIe.
Signed-off-by: André Draszik <git@andred.net>
Cc: Ilya Ledvich <ilya@compulab.co.il>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
---
arch/arm/boot/dts/imx7d-cl-som-imx7.dts | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
index f80be855b4ec..a16cbb070a12 100644
--- a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
+++ b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
@@ -22,6 +22,12 @@
device_type = "memory";
reg = <0x80000000 0x10000000>; /* 256 MB - minimal configuration */
};
+
+ /* SMSC USB3503 connected to &usbh */
+ usb_hub: usb-hub {
+ compatible = "smsc,usb3503";
+ reset-gpios = <&pca9555 6 GPIO_ACTIVE_LOW>;
+ };
};
&cpu0 {
--
2.23.0.rc1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 10/12] ARM: dts: imx7d: cl-som-imx7: add WiLink8 WLAN support
2020-01-31 8:36 [PATCH v3 01/12] ARM: dts: imx7d: cl-som-imx7 imx7d-sbc-imx7: move USB André Draszik
` (7 preceding siblings ...)
2020-01-31 8:36 ` [PATCH v3 09/12] ARM: dts: imx7d: cl-som-imx7: add SMSC USB3503 usb hub André Draszik
@ 2020-01-31 8:36 ` André Draszik
2020-01-31 8:36 ` [PATCH v3 11/12] ARM: dts: imx7d: cl-som-imx7: add WiLink Bluetooth support André Draszik
2020-01-31 8:36 ` [PATCH v3 12/12] ARM: dts: imx7d: sbc-iot-imx7: add basic board support André Draszik
10 siblings, 0 replies; 14+ messages in thread
From: André Draszik @ 2020-01-31 8:36 UTC (permalink / raw)
To: linux-kernel
Cc: André Draszik, Ilya Ledvich, Igor Grinberg, Rob Herring,
Mark Rutland, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, NXP Linux Team, devicetree, linux-arm-kernel
add / enable TI's WiLink8 WLAN module on SDIO2.
Notes:
* power is always enabled (because of bluetooth)
* the downstream delay of 70ms after power-on
doesn't seem to reliably work, hence it was
bumped to 700ms
Signed-off-by: André Draszik <git@andred.net>
Cc: Ilya Ledvich <ilya@compulab.co.il>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
---
arch/arm/boot/dts/imx7d-cl-som-imx7.dts | 60 +++++++++++++++++++++++++
1 file changed, 60 insertions(+)
diff --git a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
index a16cbb070a12..4cb36decef3d 100644
--- a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
+++ b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
@@ -28,6 +28,24 @@
compatible = "smsc,usb3503";
reset-gpios = <&pca9555 6 GPIO_ACTIVE_LOW>;
};
+
+ pwrseq_ti_wifi: ti-wifi-pwrseq {
+ compatible = "mmc-pwrseq-simple";
+ reset-gpios = <&pca9555 0 GPIO_ACTIVE_LOW>;
+ post-power-on-delay-ms = <700>;
+ /* 10μs during shutdown, but 60μs between two enables */
+ power-off-delay-us = "60";
+ };
+
+ reg_ti_wifi: regulator-ti-wifi {
+ compatible = "regulator-fixed";
+ regulator-name = "wilink-regulator";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpio = <&pca9555 9 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ regulator-always-on;
+ };
};
&cpu0 {
@@ -232,6 +250,31 @@
status = "okay";
};
+&usdhc2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usdhc2>;
+ bus-width = <4>;
+ no-1-8-v;
+ keep-power-in-suspend;
+ wakeup-source;
+ vmmc-supply = <®_ti_wifi>;
+ mmc-pwrseq = <&pwrseq_ti_wifi>;
+ non-removable;
+ cap-power-off-card;
+ status = "okay";
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+ wlcore: wlcore@2 {
+ compatible = "ti,wl1835";
+ reg = <2>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usdhc2_wlcore>;
+ interrupt-parent = <&gpio1>;
+ interrupts = <15 IRQ_TYPE_LEVEL_HIGH>;
+ };
+};
+
&usdhc3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc3>;
@@ -308,6 +351,23 @@
>;
};
+ pinctrl_usdhc2: usdhc2grp {
+ fsl,pins = <
+ MX7D_PAD_SD2_CMD__SD2_CMD 0x59
+ MX7D_PAD_SD2_CLK__SD2_CLK 0x19
+ MX7D_PAD_SD2_DATA0__SD2_DATA0 0x59
+ MX7D_PAD_SD2_DATA1__SD2_DATA1 0x59
+ MX7D_PAD_SD2_DATA2__SD2_DATA2 0x59
+ MX7D_PAD_SD2_DATA3__SD2_DATA3 0x59
+ >;
+ };
+
+ pinctrl_usdhc2_wlcore: usdhc2wlcoregrp {
+ fsl,pins = <
+ MX7D_PAD_GPIO1_IO15__GPIO1_IO15 0x34
+ >;
+ };
+
pinctrl_usdhc3: usdhc3grp {
fsl,pins = <
MX7D_PAD_SD3_CMD__SD3_CMD 0x59
--
2.23.0.rc1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 11/12] ARM: dts: imx7d: cl-som-imx7: add WiLink Bluetooth support
2020-01-31 8:36 [PATCH v3 01/12] ARM: dts: imx7d: cl-som-imx7 imx7d-sbc-imx7: move USB André Draszik
` (8 preceding siblings ...)
2020-01-31 8:36 ` [PATCH v3 10/12] ARM: dts: imx7d: cl-som-imx7: add WiLink8 WLAN support André Draszik
@ 2020-01-31 8:36 ` André Draszik
2020-01-31 8:36 ` [PATCH v3 12/12] ARM: dts: imx7d: sbc-iot-imx7: add basic board support André Draszik
10 siblings, 0 replies; 14+ messages in thread
From: André Draszik @ 2020-01-31 8:36 UTC (permalink / raw)
To: linux-kernel
Cc: André Draszik, Ilya Ledvich, Igor Grinberg, Rob Herring,
Mark Rutland, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, NXP Linux Team, devicetree, linux-arm-kernel
add / enable TI's WiLink8 Bluetooth module on UART3.
Signed-off-by: André Draszik <git@andred.net>
Cc: Ilya Ledvich <ilya@compulab.co.il>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
---
arch/arm/boot/dts/imx7d-cl-som-imx7.dts | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
index 4cb36decef3d..08fb43f7ae1d 100644
--- a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
+++ b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
@@ -250,6 +250,21 @@
status = "okay";
};
+&uart3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart3>;
+ assigned-clocks = <&clks IMX7D_UART3_ROOT_SRC>;
+ assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
+ uart-has-rtscts;
+ status = "okay";
+
+ bluetooth {
+ compatible = "ti,wl1835-st";
+ enable-gpios = <&pca9555 1 GPIO_ACTIVE_HIGH>;
+ max-speed = <3000000>;
+ };
+};
+
&usdhc2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc2>;
@@ -351,6 +366,15 @@
>;
};
+ pinctrl_uart3: uart3grp {
+ fsl,pins = <
+ MX7D_PAD_UART3_TX_DATA__UART3_DCE_TX 0x79
+ MX7D_PAD_UART3_RX_DATA__UART3_DCE_RX 0x79
+ MX7D_PAD_UART3_CTS_B__UART3_DCE_CTS 0x79
+ MX7D_PAD_UART3_RTS_B__UART3_DCE_RTS 0x79
+ >;
+ };
+
pinctrl_usdhc2: usdhc2grp {
fsl,pins = <
MX7D_PAD_SD2_CMD__SD2_CMD 0x59
--
2.23.0.rc1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v3 12/12] ARM: dts: imx7d: sbc-iot-imx7: add basic board support
2020-01-31 8:36 [PATCH v3 01/12] ARM: dts: imx7d: cl-som-imx7 imx7d-sbc-imx7: move USB André Draszik
` (9 preceding siblings ...)
2020-01-31 8:36 ` [PATCH v3 11/12] ARM: dts: imx7d: cl-som-imx7: add WiLink Bluetooth support André Draszik
@ 2020-01-31 8:36 ` André Draszik
2020-02-14 3:30 ` Shawn Guo
10 siblings, 1 reply; 14+ messages in thread
From: André Draszik @ 2020-01-31 8:36 UTC (permalink / raw)
To: linux-kernel
Cc: André Draszik, Ilya Ledvich, Igor Grinberg, Rob Herring,
Mark Rutland, Shawn Guo, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, NXP Linux Team, devicetree, linux-arm-kernel
This is a forward-port of Compulab's downstream commit
against linux 4.9.11, including updates to work with
more recent kernels.
Original commit message:
The SB-IOT-iMX7 base board together with CL-SOM-iMX7
SoM forms SBC-IOT-iMX7 single board computer.
SBC-IOT-iMX7 is a single board computer optimized for
industrial control and monitoring, extensive wireless
and wired connectivity, ideal solution for
cost-sensitive systems. It is based on the Freescale
i.MX7 system-on-chip. SBC-IOT-iMX7 is implemented with
the CL-SOM-iMX7 System-on-Module providing most of the
functions,and SB-IOT-iMX7 carrier board providing
additional peripheral functions and connectors.
https://www.compulab.com/products/computer-on-modules/cl-som-imx7-freescale-i-mx-7-system-on-module/
https://www.compulab.com/products/sbcs/sbc-iot-imx7-nxp-i-mx-7-internet-of-things-single-board-computer/
This commit adds basic board support, including:
* SD-card (note that write-protect is not connected
on this carrier board)
* SPI (available on expansion header)
* i2c3 & i2c4 (including bus recovery information)
* additional UARTs
* all USB ports
* SNVS powerkey
Compared to the downtream commit, this commit doesn't
add / enable the PCIe and LCD interface, as PCIe
support needs an additional patch to the PCI controller
first, and I can't test the LCD.
Signed-off-by: André Draszik <git@andred.net>
Cc: Ilya Ledvich <ilya@compulab.co.il>
Cc: Igor Grinberg <grinberg@compulab.co.il>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
---
v3:
* enable snvs_pwrkey node
v2:
* use standard uart-has-rtscts instead of fsl,uart-has-rtscts
ARM: dts: imx7d: sbc-iot-imx7: has a power key
Signed-off-by: André Draszik <git@andred.net>
---
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/imx7d-sbc-iot-imx7.dts | 202 +++++++++++++++++++++++
2 files changed, 203 insertions(+)
create mode 100644 arch/arm/boot/dts/imx7d-sbc-iot-imx7.dts
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 08011dc8c7a6..6efbfa613366 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -603,6 +603,7 @@ dtb-$(CONFIG_SOC_IMX7D) += \
imx7d-pico-hobbit.dtb \
imx7d-pico-pi.dtb \
imx7d-sbc-imx7.dtb \
+ imx7d-sbc-iot-imx7.dtb \
imx7d-sdb.dtb \
imx7d-sdb-reva.dtb \
imx7d-sdb-sht11.dtb \
diff --git a/arch/arm/boot/dts/imx7d-sbc-iot-imx7.dts b/arch/arm/boot/dts/imx7d-sbc-iot-imx7.dts
new file mode 100644
index 000000000000..4ffa67f2e530
--- /dev/null
+++ b/arch/arm/boot/dts/imx7d-sbc-iot-imx7.dts
@@ -0,0 +1,202 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+//
+// Copyright 2017 CompuLab Ltd. - http://www.compulab.co.il/
+/*
+ * Support for CompuLab SBC-IOT-iMX7 Single Board Computer
+ */
+
+#include "imx7d-cl-som-imx7.dts"
+
+/ {
+ model = "CompuLab,SBC-IOT-iMX7";
+ compatible = "compulab,sbc-iot-imx7", "compulab,cl-som-imx7", "fsl,imx7d";
+
+ reg_usb_vbus: regulator-usb-vbus {
+ compatible = "regulator-fixed";
+ regulator-name = "usb_vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-always-on;
+ };
+};
+
+&ecspi3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_ecspi3 &pinctrl_ecspi3_cs>;
+ cs-gpios = <&gpio4 11 GPIO_ACTIVE_HIGH>;
+ status = "okay";
+};
+
+&i2c3 {
+ clock-frequency = <100000>;
+ pinctrl-names = "default", "gpio";
+ pinctrl-0 = <&pinctrl_i2c3>;
+ pinctrl-1 = <&pinctrl_i2c3_recovery>;
+ sda-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+ scl-gpios = <&gpio1 8 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ status = "okay";
+};
+
+&i2c4 {
+ clock-frequency = <100000>;
+ pinctrl-names = "default", "gpio";
+ pinctrl-0 = <&pinctrl_i2c4>;
+ pinctrl-1 = <&pinctrl_i2c4_recovery>;
+ sda-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
+ scl-gpios = <&gpio1 10 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ status = "okay";
+
+ eeprom_iot@54 {
+ compatible = "atmel,24c08";
+ reg = <0x54>;
+ pagesize = <16>;
+ };
+};
+
+&snvs_pwrkey {
+ status = "okay";
+};
+
+&iomuxc {
+ pinctrl-1 = <&pinctrl_xpen>;
+
+ /* SB-IOT-iMX7 Xpension Header P7 */
+ pinctrl_xpen: xpengrp {
+ fsl,pins = <
+ MX7D_PAD_LCD_DATA13__GPIO3_IO18 0x34 /* P7-4 - gpio82 */
+ MX7D_PAD_LCD_DATA12__GPIO3_IO17 0x34 /* P7-5 - gpio81 */
+ >;
+ };
+
+ pinctrl_ecspi3: ecspi3grp {
+ fsl,pins = <
+ MX7D_PAD_I2C1_SDA__ECSPI3_MOSI 0xf /* P7-7 */
+ MX7D_PAD_I2C1_SCL__ECSPI3_MISO 0xf /* P7-8 */
+ MX7D_PAD_I2C2_SCL__ECSPI3_SCLK 0xf /* P7-6 */
+ >;
+ };
+
+ pinctrl_ecspi3_cs: ecspi3_cs_grp {
+ fsl,pins = <
+ MX7D_PAD_I2C2_SDA__GPIO4_IO11 0x34 /* P7-9 */
+ >;
+ };
+
+ pinctrl_i2c3: i2c3grp {
+ fsl,pins = <
+ MX7D_PAD_GPIO1_IO09__I2C3_SDA 0x4000000f /* P7-3 */
+ MX7D_PAD_GPIO1_IO08__I2C3_SCL 0x4000000f /* P7-2 */
+ >;
+ };
+
+ pinctrl_i2c3_recovery: i2c3recoverygrp {
+ fsl,pins = <
+ MX7D_PAD_GPIO1_IO09__GPIO1_IO9 0x4000000f /* P7-3 */
+ MX7D_PAD_GPIO1_IO08__GPIO1_IO8 0x4000000f /* P7-2 */
+ >;
+ };
+
+ pinctrl_i2c4: i2c4grp {
+ fsl,pins = <
+ MX7D_PAD_GPIO1_IO11__I2C4_SDA 0x4000000f
+ MX7D_PAD_GPIO1_IO10__I2C4_SCL 0x4000000f
+ >;
+ };
+
+ pinctrl_i2c4_recovery: i2c4recoverygrp {
+ fsl,pins = <
+ MX7D_PAD_GPIO1_IO11__GPIO1_IO11 0x4000000f
+ MX7D_PAD_GPIO1_IO10__GPIO1_IO10 0x4000000f
+ >;
+ };
+
+ pinctrl_uart2: uart2grp {
+ fsl,pins = <
+ MX7D_PAD_LCD_ENABLE__UART2_DCE_TX 0x79 /* P7-12 */
+ MX7D_PAD_LCD_CLK__UART2_DCE_RX 0x79 /* P7-13 */
+ MX7D_PAD_LCD_VSYNC__UART2_DCE_CTS 0x79 /* P7-11 */
+ MX7D_PAD_LCD_HSYNC__UART2_DCE_RTS 0x79 /* P7-10 */
+ >;
+ };
+
+ pinctrl_uart5: uart5grp {
+ fsl,pins = <
+ MX7D_PAD_I2C4_SDA__UART5_DCE_TX 0x79 /* RS232-TX */
+ MX7D_PAD_I2C4_SCL__UART5_DCE_RX 0x79 /* RS232-RX */
+ MX7D_PAD_I2C3_SDA__UART5_DCE_RTS 0x79 /* RS232-RTS */
+ MX7D_PAD_I2C3_SCL__UART5_DCE_CTS 0x79 /* RS232-CTS */
+ >;
+ };
+
+ pinctrl_uart7: uart7grp {
+ fsl,pins = <
+ MX7D_PAD_ECSPI2_MOSI__UART7_DCE_TX 0x79 /* R485-TX */
+ MX7D_PAD_ECSPI2_SCLK__UART7_DCE_RX 0x79 /* R485-RX */
+ MX7D_PAD_ECSPI2_SS0__UART7_DCE_CTS 0x79 /* R485-CTS */
+ MX7D_PAD_ECSPI2_MISO__UART7_DCE_RTS 0x79 /* R485-TTS */
+ >;
+ };
+
+ pinctrl_usdhc1: usdhc1grp {
+ fsl,pins = <
+ MX7D_PAD_SD1_CMD__SD1_CMD 0x59
+ MX7D_PAD_SD1_CLK__SD1_CLK 0x19
+ MX7D_PAD_SD1_DATA0__SD1_DATA0 0x59
+ MX7D_PAD_SD1_DATA1__SD1_DATA1 0x59
+ MX7D_PAD_SD1_DATA2__SD1_DATA2 0x59
+ MX7D_PAD_SD1_DATA3__SD1_DATA3 0x59
+ MX7D_PAD_SD1_CD_B__GPIO5_IO0 0x59 /* CD */
+ >;
+ };
+};
+
+&uart2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart2>;
+ assigned-clocks = <&clks IMX7D_UART2_ROOT_SRC>;
+ assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>;
+ uart-has-rtscts;
+ status = "okay";
+};
+
+&uart5 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart5>;
+ assigned-clocks = <&clks IMX7D_UART5_ROOT_SRC>;
+ assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
+ uart-has-rtscts;
+ status = "okay";
+};
+
+&uart7 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart7>;
+ assigned-clocks = <&clks IMX7D_UART7_ROOT_SRC>;
+ assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
+ uart-has-rtscts;
+ status = "okay";
+};
+
+&usbotg1 {
+ vbus-supply = <®_usb_vbus>;
+ status = "okay";
+};
+
+&usbotg2 {
+ dr_mode = "host";
+ vbus-supply = <®_usb_vbus>;
+ status = "okay";
+};
+
+&usbh {
+ vbus-supply = <®_usb_vbus>;
+ status = "okay";
+};
+
+&usdhc1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usdhc1>;
+ cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
+ wakeup-source;
+ status = "okay";
+};
--
2.23.0.rc1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v3 05/12] ARM: dts: imx7d: cl-som-imx7: update pfuze3000 max voltage
2020-01-31 8:36 ` [PATCH v3 05/12] ARM: dts: imx7d: cl-som-imx7: update pfuze3000 max voltage André Draszik
@ 2020-02-14 3:24 ` Shawn Guo
0 siblings, 0 replies; 14+ messages in thread
From: Shawn Guo @ 2020-02-14 3:24 UTC (permalink / raw)
To: André Draszik
Cc: linux-kernel, Ilya Ledvich, Igor Grinberg, Rob Herring,
Mark Rutland, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, NXP Linux Team, devicetree, linux-arm-kernel
On Fri, Jan 31, 2020 at 08:36:31AM +0000, André Draszik wrote:
> The max voltage of SW1A is 3.3V on PF3000 as per
> http://cache.freescale.com/files/analog/doc/data_sheet/PF3000.pdf?fsrch=1&sr=1&pageNum=1
>
> While at it, remove the unnecessary leading zero from
> the i2c address.
>
> Signed-off-by: André Draszik <git@andred.net>
Applied, thanks.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v3 12/12] ARM: dts: imx7d: sbc-iot-imx7: add basic board support
2020-01-31 8:36 ` [PATCH v3 12/12] ARM: dts: imx7d: sbc-iot-imx7: add basic board support André Draszik
@ 2020-02-14 3:30 ` Shawn Guo
0 siblings, 0 replies; 14+ messages in thread
From: Shawn Guo @ 2020-02-14 3:30 UTC (permalink / raw)
To: André Draszik
Cc: linux-kernel, Ilya Ledvich, Igor Grinberg, Rob Herring,
Mark Rutland, Sascha Hauer, Pengutronix Kernel Team,
Fabio Estevam, NXP Linux Team, devicetree, linux-arm-kernel
On Fri, Jan 31, 2020 at 08:36:38AM +0000, André Draszik wrote:
> This is a forward-port of Compulab's downstream commit
> against linux 4.9.11, including updates to work with
> more recent kernels.
>
> Original commit message:
> The SB-IOT-iMX7 base board together with CL-SOM-iMX7
> SoM forms SBC-IOT-iMX7 single board computer.
> SBC-IOT-iMX7 is a single board computer optimized for
> industrial control and monitoring, extensive wireless
> and wired connectivity, ideal solution for
> cost-sensitive systems. It is based on the Freescale
> i.MX7 system-on-chip. SBC-IOT-iMX7 is implemented with
> the CL-SOM-iMX7 System-on-Module providing most of the
> functions,and SB-IOT-iMX7 carrier board providing
> additional peripheral functions and connectors.
>
> https://www.compulab.com/products/computer-on-modules/cl-som-imx7-freescale-i-mx-7-system-on-module/
> https://www.compulab.com/products/sbcs/sbc-iot-imx7-nxp-i-mx-7-internet-of-things-single-board-computer/
>
> This commit adds basic board support, including:
> * SD-card (note that write-protect is not connected
> on this carrier board)
> * SPI (available on expansion header)
> * i2c3 & i2c4 (including bus recovery information)
> * additional UARTs
> * all USB ports
> * SNVS powerkey
>
> Compared to the downtream commit, this commit doesn't
> add / enable the PCIe and LCD interface, as PCIe
> support needs an additional patch to the PCI controller
> first, and I can't test the LCD.
>
> Signed-off-by: André Draszik <git@andred.net>
> Cc: Ilya Ledvich <ilya@compulab.co.il>
> Cc: Igor Grinberg <grinberg@compulab.co.il>
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: Shawn Guo <shawnguo@kernel.org>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: NXP Linux Team <linux-imx@nxp.com>
> Cc: devicetree@vger.kernel.org
> Cc: linux-arm-kernel@lists.infradead.org
>
> ---
> v3:
> * enable snvs_pwrkey node
>
> v2:
> * use standard uart-has-rtscts instead of fsl,uart-has-rtscts
>
> ARM: dts: imx7d: sbc-iot-imx7: has a power key
>
> Signed-off-by: André Draszik <git@andred.net>
> ---
> arch/arm/boot/dts/Makefile | 1 +
> arch/arm/boot/dts/imx7d-sbc-iot-imx7.dts | 202 +++++++++++++++++++++++
> 2 files changed, 203 insertions(+)
> create mode 100644 arch/arm/boot/dts/imx7d-sbc-iot-imx7.dts
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 08011dc8c7a6..6efbfa613366 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -603,6 +603,7 @@ dtb-$(CONFIG_SOC_IMX7D) += \
> imx7d-pico-hobbit.dtb \
> imx7d-pico-pi.dtb \
> imx7d-sbc-imx7.dtb \
> + imx7d-sbc-iot-imx7.dtb \
> imx7d-sdb.dtb \
> imx7d-sdb-reva.dtb \
> imx7d-sdb-sht11.dtb \
> diff --git a/arch/arm/boot/dts/imx7d-sbc-iot-imx7.dts b/arch/arm/boot/dts/imx7d-sbc-iot-imx7.dts
> new file mode 100644
> index 000000000000..4ffa67f2e530
> --- /dev/null
> +++ b/arch/arm/boot/dts/imx7d-sbc-iot-imx7.dts
> @@ -0,0 +1,202 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR MIT
> +//
> +// Copyright 2017 CompuLab Ltd. - http://www.compulab.co.il/
> +/*
> + * Support for CompuLab SBC-IOT-iMX7 Single Board Computer
> + */
> +
> +#include "imx7d-cl-som-imx7.dts"
> +
> +/ {
> + model = "CompuLab,SBC-IOT-iMX7";
> + compatible = "compulab,sbc-iot-imx7", "compulab,cl-som-imx7", "fsl,imx7d";
Any new compatibles need to be documented.
> +
> + reg_usb_vbus: regulator-usb-vbus {
> + compatible = "regulator-fixed";
> + regulator-name = "usb_vbus";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
> + regulator-always-on;
> + };
> +};
> +
> +&ecspi3 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_ecspi3 &pinctrl_ecspi3_cs>;
> + cs-gpios = <&gpio4 11 GPIO_ACTIVE_HIGH>;
> + status = "okay";
> +};
> +
> +&i2c3 {
> + clock-frequency = <100000>;
> + pinctrl-names = "default", "gpio";
> + pinctrl-0 = <&pinctrl_i2c3>;
> + pinctrl-1 = <&pinctrl_i2c3_recovery>;
> + sda-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
> + scl-gpios = <&gpio1 8 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
> + status = "okay";
> +};
> +
> +&i2c4 {
> + clock-frequency = <100000>;
> + pinctrl-names = "default", "gpio";
> + pinctrl-0 = <&pinctrl_i2c4>;
> + pinctrl-1 = <&pinctrl_i2c4_recovery>;
> + sda-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
> + scl-gpios = <&gpio1 10 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
> + status = "okay";
> +
> + eeprom_iot@54 {
The '_iot' in the node name doesn't make a lot sense.
> + compatible = "atmel,24c08";
> + reg = <0x54>;
> + pagesize = <16>;
> + };
> +};
> +
> +&snvs_pwrkey {
Keep the node sort alphabetically.
Shawn
> + status = "okay";
> +};
> +
> +&iomuxc {
> + pinctrl-1 = <&pinctrl_xpen>;
> +
> + /* SB-IOT-iMX7 Xpension Header P7 */
> + pinctrl_xpen: xpengrp {
> + fsl,pins = <
> + MX7D_PAD_LCD_DATA13__GPIO3_IO18 0x34 /* P7-4 - gpio82 */
> + MX7D_PAD_LCD_DATA12__GPIO3_IO17 0x34 /* P7-5 - gpio81 */
> + >;
> + };
> +
> + pinctrl_ecspi3: ecspi3grp {
> + fsl,pins = <
> + MX7D_PAD_I2C1_SDA__ECSPI3_MOSI 0xf /* P7-7 */
> + MX7D_PAD_I2C1_SCL__ECSPI3_MISO 0xf /* P7-8 */
> + MX7D_PAD_I2C2_SCL__ECSPI3_SCLK 0xf /* P7-6 */
> + >;
> + };
> +
> + pinctrl_ecspi3_cs: ecspi3_cs_grp {
> + fsl,pins = <
> + MX7D_PAD_I2C2_SDA__GPIO4_IO11 0x34 /* P7-9 */
> + >;
> + };
> +
> + pinctrl_i2c3: i2c3grp {
> + fsl,pins = <
> + MX7D_PAD_GPIO1_IO09__I2C3_SDA 0x4000000f /* P7-3 */
> + MX7D_PAD_GPIO1_IO08__I2C3_SCL 0x4000000f /* P7-2 */
> + >;
> + };
> +
> + pinctrl_i2c3_recovery: i2c3recoverygrp {
> + fsl,pins = <
> + MX7D_PAD_GPIO1_IO09__GPIO1_IO9 0x4000000f /* P7-3 */
> + MX7D_PAD_GPIO1_IO08__GPIO1_IO8 0x4000000f /* P7-2 */
> + >;
> + };
> +
> + pinctrl_i2c4: i2c4grp {
> + fsl,pins = <
> + MX7D_PAD_GPIO1_IO11__I2C4_SDA 0x4000000f
> + MX7D_PAD_GPIO1_IO10__I2C4_SCL 0x4000000f
> + >;
> + };
> +
> + pinctrl_i2c4_recovery: i2c4recoverygrp {
> + fsl,pins = <
> + MX7D_PAD_GPIO1_IO11__GPIO1_IO11 0x4000000f
> + MX7D_PAD_GPIO1_IO10__GPIO1_IO10 0x4000000f
> + >;
> + };
> +
> + pinctrl_uart2: uart2grp {
> + fsl,pins = <
> + MX7D_PAD_LCD_ENABLE__UART2_DCE_TX 0x79 /* P7-12 */
> + MX7D_PAD_LCD_CLK__UART2_DCE_RX 0x79 /* P7-13 */
> + MX7D_PAD_LCD_VSYNC__UART2_DCE_CTS 0x79 /* P7-11 */
> + MX7D_PAD_LCD_HSYNC__UART2_DCE_RTS 0x79 /* P7-10 */
> + >;
> + };
> +
> + pinctrl_uart5: uart5grp {
> + fsl,pins = <
> + MX7D_PAD_I2C4_SDA__UART5_DCE_TX 0x79 /* RS232-TX */
> + MX7D_PAD_I2C4_SCL__UART5_DCE_RX 0x79 /* RS232-RX */
> + MX7D_PAD_I2C3_SDA__UART5_DCE_RTS 0x79 /* RS232-RTS */
> + MX7D_PAD_I2C3_SCL__UART5_DCE_CTS 0x79 /* RS232-CTS */
> + >;
> + };
> +
> + pinctrl_uart7: uart7grp {
> + fsl,pins = <
> + MX7D_PAD_ECSPI2_MOSI__UART7_DCE_TX 0x79 /* R485-TX */
> + MX7D_PAD_ECSPI2_SCLK__UART7_DCE_RX 0x79 /* R485-RX */
> + MX7D_PAD_ECSPI2_SS0__UART7_DCE_CTS 0x79 /* R485-CTS */
> + MX7D_PAD_ECSPI2_MISO__UART7_DCE_RTS 0x79 /* R485-TTS */
> + >;
> + };
> +
> + pinctrl_usdhc1: usdhc1grp {
> + fsl,pins = <
> + MX7D_PAD_SD1_CMD__SD1_CMD 0x59
> + MX7D_PAD_SD1_CLK__SD1_CLK 0x19
> + MX7D_PAD_SD1_DATA0__SD1_DATA0 0x59
> + MX7D_PAD_SD1_DATA1__SD1_DATA1 0x59
> + MX7D_PAD_SD1_DATA2__SD1_DATA2 0x59
> + MX7D_PAD_SD1_DATA3__SD1_DATA3 0x59
> + MX7D_PAD_SD1_CD_B__GPIO5_IO0 0x59 /* CD */
> + >;
> + };
> +};
> +
> +&uart2 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart2>;
> + assigned-clocks = <&clks IMX7D_UART2_ROOT_SRC>;
> + assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>;
> + uart-has-rtscts;
> + status = "okay";
> +};
> +
> +&uart5 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart5>;
> + assigned-clocks = <&clks IMX7D_UART5_ROOT_SRC>;
> + assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
> + uart-has-rtscts;
> + status = "okay";
> +};
> +
> +&uart7 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_uart7>;
> + assigned-clocks = <&clks IMX7D_UART7_ROOT_SRC>;
> + assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
> + uart-has-rtscts;
> + status = "okay";
> +};
> +
> +&usbotg1 {
> + vbus-supply = <®_usb_vbus>;
> + status = "okay";
> +};
> +
> +&usbotg2 {
> + dr_mode = "host";
> + vbus-supply = <®_usb_vbus>;
> + status = "okay";
> +};
> +
> +&usbh {
> + vbus-supply = <®_usb_vbus>;
> + status = "okay";
> +};
> +
> +&usdhc1 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_usdhc1>;
> + cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
> + wakeup-source;
> + status = "okay";
> +};
> --
> 2.23.0.rc1
>
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2020-02-14 3:30 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-31 8:36 [PATCH v3 01/12] ARM: dts: imx7d: cl-som-imx7 imx7d-sbc-imx7: move USB André Draszik
2020-01-31 8:36 ` [PATCH v3 02/12] ARM: dts: imx7d: cl-som-imx7: add phy-reset-gpios André Draszik
2020-01-31 8:36 ` [PATCH v3 03/12] ARM: dts: imx7d: cl-som-imx7: fix i2c2 André Draszik
2020-01-31 8:36 ` [PATCH v3 04/12] ARM: dts: imx7d: cl-som-imx7: add emmicro,em3027 RTC André Draszik
2020-01-31 8:36 ` [PATCH v3 05/12] ARM: dts: imx7d: cl-som-imx7: update pfuze3000 max voltage André Draszik
2020-02-14 3:24 ` Shawn Guo
2020-01-31 8:36 ` [PATCH v3 06/12] ARM: dts: imx7d: cl-som-imx7: add / enable watchdog André Draszik
2020-01-31 8:36 ` [PATCH v3 07/12] ARM: dts: imx7d: cl-som-imx7: add/enable SPI flash on spi1 André Draszik
2020-01-31 8:36 ` [PATCH v3 08/12] ARM: dts: imx7d: cl-som-imx7: update UART1 (debug) clock André Draszik
2020-01-31 8:36 ` [PATCH v3 09/12] ARM: dts: imx7d: cl-som-imx7: add SMSC USB3503 usb hub André Draszik
2020-01-31 8:36 ` [PATCH v3 10/12] ARM: dts: imx7d: cl-som-imx7: add WiLink8 WLAN support André Draszik
2020-01-31 8:36 ` [PATCH v3 11/12] ARM: dts: imx7d: cl-som-imx7: add WiLink Bluetooth support André Draszik
2020-01-31 8:36 ` [PATCH v3 12/12] ARM: dts: imx7d: sbc-iot-imx7: add basic board support André Draszik
2020-02-14 3:30 ` Shawn Guo
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).