* [PATCH 0/4] ARM: dts: imx6ull-dhcom: Add DH electronics DHCOM i.MX6ULL SoM support
@ 2022-11-17 10:31 Christoph Niedermaier
2022-11-17 10:31 ` Christoph Niedermaier
` (3 more replies)
0 siblings, 4 replies; 12+ messages in thread
From: Christoph Niedermaier @ 2022-11-17 10:31 UTC (permalink / raw)
To: linux-arm-kernel
Cc: Christoph Niedermaier, Rob Herring, Krzysztof Kozlowski,
Peng Fan, Shawn Guo, Marek Vasut, Fabio Estevam, NXP Linux Team,
kernel
Add support for DH electronics DHCOM i.MX6ULL SoM with three different
carrier boards, provided by separate patches:
- PDK2 evaluation kit
- PicoITX bare-bones carrier board
- DRC02 universal controller device
In this series the DT bindings for the carrier boards are also included.
Christoph Niedermaier (4):
dt-bindings: arm: fsl: Add PDK2, PicoITX and DRC02 boards for the
DHCOM i.MX6ULL SoM
ARM: dts: imx6ull-dhcom: Add DH electronics DHCOM i.MX6ULL SoM and
PDK2 board
ARM: dts: imx6ull-dhcom: Add DHCOM based PicoITX board
ARM: dts: imx6ull-dhcom: Add DHSOM based DRC02 board
---
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <festevam@denx.de>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: kernel@dh-electronics.com
To: linux-arm-kernel@lists.infradead.org
---
Documentation/devicetree/bindings/arm/fsl.yaml | 10 +
arch/arm/boot/dts/Makefile | 3 +
arch/arm/boot/dts/imx6ull-dhcom-drc02.dts | 144 +++++
arch/arm/boot/dts/imx6ull-dhcom-pdk2.dts | 219 ++++++++
arch/arm/boot/dts/imx6ull-dhcom-picoitx.dts | 101 ++++
.../arm/boot/dts/imx6ull-dhcom-som-cfg-sdcard.dtsi | 96 ++++
arch/arm/boot/dts/imx6ull-dhcom-som.dtsi | 619 +++++++++++++++++++++
arch/arm/boot/dts/imx6ull-dhcor-som.dtsi | 247 ++++++++
8 files changed, 1439 insertions(+)
create mode 100644 arch/arm/boot/dts/imx6ull-dhcom-drc02.dts
create mode 100644 arch/arm/boot/dts/imx6ull-dhcom-pdk2.dts
create mode 100644 arch/arm/boot/dts/imx6ull-dhcom-picoitx.dts
create mode 100644 arch/arm/boot/dts/imx6ull-dhcom-som-cfg-sdcard.dtsi
create mode 100644 arch/arm/boot/dts/imx6ull-dhcom-som.dtsi
create mode 100644 arch/arm/boot/dts/imx6ull-dhcor-som.dtsi
--
2.11.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/4] dt-bindings: arm: fsl: Add PDK2, PicoITX and DRC02 boards for the DHCOM i.MX6ULL SoM
2022-11-17 10:31 [PATCH 0/4] ARM: dts: imx6ull-dhcom: Add DH electronics DHCOM i.MX6ULL SoM support Christoph Niedermaier
@ 2022-11-17 10:31 ` Christoph Niedermaier
2022-11-17 10:31 ` [PATCH 2/4] ARM: dts: imx6ull-dhcom: Add DH electronics DHCOM i.MX6ULL SoM and PDK2 board Christoph Niedermaier
` (2 subsequent siblings)
3 siblings, 0 replies; 12+ messages in thread
From: Christoph Niedermaier @ 2022-11-17 10:31 UTC (permalink / raw)
To: linux-arm-kernel
Cc: Christoph Niedermaier, Rob Herring, Krzysztof Kozlowski,
Peng Fan, Shawn Guo, Marek Vasut, Fabio Estevam, NXP Linux Team,
kernel, devicetree, linux-kernel
Add DH electronics DHCOM PDK2, PicoITX and DRC02 boards
for the DHCOM i.MX6ULL SoM.
Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
---
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <festevam@denx.de>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: kernel@dh-electronics.com
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
To: linux-arm-kernel@lists.infradead.org
---
Documentation/devicetree/bindings/arm/fsl.yaml | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml
index 05b5276a0e14..ba7a17d8ec19 100644
--- a/Documentation/devicetree/bindings/arm/fsl.yaml
+++ b/Documentation/devicetree/bindings/arm/fsl.yaml
@@ -644,6 +644,16 @@ properties:
- const: armadeus,imx6ull-opos6ul # OPOS6UL (i.MX6ULL) SoM
- const: fsl,imx6ull
+ - description: i.MX6ULL DHCOM SoM based Boards
+ items:
+ - enum:
+ - dh,imx6ull-dhcom-pdk2
+ - dh,imx6ull-dhcom-picoitx
+ - dh,imx6ull-dhcom-drc02
+ - const: dh,imx6ull-dhcom-som # The DHCOR is soldered on the DHCOM
+ - const: dh,imx6ull-dhcor-som
+ - const: fsl,imx6ull
+
- description: i.MX6ULL PHYTEC phyBOARD-Segin
items:
- enum:
--
2.11.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 1/4] dt-bindings: arm: fsl: Add PDK2, PicoITX and DRC02 boards for the DHCOM i.MX6ULL SoM
@ 2022-11-17 10:31 ` Christoph Niedermaier
0 siblings, 0 replies; 12+ messages in thread
From: Christoph Niedermaier @ 2022-11-17 10:31 UTC (permalink / raw)
To: linux-arm-kernel
Cc: Christoph Niedermaier, Rob Herring, Krzysztof Kozlowski,
Peng Fan, Shawn Guo, Marek Vasut, Fabio Estevam, NXP Linux Team,
kernel, devicetree, linux-kernel
Add DH electronics DHCOM PDK2, PicoITX and DRC02 boards
for the DHCOM i.MX6ULL SoM.
Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
---
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <festevam@denx.de>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: kernel@dh-electronics.com
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
To: linux-arm-kernel@lists.infradead.org
---
Documentation/devicetree/bindings/arm/fsl.yaml | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/fsl.yaml b/Documentation/devicetree/bindings/arm/fsl.yaml
index 05b5276a0e14..ba7a17d8ec19 100644
--- a/Documentation/devicetree/bindings/arm/fsl.yaml
+++ b/Documentation/devicetree/bindings/arm/fsl.yaml
@@ -644,6 +644,16 @@ properties:
- const: armadeus,imx6ull-opos6ul # OPOS6UL (i.MX6ULL) SoM
- const: fsl,imx6ull
+ - description: i.MX6ULL DHCOM SoM based Boards
+ items:
+ - enum:
+ - dh,imx6ull-dhcom-pdk2
+ - dh,imx6ull-dhcom-picoitx
+ - dh,imx6ull-dhcom-drc02
+ - const: dh,imx6ull-dhcom-som # The DHCOR is soldered on the DHCOM
+ - const: dh,imx6ull-dhcor-som
+ - const: fsl,imx6ull
+
- description: i.MX6ULL PHYTEC phyBOARD-Segin
items:
- enum:
--
2.11.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/4] ARM: dts: imx6ull-dhcom: Add DH electronics DHCOM i.MX6ULL SoM and PDK2 board
2022-11-17 10:31 [PATCH 0/4] ARM: dts: imx6ull-dhcom: Add DH electronics DHCOM i.MX6ULL SoM support Christoph Niedermaier
2022-11-17 10:31 ` Christoph Niedermaier
@ 2022-11-17 10:31 ` Christoph Niedermaier
2022-11-17 13:09 ` Krzysztof Kozlowski
2022-11-17 10:31 ` [PATCH 3/4] ARM: dts: imx6ull-dhcom: Add DHCOM based PicoITX board Christoph Niedermaier
2022-11-17 10:31 ` [PATCH 4/4] ARM: dts: imx6ull-dhcom: Add DHSOM based DRC02 board Christoph Niedermaier
3 siblings, 1 reply; 12+ messages in thread
From: Christoph Niedermaier @ 2022-11-17 10:31 UTC (permalink / raw)
To: linux-arm-kernel
Cc: Christoph Niedermaier, Rob Herring, Krzysztof Kozlowski,
Peng Fan, Shawn Guo, Marek Vasut, Fabio Estevam, NXP Linux Team,
kernel
Add support for DH electronics DHCOM SoM and PDK2 rev. 400 carrier
board. This is an SoM with i.MX6ULL and an evaluation kit. The
baseboard provides Ethernet, UART, USB, CAN and optional display.
Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
---
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <festevam@denx.de>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: kernel@dh-electronics.com
To: linux-arm-kernel@lists.infradead.org
---
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/imx6ull-dhcom-pdk2.dts | 219 +++++++++++
arch/arm/boot/dts/imx6ull-dhcom-som.dtsi | 619 +++++++++++++++++++++++++++++++
arch/arm/boot/dts/imx6ull-dhcor-som.dtsi | 247 ++++++++++++
4 files changed, 1086 insertions(+)
create mode 100644 arch/arm/boot/dts/imx6ull-dhcom-pdk2.dts
create mode 100644 arch/arm/boot/dts/imx6ull-dhcom-som.dtsi
create mode 100644 arch/arm/boot/dts/imx6ull-dhcor-som.dtsi
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index ab452c29d629..c4bde7c1ef57 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -739,6 +739,7 @@ dtb-$(CONFIG_SOC_IMX6UL) += \
imx6ull-colibri-wifi-eval-v3.dtb \
imx6ull-colibri-wifi-iris.dtb \
imx6ull-colibri-wifi-iris-v2.dtb \
+ imx6ull-dhcom-pdk2.dtb \
imx6ull-jozacp.dtb \
imx6ull-kontron-bl.dtb \
imx6ull-myir-mys-6ulx-eval.dtb \
diff --git a/arch/arm/boot/dts/imx6ull-dhcom-pdk2.dts b/arch/arm/boot/dts/imx6ull-dhcom-pdk2.dts
new file mode 100644
index 000000000000..4f31081cb550
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ull-dhcom-pdk2.dts
@@ -0,0 +1,219 @@
+// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
+/*
+ * Copyright (C) 2022 DH electronics GmbH
+ *
+ * DHCOM iMX6ULL variant:
+ * DHCM-iMX6ULL-C080-R051-F0409-SPI-E2-CAN2-RTC-WBT-ADC-I-01D2
+ * DHCOR PCB number: 578-200 or newer
+ * DHCOM PCB number: 579-200 or newer
+ * PDK2 PCB number: 516-400 or newer
+ */
+/dts-v1/;
+
+#include "imx6ull-dhcom-som.dtsi"
+
+/ {
+ model = "DH electronics i.MX6ULL DHCOM on Premium Developer Kit (2)";
+ compatible = "dh,imx6ull-dhcom-pdk2", "dh,imx6ull-dhcom-som",
+ "dh,imx6ull-dhcor-som", "fsl,imx6ull";
+
+ clk_ext_audio_codec: clock-codec {
+ #clock-cells = <0>;
+ clock-frequency = <24000000>;
+ compatible = "fixed-clock";
+ };
+
+ display_bl: display-bl {
+ brightness-levels = <0 16 22 30 40 55 75 102 138 188 255>;
+ compatible = "pwm-backlight";
+ default-brightness-level = <8>;
+ enable-gpios = <&gpio5 8 GPIO_ACTIVE_HIGH>; /* GPIO G */
+ power-supply = <®_panel_3v3>;
+ pwms = <&pwm1 0 50000 PWM_POLARITY_INVERTED>;
+ status = "okay";
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ button-0 {
+ gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; /* GPIO A */
+ label = "TA1-GPIO-A";
+ linux,code = <KEY_A>;
+ wakeup-source;
+ };
+
+ button-1 {
+ gpios = <&gpio5 1 GPIO_ACTIVE_LOW>; /* GPIO B */
+ label = "TA2-GPIO-B";
+ linux,code = <KEY_B>;
+ wakeup-source;
+ };
+
+ button-2 {
+ gpios = <&gpio5 2 GPIO_ACTIVE_LOW>; /* GPIO C */
+ label = "TA3-GPIO-C";
+ linux,code = <KEY_C>;
+ wakeup-source;
+ };
+
+ button-3 {
+ gpios = <&gpio5 3 GPIO_ACTIVE_LOW>; /* GPIO D */
+ label = "TA4-GPIO-D";
+ linux,code = <KEY_D>;
+ wakeup-source;
+ };
+ };
+
+ led: led {
+ compatible = "gpio-leds";
+
+ /*
+ * Disable PDK2 LED5, because GPIO E is
+ * already used as touch interrupt.
+ */
+ led-0 {
+ color = <LED_COLOR_ID_GREEN>;
+ default-state = "off";
+ function = LED_FUNCTION_INDICATOR;
+ function-enumerator = <5>; /* PDK2 LED5 */
+ gpios = <&gpio5 4 GPIO_ACTIVE_HIGH>; /* GPIO E */
+ status = "disabled";
+ };
+
+ led-1 {
+ color = <LED_COLOR_ID_GREEN>;
+ default-state = "off";
+ function = LED_FUNCTION_INDICATOR;
+ function-enumerator = <6>; /* PDK2 LED6 */
+ gpios = <&gpio5 7 GPIO_ACTIVE_HIGH>; /* GPIO F */
+ };
+
+ /*
+ * Disable PDK2 LED7, because GPIO H is
+ * already used for WiFi pin WL_REG_ON.
+ */
+ led-2 {
+ color = <LED_COLOR_ID_GREEN>;
+ default-state = "off";
+ function = LED_FUNCTION_INDICATOR;
+ function-enumerator = <7>; /* PDK2 LED7 */
+ gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>; /* GPIO H */
+ status = "disabled";
+ };
+
+ /*
+ * Disable PDK2 LED8, because GPIO I is
+ * already used for BT pin BT_REG_ON.
+ */
+ led-3 {
+ color = <LED_COLOR_ID_GREEN>;
+ default-state = "off";
+ function = LED_FUNCTION_INDICATOR;
+ function-enumerator = <8>; /* PDK2 LED8 */
+ gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>; /* GPIO I */
+ status = "disabled";
+ };
+ };
+
+ panel {
+ backlight = <&display_bl>;
+ compatible = "edt,etm0700g0edh6";
+ power-supply = <®_panel_3v3>;
+
+ port {
+ lcd_panel_in: endpoint {
+ remote-endpoint = <&lcd_display_out>;
+ };
+ };
+ };
+
+ reg_pdk2_24v: regulator-pdk2-24v { /* Filtered supply voltage */
+ compatible = "regulator-fixed";
+ regulator-always-on;
+ regulator-max-microvolt = <24000000>;
+ regulator-min-microvolt = <24000000>;
+ regulator-name = "24V_PDK2";
+ };
+
+ reg_pdk2_3v3: regulator-pdk2-3v3 { /* PDK2 U35 */
+ compatible = "regulator-fixed";
+ regulator-always-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "3V3_PDK2";
+ vin-supply = <®_pdk2_24v>;
+ };
+
+ reg_panel_3v3: regulator-panel-3v3 { /* 560-200 U1 */
+ compatible = "regulator-fixed";
+ regulator-always-on;
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "3V3_PANEL";
+ vin-supply = <®_pdk2_24v>;
+ };
+
+ sound {
+ compatible = "simple-audio-card";
+ simple-audio-card,bitclock-master = <&dailink_master>;
+ simple-audio-card,format = "i2s";
+ simple-audio-card,frame-master = <&dailink_master>;
+ simple-audio-card,name = "sgtl5000";
+ simple-audio-card,routing =
+ "MIC_IN", "Mic Jack",
+ "Mic Jack", "Mic Bias",
+ "LINE_IN", "Line In Jack",
+ "Headphone Jack", "HP_OUT";
+ simple-audio-card,widgets =
+ "Microphone", "Mic Jack",
+ "Line", "Line In Jack",
+ "Headphone", "Headphone Jack";
+
+ simple-audio-card,cpu {
+ sound-dai = <&sai2>;
+ };
+
+ dailink_master: simple-audio-card,codec {
+ clocks = <&clk_ext_audio_codec>;
+ sound-dai = <&sgtl5000>;
+ };
+ };
+};
+
+&i2c2 { /* DHCOM I2C1 */
+ sgtl5000: codec@a {
+ #sound-dai-cells = <0>;
+ clocks = <&clk_ext_audio_codec>;
+ compatible = "fsl,sgtl5000";
+ reg = <0x0a>;
+ VDDA-supply = <®_pdk2_3v3>;
+ VDDIO-supply = <®_pdk2_3v3>;
+ };
+
+ touchscreen@38 {
+ compatible = "edt,edt-ft5x06";
+ interrupt-parent = <&gpio5>;
+ interrupts = <4 IRQ_TYPE_EDGE_FALLING>; /* GPIO E */
+ power-supply = <®_panel_3v3>;
+ reg = <0x38>;
+ };
+};
+
+&lcdif {
+ status = "okay";
+
+ port {
+ lcd_display_out: endpoint {
+ remote-endpoint = <&lcd_panel_in>;
+ };
+ };
+};
+
+&pwm1 {
+ status = "okay";
+};
+
+&sai2 {
+ status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6ull-dhcom-som.dtsi b/arch/arm/boot/dts/imx6ull-dhcom-som.dtsi
new file mode 100644
index 000000000000..aa4def9fdb6e
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ull-dhcom-som.dtsi
@@ -0,0 +1,619 @@
+// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
+/*
+ * Copyright (C) 2022 DH electronics GmbH
+ */
+
+#include "imx6ull-dhcor-som.dtsi"
+
+/ {
+ aliases {
+ /delete-property/ mmc0; /* Avoid double definitions */
+ /delete-property/ mmc1;
+ /delete-property/ spi2;
+ /delete-property/ spi3;
+ i2c0 = &i2c2;
+ i2c1 = &i2c1;
+ mmc2 = &usdhc2;
+ rtc0 = &rtc_i2c;
+ rtc1 = &snvs_rtc;
+ serial0 = &uart1;
+ serial1 = &uart6; /* DHCOM UART2, special hardware required */
+ serial2 = &uart3;
+ serial3 = &uart2; /* Use BT UART always as ttymxc3 */
+ serial4 = &uart4;
+ serial5 = &uart5;
+ spi0 = &ecspi1;
+ spi1 = &ecspi4; /* DHCOM SPI2, special hardware required */
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ reg_ext_3v3_ref: regulator-ext-3v3-ref {
+ compatible = "regulator-fixed";
+ regulator-always-on;
+ regulator-max-microvolt = <3300000>;
+ regulator-min-microvolt = <3300000>;
+ regulator-name = "VCC_3V3_REF";
+ };
+
+ reg_usb_otg1_vbus: regulator-usb-otg1-vbus {
+ compatible = "regulator-fixed";
+ regulator-max-microvolt = <5000000>;
+ regulator-min-microvolt = <5000000>;
+ regulator-name = "usb-otg1-vbus";
+ };
+
+ reg_usb_otg2_vbus: regulator-usb-otg2-vbus {
+ compatible = "regulator-fixed";
+ gpio = <&gpio1 5 GPIO_ACTIVE_LOW>;
+ regulator-max-microvolt = <5000000>;
+ regulator-min-microvolt = <5000000>;
+ regulator-name = "usb-otg2-vbus";
+ };
+
+ /* SoM with WiFi/BT: WiFi pin WL_REG_ON is connected to a DHCOM GPIO */
+ /omit-if-no-ref/ usdhc1_pwrseq: usdhc1-pwrseq {
+ compatible = "mmc-pwrseq-simple";
+ reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; /* GPIO H */
+ };
+};
+
+/* SoM with WiFi/BT: BT pin BT_REG_ON is connected to a DHCOM GPIO */
+&bluetooth {
+ shutdown-gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>; /* GPIO I */
+};
+
+&can1 {
+ pinctrl-0 = <&pinctrl_flexcan1>;
+ pinctrl-names = "default";
+ status = "okay";
+};
+
+/*
+ * The signals for CAN2 TX and RX are routed to the DHCOM UART1 RTS/CTS pins.
+ * Only if this pins are used as CAN interface enable it on board layer.
+ */
+&can2 {
+ pinctrl-0 = <&pinctrl_flexcan2>;
+ pinctrl-names = "default";
+};
+
+&ecspi1 { /* DHCOM SPI1 */
+ cs-gpios = <&gpio3 26 GPIO_ACTIVE_LOW>;
+ pinctrl-0 = <&pinctrl_ecspi1>;
+ pinctrl-names = "default";
+ status = "okay";
+};
+
+/*
+ * Special hardware required that uses the pins of FEC2. Therefore this SPI
+ * interface can only be used if FEC2 is disabled.
+ */
+&ecspi4 { /* DHCOM SPI2 */
+ cs-gpios = <&gpio2 15 GPIO_ACTIVE_LOW>;
+ pinctrl-0 = <&pinctrl_ecspi4>;
+ pinctrl-names = "default";
+};
+
+&fec1 { /* DHCOM ETH1 */
+ phy-handle = <&mdio2_phy0>;
+ phy-mode = "rmii";
+ pinctrl-0 = <&pinctrl_fec1>;
+ pinctrl-names = "default";
+ status = "okay";
+};
+
+&fec2 { /* DHCOM ETH2 */
+ phy-handle = <&mdio2_phy1>;
+ phy-mode = "rmii";
+ pinctrl-0 = <&pinctrl_fec2>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ mdio2_phy0: ethernet-phy@0 { /* SMSC LAN8710Ai */
+ clock-names = "rmii-ref";
+ clocks = <&clks IMX6UL_CLK_ENET_REF>;
+ compatible = "ethernet-phy-id0007.c0f0",
+ "ethernet-phy-ieee802.3-c22";
+ interrupt-parent = <&gpio5>;
+ interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
+ pinctrl-0 = <&pinctrl_fec1_phy &pinctrl_snvs_fec1_phy>;
+ pinctrl-names = "default";
+ reg = <0>;
+ reset-assert-us = <500>;
+ reset-deassert-us = <500>;
+ reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
+ smsc,disable-energy-detect; /* Make plugin detection reliable */
+ };
+
+ mdio2_phy1: ethernet-phy@1 { /* SMSC LAN8710Ai */
+ clock-names = "rmii-ref";
+ clocks = <&clks IMX6UL_CLK_ENET2_REF>;
+ compatible = "ethernet-phy-id0007.c0f0",
+ "ethernet-phy-ieee802.3-c22";
+ interrupt-parent = <&gpio5>;
+ interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
+ pinctrl-0 = <&pinctrl_fec2_phy &pinctrl_snvs_fec2_phy>;
+ pinctrl-names = "default";
+ reg = <1>;
+ reset-assert-us = <500>;
+ reset-deassert-us = <500>;
+ reset-gpios = <&gpio3 24 GPIO_ACTIVE_LOW>;
+ smsc,disable-energy-detect; /* Make plugin detection reliable */
+ };
+ };
+};
+
+&gpio1 {
+ gpio-line-names =
+ "", "", "", "",
+ "", "", "", "",
+ "", "", "", "DHCOM-INT",
+ "", "", "", "",
+ "", "", "DHCOM-I", "",
+ "", "", "", "",
+ "", "", "", "",
+ "", "", "", "";
+ pinctrl-0 = <&pinctrl_spi1_switch
+ &pinctrl_dhcom_i &pinctrl_dhcom_int>;
+ pinctrl-names = "default";
+};
+
+&gpio4 {
+ gpio-line-names =
+ "", "", "", "",
+ "", "", "", "",
+ "", "", "", "",
+ "", "", "", "",
+ "", "DHCOM-L", "DHCOM-K", "DHCOM-M",
+ "DHCOM-J", "DHCOM-U", "DHCOM-T", "DHCOM-S",
+ "DHCOM-R", "DHCOM-Q", "DHCOM-P", "DHCOM-O",
+ "DHCOM-N", "", "", "";
+ pinctrl-0 = <&pinctrl_dhcom_j &pinctrl_dhcom_k
+ &pinctrl_dhcom_l &pinctrl_dhcom_m
+ &pinctrl_dhcom_n &pinctrl_dhcom_o
+ &pinctrl_dhcom_p &pinctrl_dhcom_q
+ &pinctrl_dhcom_r &pinctrl_dhcom_s
+ &pinctrl_dhcom_t &pinctrl_dhcom_u>;
+ pinctrl-names = "default";
+};
+
+&gpio5 {
+ gpio-line-names =
+ "DHCOM-A", "DHCOM-B", "DHCOM-C", "DHCOM-D",
+ "DHCOM-E", "", "", "DHCOM-F",
+ "DHCOM-G", "DHCOM-H", "", "",
+ "", "", "", "",
+ "", "", "", "",
+ "", "", "", "",
+ "", "", "", "",
+ "", "", "", "";
+ pinctrl-0 = <&pinctrl_snvs_dhcom_a &pinctrl_snvs_dhcom_b
+ &pinctrl_snvs_dhcom_c &pinctrl_snvs_dhcom_d
+ &pinctrl_snvs_dhcom_e &pinctrl_snvs_dhcom_f
+ &pinctrl_snvs_dhcom_g &pinctrl_snvs_dhcom_h>;
+ pinctrl-names = "default";
+};
+
+&i2c1 { /* DHCOM I2C2 */
+ rtc_i2c: rtc@32 {
+ compatible = "microcrystal,rv8803";
+ reg = <0x32>;
+ };
+
+ eeprom@50 { /* Microchip 24AA025E48T-I/OT containing MAC for DHCOM ETH1 */
+ compatible = "atmel,24c02";
+ pagesize = <16>;
+ reg = <0x50>;
+ };
+
+ adc@51 { /* TI ADC101C027 */
+ compatible = "ti,adc101c";
+ reg = <0x51>;
+ vref-supply = <®_ext_3v3_ref>;
+ };
+
+ adc@52 { /* TI ADC101C027 */
+ compatible = "ti,adc101c";
+ reg = <0x52>;
+ vref-supply = <®_ext_3v3_ref>;
+ };
+
+ eeprom@53 { /* Microchip 24AA025E48T-I/OT containing MAC for DHCOM ETH2 */
+ compatible = "atmel,24c02";
+ pagesize = <16>;
+ reg = <0x53>;
+ };
+};
+
+&i2c2 { /* DHCOM I2C1 */
+ clock-frequency = <100000>;
+ pinctrl-0 = <&pinctrl_i2c2>;
+ pinctrl-1 = <&pinctrl_i2c2_gpio>;
+ pinctrl-names = "default", "gpio";
+ scl-gpios = <&gpio1 30 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ sda-gpios = <&gpio1 31 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ status = "okay";
+};
+
+&lcdif {
+ pinctrl-0 = <&pinctrl_lcdif>;
+ pinctrl-names = "default";
+};
+
+&pwm1 {
+ pinctrl-0 = <&pinctrl_pwm1>;
+ pinctrl-names = "default";
+};
+
+&sai2 {
+ assigned-clock-rates = <320000000>;
+ assigned-clocks = <&clks IMX6UL_CLK_PLL3_PFD2>;
+ pinctrl-0 = <&pinctrl_sai2>;
+ pinctrl-names = "default";
+};
+
+&tsc {
+ measure-delay-time = <0xffff>;
+ pinctrl-0 = <&pinctrl_tsc>;
+ pinctrl-names = "default";
+ pre-charge-time = <0xfff>;
+ touchscreen-average-samples = <32>;
+ xnur-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;
+};
+
+&uart1 { /* DHCOM UART1 */
+ pinctrl-0 = <&pinctrl_uart1>;
+ pinctrl-names = "default";
+ status = "okay";
+};
+
+/*
+ * Special hardware required that uses DHCOM GPIO pins for DHCOM UART2.
+ * Therefore this UART interface can only be used if DHCOM GPIOs J/K/L/M are
+ * removed from GPIO hog muxing.
+ */
+&uart6 { /* DHCOM UART2 (alternative) */
+ pinctrl-0 = <&pinctrl_uart6>;
+ pinctrl-names = "default";
+ uart-has-rtscts;
+};
+
+&usbotg1 {
+ adp-disable;
+ disable-over-current;
+ dr_mode = "otg";
+ hnp-disable;
+ pinctrl-0 = <&pinctrl_usbotg1>;
+ pinctrl-names = "default";
+ srp-disable;
+ vbus-supply = <®_usb_otg1_vbus>;
+ status = "okay";
+};
+
+&usbotg2 {
+ disable-over-current; /* Overcurrent pin is used for TSC */
+ dr_mode = "host";
+ pinctrl-0 = <&pinctrl_usbotg2>;
+ pinctrl-names = "default";
+ tpl-support;
+ vbus-supply = <®_usb_otg2_vbus>;
+ status = "okay";
+};
+
+&usbphy1 {
+ fsl,tx-d-cal = <106>;
+};
+
+&usbphy2 {
+ fsl,tx-d-cal = <106>;
+};
+
+&usdhc1 { /* WiFi on LGA */
+ mmc-pwrseq = <&usdhc1_pwrseq>;
+};
+
+&usdhc2 { /* eMMC on module */
+ bus-width = <8>;
+ no-1-8-v;
+ non-removable;
+ pinctrl-0 = <&pinctrl_usdhc2>;
+ pinctrl-names = "default";
+ vmmc-supply = <&vcc_3v3>;
+ vqmmc-supply = <&vcc_3v3>;
+ status = "okay";
+};
+
+&iomuxc {
+ /* DHCOM GPIOs I..U + INT_HIGHEST_PRIORITY */
+ pinctrl_dhcom_i: dhcom-i-grp {
+ fsl,pins = <MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0x400120b0>;
+ };
+
+ pinctrl_dhcom_j: dhcom-j-grp {
+ fsl,pins = <MX6UL_PAD_CSI_HSYNC__GPIO4_IO20 0x400120b0>;
+ };
+
+ pinctrl_dhcom_k: dhcom-k-grp {
+ fsl,pins = <MX6UL_PAD_CSI_PIXCLK__GPIO4_IO18 0x400120b0>;
+ };
+
+ pinctrl_dhcom_l: dhcom-l-grp {
+ fsl,pins = <MX6UL_PAD_CSI_MCLK__GPIO4_IO17 0x400120b0>;
+ };
+
+ pinctrl_dhcom_m: dhcom-m-grp {
+ fsl,pins = <MX6UL_PAD_CSI_VSYNC__GPIO4_IO19 0x400120b0>;
+ };
+
+ pinctrl_dhcom_n: dhcom-n-grp {
+ fsl,pins = <MX6UL_PAD_CSI_DATA07__GPIO4_IO28 0x400120b0>;
+ };
+
+ pinctrl_dhcom_o: dhcom-o-grp {
+ fsl,pins = <MX6UL_PAD_CSI_DATA06__GPIO4_IO27 0x400120b0>;
+ };
+
+ pinctrl_dhcom_p: dhcom-p-grp {
+ fsl,pins = <MX6UL_PAD_CSI_DATA05__GPIO4_IO26 0x400120b0>;
+ };
+
+ pinctrl_dhcom_q: dhcom-q-grp {
+ fsl,pins = <MX6UL_PAD_CSI_DATA04__GPIO4_IO25 0x400120b0>;
+ };
+
+ pinctrl_dhcom_r: dhcom-r-grp {
+ fsl,pins = <MX6UL_PAD_CSI_DATA03__GPIO4_IO24 0x400120b0>;
+ };
+
+ pinctrl_dhcom_s: dhcom-s-grp {
+ fsl,pins = <MX6UL_PAD_CSI_DATA02__GPIO4_IO23 0x400120b0>;
+ };
+
+ pinctrl_dhcom_t: dhcom-t-grp {
+ fsl,pins = <MX6UL_PAD_CSI_DATA01__GPIO4_IO22 0x400120b0>;
+ };
+
+ pinctrl_dhcom_u: dhcom-u-grp {
+ fsl,pins = <MX6UL_PAD_CSI_DATA00__GPIO4_IO21 0x400120b0>;
+ };
+
+ pinctrl_dhcom_int: dhcom-int-grp {
+ fsl,pins = <MX6UL_PAD_JTAG_TMS__GPIO1_IO11 0x400120b0>;
+ };
+
+ pinctrl_ecspi1: ecspi1-grp {
+ fsl,pins = <
+ MX6UL_PAD_LCD_DATA23__ECSPI1_MISO 0x100b1
+ MX6UL_PAD_LCD_DATA22__ECSPI1_MOSI 0x100b1
+ MX6UL_PAD_LCD_DATA20__ECSPI1_SCLK 0x100b1
+ MX6UL_PAD_LCD_DATA21__GPIO3_IO26 0x1b0b0 /* SS0 */
+ >;
+ };
+
+ pinctrl_ecspi4: ecspi4-grp {
+ fsl,pins = <
+ MX6UL_PAD_ENET2_TX_CLK__ECSPI4_MISO 0x100b1
+ MX6UL_PAD_ENET2_TX_EN__ECSPI4_MOSI 0x100b1
+ MX6UL_PAD_ENET2_TX_DATA1__ECSPI4_SCLK 0x100b1
+ MX6UL_PAD_ENET2_RX_ER__GPIO2_IO15 0x1b0b0 /* SS0 */
+ >;
+ };
+
+ pinctrl_fec1: fec1-grp {
+ fsl,pins = <
+ /* FEC1 uses MDIO bus from FEC2 */
+ MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0
+ MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0
+ MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
+ MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
+ MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b010
+ MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b010
+ MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b010
+ MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b010
+ >;
+ };
+
+ pinctrl_fec1_phy: fec1-phy-grp {
+ fsl,pins = <
+ MX6UL_PAD_LCD_DATA18__GPIO3_IO23 0xb0 /* SMSC PHY reset */
+ >;
+ };
+
+ pinctrl_fec2: fec2-grp {
+ fsl,pins = <
+ MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x1b0b0
+ MX6UL_PAD_GPIO1_IO06__ENET2_MDIO 0x1b0b0
+ MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x1b0b0
+ MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x1b0b0
+ MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0
+ MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0
+ MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x1b010
+ MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b010
+ MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b010
+ MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b010
+ >;
+ };
+
+ pinctrl_fec2_phy: fec2-phy-grp {
+ fsl,pins = <
+ MX6UL_PAD_LCD_DATA19__GPIO3_IO24 0xb0 /* SMSC PHY reset */
+ >;
+ };
+
+ pinctrl_flexcan1: flexcan1-grp {
+ fsl,pins = <
+ MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x1b020
+ MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x1b020
+ >;
+ };
+
+ pinctrl_flexcan2: flexcan2-grp {
+ fsl,pins = <
+ MX6UL_PAD_UART2_RTS_B__FLEXCAN2_RX 0x1b020
+ MX6UL_PAD_UART2_CTS_B__FLEXCAN2_TX 0x1b020
+ >;
+ };
+
+ pinctrl_i2c2: i2c2-grp {
+ fsl,pins = <
+ MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x4001b8b0
+ MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x4001b8b0
+ >;
+ };
+
+ pinctrl_i2c2_gpio: i2c2-gpio-grp {
+ fsl,pins = <
+ MX6UL_PAD_UART5_TX_DATA__GPIO1_IO30 0x4001b8b0
+ MX6UL_PAD_UART5_RX_DATA__GPIO1_IO31 0x4001b8b0
+ >;
+ };
+
+ pinctrl_lcdif: lcdif-grp {
+ fsl,pins = <
+ MX6UL_PAD_LCD_CLK__LCDIF_CLK 0x79
+ MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE 0x79
+ MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC 0x79
+ MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC 0x79
+ MX6UL_PAD_LCD_DATA00__LCDIF_DATA00 0x79
+ MX6UL_PAD_LCD_DATA01__LCDIF_DATA01 0x79
+ MX6UL_PAD_LCD_DATA02__LCDIF_DATA02 0x79
+ MX6UL_PAD_LCD_DATA03__LCDIF_DATA03 0x79
+ MX6UL_PAD_LCD_DATA04__LCDIF_DATA04 0x79
+ MX6UL_PAD_LCD_DATA05__LCDIF_DATA05 0x79
+ MX6UL_PAD_LCD_DATA06__LCDIF_DATA06 0x79
+ MX6UL_PAD_LCD_DATA07__LCDIF_DATA07 0x79
+ MX6UL_PAD_LCD_DATA08__LCDIF_DATA08 0x79
+ MX6UL_PAD_LCD_DATA09__LCDIF_DATA09 0x79
+ MX6UL_PAD_LCD_DATA10__LCDIF_DATA10 0x79
+ MX6UL_PAD_LCD_DATA11__LCDIF_DATA11 0x79
+ MX6UL_PAD_LCD_DATA12__LCDIF_DATA12 0x79
+ MX6UL_PAD_LCD_DATA13__LCDIF_DATA13 0x79
+ MX6UL_PAD_LCD_DATA14__LCDIF_DATA14 0x79
+ MX6UL_PAD_LCD_DATA15__LCDIF_DATA15 0x79
+ MX6UL_PAD_LCD_DATA16__LCDIF_DATA16 0x79
+ MX6UL_PAD_LCD_DATA17__LCDIF_DATA17 0x79
+ >;
+ };
+
+ pinctrl_pwm1: pwm1-grp {
+ fsl,pins = <
+ MX6UL_PAD_GPIO1_IO08__PWM1_OUT 0x110b0
+ >;
+ };
+
+ pinctrl_sai2: sai2-grp {
+ fsl,pins = <
+ MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x130b0
+ MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x17088
+ MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x17088
+ MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x120b0
+ >;
+ };
+
+ pinctrl_tsc: tsc-grp {
+ fsl,pins = <
+ MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0xb0
+ MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0xb0
+ MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0xb0
+ MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0xb0
+ >;
+ };
+
+ pinctrl_uart1: uart1-grp {
+ fsl,pins = <
+ MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
+ MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1
+ >;
+ };
+
+ pinctrl_uart6: uart6-grp {
+ fsl,pins = <
+ MX6UL_PAD_CSI_MCLK__UART6_DCE_TX 0x1b0b1
+ MX6UL_PAD_CSI_PIXCLK__UART6_DCE_RX 0x1b0b1
+ MX6UL_PAD_CSI_VSYNC__UART6_DCE_RTS 0x1b0b1
+ MX6UL_PAD_CSI_HSYNC__UART6_DCE_CTS 0x1b0b1
+ >;
+ };
+
+ pinctrl_usbotg1: usbotg1-grp {
+ fsl,pins = <
+ MX6UL_PAD_GPIO1_IO00__ANATOP_OTG1_ID 0x17059
+ >;
+ };
+
+ pinctrl_usbotg2: usbotg2-grp {
+ fsl,pins = <
+ MX6UL_PAD_GPIO1_IO05__GPIO1_IO05 0x120b0
+ >;
+ };
+
+ pinctrl_usdhc2: usdhc2-grp {
+ fsl,pins = <
+ MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x10069
+ MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x17059
+ MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x17059
+ MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x17059
+ MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x17059
+ MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17059
+ MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x17059
+ MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x17059
+ MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x17059
+ MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x17059
+ MX6UL_PAD_NAND_ALE__USDHC2_RESET_B 0x17059 /* SD2 Reset */
+ >;
+ };
+};
+
+&iomuxc_snvs {
+ /* DHCOM GPIOs A..H */
+ pinctrl_snvs_dhcom_a: snvs-dhcom-a-grp {
+ fsl,pins = <MX6ULL_PAD_SNVS_TAMPER0__GPIO5_IO00 0x400120b0>;
+ };
+
+ pinctrl_snvs_dhcom_b: snvs-dhcom-b-grp {
+ fsl,pins = <MX6ULL_PAD_SNVS_TAMPER1__GPIO5_IO01 0x400120b0>;
+ };
+
+ pinctrl_snvs_dhcom_c: snvs-dhcom-c-grp {
+ fsl,pins = <MX6ULL_PAD_SNVS_TAMPER2__GPIO5_IO02 0x400120b0>;
+ };
+
+ pinctrl_snvs_dhcom_d: snvs-dhcom-d-grp {
+ fsl,pins = <MX6ULL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x400120b0>;
+ };
+
+ pinctrl_snvs_dhcom_e: snvs-dhcom-e-grp {
+ fsl,pins = <MX6ULL_PAD_SNVS_TAMPER4__GPIO5_IO04 0x400120b0>;
+ };
+
+ pinctrl_snvs_dhcom_f: snvs-dhcom-f-grp {
+ fsl,pins = <MX6ULL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x400120b0>;
+ };
+
+ pinctrl_snvs_dhcom_g: snvs-dhcom-g-grp {
+ fsl,pins = <MX6ULL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x400120b0>;
+ };
+
+ pinctrl_snvs_dhcom_h: snvs-dhcom-h-grp {
+ fsl,pins = <MX6ULL_PAD_SNVS_TAMPER9__GPIO5_IO09 0x400120b0>;
+ };
+
+ pinctrl_snvs_fec1_phy: snvs-fec1-phy-grp {
+ fsl,pins = <
+ MX6ULL_PAD_SNVS_TAMPER5__GPIO5_IO05 0xb1 /* SMSC PHY Int */
+ >;
+ };
+
+ pinctrl_snvs_fec2_phy: snvs-fec2-phy-grp {
+ fsl,pins = <
+ MX6ULL_PAD_SNVS_TAMPER6__GPIO5_IO06 0xb1 /* SMSC PHY Int */
+ >;
+ };
+};
diff --git a/arch/arm/boot/dts/imx6ull-dhcor-som.dtsi b/arch/arm/boot/dts/imx6ull-dhcor-som.dtsi
new file mode 100644
index 000000000000..4155458897e2
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ull-dhcor-som.dtsi
@@ -0,0 +1,247 @@
+// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
+/*
+ * Copyright (C) 2022 DH electronics GmbH
+ */
+
+#include <dt-bindings/clock/imx6ul-clock.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pwm/pwm.h>
+#include "imx6ull.dtsi"
+
+/ {
+ memory@80000000 { /* Appropriate memory size will be filled by U-Boot */
+ device_type = "memory";
+ reg = <0x80000000 0>;
+ };
+};
+
+&cpu0 {
+ fsl,soc-operating-points = <
+ /* KHz uV */
+ 900000 1250000
+ 792000 1250000
+ 528000 1175000
+ 396000 1175000
+ 198000 1175000
+ >;
+ operating-points = <
+ /* kHz uV */
+ 900000 1275000
+ 792000 1250000
+ 528000 1175000
+ 396000 1025000
+ 198000 950000
+ >;
+};
+
+&gpio1 {
+ pinctrl-0 = <&pinctrl_spi1_switch>;
+ pinctrl-names = "default";
+ /*
+ * Pin SPI_BOOT_FLASH_EN (GPIO 1.9) is a switch for either using the
+ * DHCOM SPI1 interface or accessing the SPI bootflash. Both using
+ * ecspi1, but muxed to different pins. The DHCOM SPI1 interface uses
+ * the pins PAD_LCD_DATA21..23 and the SPI bootflash uses the pins
+ * PAD_CSI_DATA04..07. If the SPI bootflash is enabled the pins for
+ * DHCOM GPIOs N/O/P/Q/R/S/T/U aren't usable anymore, because they
+ * are used for the bus interface to the SPI bootflash. The GPIOs are
+ * disconnected by a buffer which is also controlled via the pin
+ * SPI_BOOT_FLASH_EN. Therefore the access to the bootflash is a
+ * special case and is disabled by setting GPIO 1.9 to high.
+ */
+ spi1-switch-hog {
+ gpio-hog;
+ gpios = <9 0>;
+ output-high;
+ line-name = "spi1-switch";
+ };
+};
+
+&i2c1 {
+ clock-frequency = <100000>;
+ pinctrl-0 = <&pinctrl_i2c1>;
+ pinctrl-1 = <&pinctrl_i2c1_gpio>;
+ pinctrl-names = "default", "gpio";
+ scl-gpios = <&gpio1 28 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ sda-gpios = <&gpio1 29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ status = "okay";
+
+ pmic@58 {
+ compatible = "dlg,da9061";
+ reg = <0x58>;
+
+ onkey {
+ compatible = "dlg,da9061-onkey", "dlg,da9062-onkey";
+ status = "disabled";
+ };
+
+ regulators {
+ vdd_soc_in_1v4: buck1 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-max-microvolt = <1400000>;
+ regulator-min-microvolt = <1400000>;
+ regulator-name = "vdd_soc_in_1v4";
+ };
+
+ vcc_3v3: buck2 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-max-microvolt = <3300000>;
+ regulator-min-microvolt = <3300000>;
+ regulator-name = "vcc_3v3";
+ };
+
+ /*
+ * The current DRR3 memory can be supplied with a
+ * voltage of either 1.35V or 1.5V. For reasons of
+ * backward compatibility to only 1.5V DDR3 memory,
+ * the voltage is set to 1.5V.
+ */
+ vcc_ddr_1v35: buck3 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-max-microvolt = <1500000>;
+ regulator-min-microvolt = <1500000>;
+ regulator-name = "vcc_ddr_1v35";
+ };
+
+ vcc_2v5: ldo1 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-max-microvolt = <2500000>;
+ regulator-min-microvolt = <2500000>;
+ regulator-name = "vcc_2v5";
+ };
+
+ vdd_snvs_in_3v3: ldo2 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-max-microvolt = <3300000>;
+ regulator-min-microvolt = <3300000>;
+ regulator-name = "vdd_snvs_in_3v3";
+ };
+
+ vcc_1v8: ldo3 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-max-microvolt = <1800000>;
+ regulator-min-microvolt = <1800000>;
+ regulator-name = "vcc_1v8";
+ };
+
+ vcc_1v2: ldo4 {
+ regulator-always-on;
+ regulator-boot-on;
+ regulator-max-microvolt = <1200000>;
+ regulator-min-microvolt = <1200000>;
+ regulator-name = "vcc_1v2";
+ };
+ };
+
+ thermal {
+ compatible = "dlg,da9061-thermal", "dlg,da9062-thermal";
+ status = "disabled";
+ };
+
+ watchdog {
+ compatible = "dlg,da9061-watchdog", "dlg,da9062-watchdog";
+ status = "disabled";
+ };
+ };
+};
+
+&ocotp {
+ read-only; /* Don't get write access by default */
+};
+
+®_arm {
+ vin-supply = <&vdd_soc_in_1v4>;
+};
+
+®_soc {
+ vin-supply = <&vdd_soc_in_1v4>;
+};
+
+&uart2 { /* BT on LGA (BT_REG_ON is connected to LGA pin E1) */
+ pinctrl-0 = <&pinctrl_uart2>;
+ pinctrl-names = "default";
+ uart-has-rtscts;
+ status = "okay";
+
+ /*
+ * Actually, the maximum speed of the chip is 4MBdps, but there are
+ * limitations that prevent this speed. It hasn't yet been figured out
+ * what the reason for this is. Currently, the maximum speed of 3MBdps
+ * can be used without any problems. If the limitation can be overcome,
+ * the speed can be increased accordingly.
+ */
+ bluetooth: bluetooth { /* muRata 1DX */
+ compatible = "brcm,bcm43430a1-bt";
+ max-speed = <3000000>;
+ vbat-supply = <&vcc_3v3>;
+ vddio-supply = <&vcc_3v3>;
+ };
+};
+
+&usdhc1 { /* WiFi on LGA (WL_REG_ON is connected to LGA pin E3) */
+ #address-cells = <1>;
+ #size-cells = <0>;
+ bus-width = <4>;
+ no-1-8-v;
+ non-removable;
+ keep-power-in-suspend;
+ pinctrl-0 = <&pinctrl_usdhc1_wifi>;
+ pinctrl-names = "default";
+ wakeup-source;
+ status = "okay";
+
+ brcmf: wifi@1 { /* muRata 1DX */
+ compatible = "brcm,bcm4329-fmac";
+ reg = <1>;
+ };
+};
+
+&iomuxc {
+ pinctrl_i2c1: i2c1-grp {
+ fsl,pins = <
+ MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
+ MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0
+ >;
+ };
+
+ pinctrl_i2c1_gpio: i2c1-gpio-grp {
+ fsl,pins = <
+ MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28 0x4001b8b0
+ MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x4001b8b0
+ >;
+ };
+
+ pinctrl_spi1_switch: spi1-switch-grp {
+ fsl,pins = <
+ MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x120b0 /* SPI_BOOT_FLASH_EN */
+ >;
+ };
+
+ pinctrl_uart2: uart2-grp {
+ fsl,pins = <
+ MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1
+ MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1
+ MX6UL_PAD_UART3_RX_DATA__UART2_DCE_RTS 0x1b0b1
+ MX6UL_PAD_UART3_TX_DATA__UART2_DCE_CTS 0x1b0b1
+ >;
+ };
+
+ pinctrl_usdhc1_wifi: usdhc1-wifi-grp {
+ fsl,pins = <
+ MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x1b0b0
+ MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10010
+ MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x1b0b0
+ MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x1b0b0
+ MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x1b0b0
+ MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x1b0b0
+ >;
+ };
+};
--
2.11.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 3/4] ARM: dts: imx6ull-dhcom: Add DHCOM based PicoITX board
2022-11-17 10:31 [PATCH 0/4] ARM: dts: imx6ull-dhcom: Add DH electronics DHCOM i.MX6ULL SoM support Christoph Niedermaier
2022-11-17 10:31 ` Christoph Niedermaier
2022-11-17 10:31 ` [PATCH 2/4] ARM: dts: imx6ull-dhcom: Add DH electronics DHCOM i.MX6ULL SoM and PDK2 board Christoph Niedermaier
@ 2022-11-17 10:31 ` Christoph Niedermaier
2022-11-17 10:31 ` [PATCH 4/4] ARM: dts: imx6ull-dhcom: Add DHSOM based DRC02 board Christoph Niedermaier
3 siblings, 0 replies; 12+ messages in thread
From: Christoph Niedermaier @ 2022-11-17 10:31 UTC (permalink / raw)
To: linux-arm-kernel
Cc: Christoph Niedermaier, Rob Herring, Krzysztof Kozlowski,
Peng Fan, Shawn Guo, Marek Vasut, Fabio Estevam, NXP Linux Team,
kernel
Add DT for DH PicoITX unit, which is a bare-bones carrier board for
the DHCOM. The board has ethernet port, USB, CAN, LED and a custom
board-to-board expansion connector. For this board a DHCOM i.MX6ULL
SoM configuration without WiFi/BT is used. The interface is used
for the SD card instead. Make this adjustment by using a separate DT
include file.
Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
---
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <festevam@denx.de>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: kernel@dh-electronics.com
To: linux-arm-kernel@lists.infradead.org
---
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/imx6ull-dhcom-picoitx.dts | 101 +++++++++++++++++++++
.../arm/boot/dts/imx6ull-dhcom-som-cfg-sdcard.dtsi | 96 ++++++++++++++++++++
3 files changed, 198 insertions(+)
create mode 100644 arch/arm/boot/dts/imx6ull-dhcom-picoitx.dts
create mode 100644 arch/arm/boot/dts/imx6ull-dhcom-som-cfg-sdcard.dtsi
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index c4bde7c1ef57..9ae8af0c1459 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -740,6 +740,7 @@ dtb-$(CONFIG_SOC_IMX6UL) += \
imx6ull-colibri-wifi-iris.dtb \
imx6ull-colibri-wifi-iris-v2.dtb \
imx6ull-dhcom-pdk2.dtb \
+ imx6ull-dhcom-picoitx.dtb \
imx6ull-jozacp.dtb \
imx6ull-kontron-bl.dtb \
imx6ull-myir-mys-6ulx-eval.dtb \
diff --git a/arch/arm/boot/dts/imx6ull-dhcom-picoitx.dts b/arch/arm/boot/dts/imx6ull-dhcom-picoitx.dts
new file mode 100644
index 000000000000..36ab94bff047
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ull-dhcom-picoitx.dts
@@ -0,0 +1,101 @@
+// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
+/*
+ * Copyright (C) 2022 DH electronics GmbH
+ *
+ * DHCOM iMX6ULL variant:
+ * DHCM-iMX6ULL-C080-R051-F0409-SPI-E2-CAN2-SD-RTC-ADC-I-01D2
+ * DHCOR PCB number: 578-200 or newer
+ * DHCOM PCB number: 579-200 or newer
+ * PicoITX PCB number: 487-600 or newer
+ */
+/dts-v1/;
+
+#include "imx6ull-dhcom-som.dtsi"
+#include "imx6ull-dhcom-som-cfg-sdcard.dtsi"
+
+/ {
+ model = "DH electronics i.MX6ULL DHCOM on PicoITX";
+ compatible = "dh,imx6ull-dhcom-picoitx", "dh,imx6ull-dhcom-som",
+ "dh,imx6ull-dhcor-som", "fsl,imx6ull";
+
+ led {
+ compatible = "gpio-leds";
+
+ led-0 {
+ color = <LED_COLOR_ID_YELLOW>;
+ default-state = "off";
+ function = LED_FUNCTION_INDICATOR;
+ gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>; /* GPIO I */
+ };
+ };
+};
+
+&fec1 {
+ phy-handle = <&mdio1_phy0>;
+
+ mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ mdio1_phy0: ethernet-phy@0 { /* SMSC LAN8710Ai */
+ clock-names = "rmii-ref";
+ clocks = <&clks IMX6UL_CLK_ENET_REF>;
+ compatible = "ethernet-phy-id0007.c0f0",
+ "ethernet-phy-ieee802.3-c22";
+ interrupt-parent = <&gpio5>;
+ interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
+ pinctrl-0 = <&pinctrl_fec1_phy &pinctrl_snvs_fec1_phy>;
+ pinctrl-names = "default";
+ reg = <0>;
+ reset-assert-us = <500>;
+ reset-deassert-us = <500>;
+ reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
+ smsc,disable-energy-detect; /* Make plugin detection reliable */
+ };
+ };
+};
+
+&fec2 {
+ status = "disabled";
+};
+
+&gpio4 {
+ gpio-line-names =
+ "", "", "", "",
+ "", "", "", "",
+ "", "", "", "",
+ "", "", "", "",
+ "", "PicoITX-HW2", "PicoITX-HW1", "DHCOM-M",
+ "PicoITX-HW0", "DHCOM-U", "DHCOM-T", "DHCOM-S",
+ "DHCOM-R", "DHCOM-Q", "DHCOM-P", "DHCOM-O",
+ "DHCOM-N", "", "", "";
+};
+
+&gpio5 {
+ gpio-line-names =
+ "DHCOM-A", "DHCOM-B", "PicoITX-In2", "PicoITX-Out2",
+ "PicoITX-In1", "", "", "PicoITX-Out1",
+ "DHCOM-G", "DHCOM-H", "", "",
+ "", "", "", "",
+ "", "", "", "",
+ "", "", "", "",
+ "", "", "", "",
+ "", "", "", "";
+};
+
+&iomuxc {
+ pinctrl_fec1: fec1-grp {
+ fsl,pins = <
+ MX6UL_PAD_GPIO1_IO07__ENET1_MDC 0x1b0b0
+ MX6UL_PAD_GPIO1_IO06__ENET1_MDIO 0x1b0b0
+ MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0
+ MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0
+ MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
+ MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
+ MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b010
+ MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b010
+ MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b010
+ MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b010
+ >;
+ };
+};
diff --git a/arch/arm/boot/dts/imx6ull-dhcom-som-cfg-sdcard.dtsi b/arch/arm/boot/dts/imx6ull-dhcom-som-cfg-sdcard.dtsi
new file mode 100644
index 000000000000..e20495894f91
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ull-dhcom-som-cfg-sdcard.dtsi
@@ -0,0 +1,96 @@
+// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
+/*
+ * Copyright (C) 2022 DH electronics GmbH
+ */
+
+/*
+ * Special SoM configuration: SD card
+ *
+ * Enabled: Micro SD card on module or
+ * external SD card via DHCOM depends on hardware variant
+ * GPIO H and GPIO I will be available
+ * DHCOM UART2 will be available
+ * Disabled: WiFi and BT
+ */
+
+/*
+ * To use usdhc1 as SD card, the WiFi node must be deleted.
+ * BT is also not available, so remove BT from the UART node.
+ */
+/delete-node/ &brcmf;
+/delete-node/ &bluetooth;
+
+/ {
+ aliases {
+ mmc1 = &usdhc1;
+ serial0 = &uart1;
+ serial1 = &uart2;
+ serial2 = &uart3;
+ serial3 = &uart4;
+ serial4 = &uart5;
+ serial5 = &uart6;
+ };
+
+ reg_sd1_vmmc: regulator-sd1-vmmc {
+ compatible = "regulator-fixed";
+ regulator-max-microvolt = <3300000>;
+ regulator-min-microvolt = <3300000>;
+ regulator-name = "VSD_3V3";
+ };
+};
+
+&usdhc1 { /* Micro SD card on module or external SD card via DHCOM */
+ /delete-property/ #address-cells;
+ /delete-property/ #size-cells;
+ /delete-property/ keep-power-in-suspend;
+ /delete-property/ mmc-pwrseq;
+ /delete-property/ non-removable;
+ /delete-property/ wakeup-source;
+ cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
+ no-1-8-v;
+ pinctrl-0 = <&pinctrl_usdhc1>;
+ pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+ pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+ pinctrl-names = "default", "state_100mhz", "state_200mhz";
+ vmmc-supply = <®_sd1_vmmc>;
+ status = "okay";
+};
+
+&iomuxc {
+ pinctrl_usdhc1: usdhc1-grp {
+ fsl,pins = <
+ MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059
+ MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10059
+ MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059
+ MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059
+ MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059
+ MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059
+ MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x120b0 /* SD1 CD */
+ >;
+ };
+
+ pinctrl_usdhc1_100mhz: usdhc1-100mhz-grp {
+ fsl,pins = <
+ MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170b9
+ MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100b9
+ MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170b9
+ MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9
+ MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9
+ MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9
+ MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x120b0 /* SD1 CD */
+
+ >;
+ };
+
+ pinctrl_usdhc1_200mhz: usdhc1-200mhz-grp {
+ fsl,pins = <
+ MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170f9
+ MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100f9
+ MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170f9
+ MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9
+ MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9
+ MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9
+ MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x120b0 /* SD1 CD */
+ >;
+ };
+};
--
2.11.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 4/4] ARM: dts: imx6ull-dhcom: Add DHSOM based DRC02 board
2022-11-17 10:31 [PATCH 0/4] ARM: dts: imx6ull-dhcom: Add DH electronics DHCOM i.MX6ULL SoM support Christoph Niedermaier
` (2 preceding siblings ...)
2022-11-17 10:31 ` [PATCH 3/4] ARM: dts: imx6ull-dhcom: Add DHCOM based PicoITX board Christoph Niedermaier
@ 2022-11-17 10:31 ` Christoph Niedermaier
3 siblings, 0 replies; 12+ messages in thread
From: Christoph Niedermaier @ 2022-11-17 10:31 UTC (permalink / raw)
To: linux-arm-kernel
Cc: Christoph Niedermaier, Rob Herring, Krzysztof Kozlowski,
Peng Fan, Shawn Guo, Marek Vasut, Fabio Estevam, NXP Linux Team,
kernel
Add DT for DH DRC02 unit, which is a universal controller device.
The system has two ethernet ports, two CANs, RS485 and RS232, USB,
capacitive buttons and an OLED display. For this board a DHCOM
i.MX6ULL SoM configuration without WiFi/BT is used. The interface
is used for the SD card instead.
Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
---
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <festevam@denx.de>
Cc: NXP Linux Team <linux-imx@nxp.com>
Cc: kernel@dh-electronics.com
To: linux-arm-kernel@lists.infradead.org
---
arch/arm/boot/dts/Makefile | 1 +
arch/arm/boot/dts/imx6ull-dhcom-drc02.dts | 144 ++++++++++++++++++++++++++++++
2 files changed, 145 insertions(+)
create mode 100644 arch/arm/boot/dts/imx6ull-dhcom-drc02.dts
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 9ae8af0c1459..81ecaa32df07 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -739,6 +739,7 @@ dtb-$(CONFIG_SOC_IMX6UL) += \
imx6ull-colibri-wifi-eval-v3.dtb \
imx6ull-colibri-wifi-iris.dtb \
imx6ull-colibri-wifi-iris-v2.dtb \
+ imx6ull-dhcom-drc02.dtb \
imx6ull-dhcom-pdk2.dtb \
imx6ull-dhcom-picoitx.dtb \
imx6ull-jozacp.dtb \
diff --git a/arch/arm/boot/dts/imx6ull-dhcom-drc02.dts b/arch/arm/boot/dts/imx6ull-dhcom-drc02.dts
new file mode 100644
index 000000000000..268e4de6be7d
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ull-dhcom-drc02.dts
@@ -0,0 +1,144 @@
+// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
+/*
+ * Copyright (C) 2022 DH electronics GmbH
+ *
+ * DHCOM iMX6ULL variant:
+ * DHCM-iMX6ULL-C080-R051-F0409-SPI-E2-CAN2-SD-RTC-ADC-I-01D2
+ * DHCOR PCB number: 578-200 or newer
+ * DHCOM PCB number: 579-200 or newer
+ * DRC02 PCB number: 568-100 or newer (2nd ethernet by internal USB device)
+ */
+/dts-v1/;
+
+#include "imx6ull-dhcom-som.dtsi"
+#include "imx6ull-dhcom-som-cfg-sdcard.dtsi"
+
+/ {
+ model = "DH electronics i.MX6ULL DHCOM on DRC02";
+ compatible = "dh,imx6ull-dhcom-drc02", "dh,imx6ull-dhcom-som",
+ "dh,imx6ull-dhcor-som", "fsl,imx6ull";
+};
+
+/*
+ * The signals for CAN2 TX and RX are routed to the DHCOM UART1 RTS/CTS pins.
+ * Therefore the UART RTS/CTS must be output on other DHCOM pins, see uart1
+ * node below.
+ */
+&can2 {
+ status = "okay";
+};
+
+&fec1 {
+ phy-handle = <&mdio1_phy0>;
+
+ mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ mdio1_phy0: ethernet-phy@0 { /* SMSC LAN8710Ai */
+ clock-names = "rmii-ref";
+ clocks = <&clks IMX6UL_CLK_ENET_REF>;
+ compatible = "ethernet-phy-id0007.c0f0",
+ "ethernet-phy-ieee802.3-c22";
+ interrupt-parent = <&gpio5>;
+ interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
+ pinctrl-0 = <&pinctrl_fec1_phy &pinctrl_snvs_fec1_phy>;
+ pinctrl-names = "default";
+ reg = <0>;
+ reset-assert-us = <500>;
+ reset-deassert-us = <500>;
+ reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
+ smsc,disable-energy-detect; /* Make plugin detection reliable */
+ };
+ };
+};
+
+/* Disabled, because 2nd ethernet is provided by an internal USB device */
+&fec2 {
+ status = "disabled";
+};
+
+&gpio1 {
+ gpio-line-names =
+ "", "", "", "",
+ "", "", "", "",
+ "", "", "", "DRC02-In2",
+ "", "", "", "",
+ "", "", "DHCOM-I", "",
+ "", "", "", "",
+ "", "", "", "",
+ "", "", "", "";
+};
+
+&gpio4 {
+ gpio-line-names =
+ "", "", "", "",
+ "", "", "", "",
+ "", "", "", "",
+ "", "", "", "",
+ "", "DRC02-HW0", "DRC02-HW1", "DHCOM-M",
+ "DRC02-HW2", "DHCOM-U", "DHCOM-T", "DHCOM-S",
+ "DHCOM-R", "DHCOM-Q", "DHCOM-P", "DHCOM-O",
+ "DHCOM-N", "", "", "";
+ /*
+ * NOTE: On DRC02, the RS485_RX_En is controlled by a separate
+ * GPIO line, however the i.MX6ULL UART driver assumes RX happens
+ * during TX anyway and that it only controls drive enable DE
+ * line. Hence, the RX is always enabled here.
+ */
+ rs485-rx-en-hog {
+ gpio-hog;
+ gpios = <25 0>; /* GPIO Q */
+ line-name = "rs485-rx-en";
+ output-low;
+ };
+};
+
+&gpio5 {
+ gpio-line-names =
+ "DHCOM-A", "DHCOM-B", "DHCOM-C", "DRC02-Out2",
+ "DHCOM-E", "", "", "DRC02-Out1",
+ "DRC02-In1", "DHCOM-H", "", "",
+ "", "", "", "",
+ "", "", "", "",
+ "", "", "", "",
+ "", "", "", "",
+ "", "", "", "";
+};
+
+&i2c1 { /* DHCOM I2C2 */
+ eeprom@56 {
+ compatible = "atmel,24c04";
+ pagesize = <16>;
+ reg = <0x56>;
+ };
+};
+
+&uart1 {
+ /delete-property/ uart-has-rtscts;
+ rts-gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>; /* GPIO I */
+ cts-gpios = <&gpio4 19 GPIO_ACTIVE_HIGH>; /* GPIO M */
+};
+
+&uart2 { /* Use UART as RS485 */
+ /delete-property/ uart-has-rtscts;
+ linux,rs485-enabled-at-boot-time;
+ rts-gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>; /* GPIO P */
+};
+
+&iomuxc {
+ pinctrl_fec1: fec1-grp {
+ fsl,pins = <
+ MX6UL_PAD_GPIO1_IO07__ENET1_MDC 0x1b0b0
+ MX6UL_PAD_GPIO1_IO06__ENET1_MDIO 0x1b0b0
+ MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0
+ MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0
+ MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
+ MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
+ MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b010
+ MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b010
+ MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b010
+ MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b010
+ >;
+ };
+};
--
2.11.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 1/4] dt-bindings: arm: fsl: Add PDK2, PicoITX and DRC02 boards for the DHCOM i.MX6ULL SoM
2022-11-17 10:31 ` Christoph Niedermaier
@ 2022-11-17 13:05 ` Krzysztof Kozlowski
-1 siblings, 0 replies; 12+ messages in thread
From: Krzysztof Kozlowski @ 2022-11-17 13:05 UTC (permalink / raw)
To: Christoph Niedermaier, linux-arm-kernel
Cc: Rob Herring, Krzysztof Kozlowski, Peng Fan, Shawn Guo,
Marek Vasut, Fabio Estevam, NXP Linux Team, kernel, devicetree,
linux-kernel
On 17/11/2022 11:31, Christoph Niedermaier wrote:
> Add DH electronics DHCOM PDK2, PicoITX and DRC02 boards
> for the DHCOM i.MX6ULL SoM.
>
> Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
> ---
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/4] dt-bindings: arm: fsl: Add PDK2, PicoITX and DRC02 boards for the DHCOM i.MX6ULL SoM
@ 2022-11-17 13:05 ` Krzysztof Kozlowski
0 siblings, 0 replies; 12+ messages in thread
From: Krzysztof Kozlowski @ 2022-11-17 13:05 UTC (permalink / raw)
To: Christoph Niedermaier, linux-arm-kernel
Cc: Rob Herring, Krzysztof Kozlowski, Peng Fan, Shawn Guo,
Marek Vasut, Fabio Estevam, NXP Linux Team, kernel, devicetree,
linux-kernel
On 17/11/2022 11:31, Christoph Niedermaier wrote:
> Add DH electronics DHCOM PDK2, PicoITX and DRC02 boards
> for the DHCOM i.MX6ULL SoM.
>
> Signed-off-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
> ---
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/4] ARM: dts: imx6ull-dhcom: Add DH electronics DHCOM i.MX6ULL SoM and PDK2 board
2022-11-17 10:31 ` [PATCH 2/4] ARM: dts: imx6ull-dhcom: Add DH electronics DHCOM i.MX6ULL SoM and PDK2 board Christoph Niedermaier
@ 2022-11-17 13:09 ` Krzysztof Kozlowski
2022-11-17 14:11 ` Christoph Niedermaier
0 siblings, 1 reply; 12+ messages in thread
From: Krzysztof Kozlowski @ 2022-11-17 13:09 UTC (permalink / raw)
To: Christoph Niedermaier, linux-arm-kernel
Cc: Rob Herring, Krzysztof Kozlowski, Peng Fan, Shawn Guo,
Marek Vasut, Fabio Estevam, NXP Linux Team, kernel
On 17/11/2022 11:31, Christoph Niedermaier wrote:
> Add support for DH electronics DHCOM SoM and PDK2 rev. 400 carrier
> board. This is an SoM with i.MX6ULL and an evaluation kit. The
> baseboard provides Ethernet, UART, USB, CAN and optional display.
>
Thank you for your patch. There is something to discuss/improve.
> +#include "imx6ull-dhcom-som.dtsi"
> +
> +/ {
> + model = "DH electronics i.MX6ULL DHCOM on Premium Developer Kit (2)";
> + compatible = "dh,imx6ull-dhcom-pdk2", "dh,imx6ull-dhcom-som",
> + "dh,imx6ull-dhcor-som", "fsl,imx6ull";
> +
> + clk_ext_audio_codec: clock-codec {
> + #clock-cells = <0>;
> + clock-frequency = <24000000>;
> + compatible = "fixed-clock";
> + };
> +
> + display_bl: display-bl {
> + brightness-levels = <0 16 22 30 40 55 75 102 138 188 255>;
> + compatible = "pwm-backlight";
> + default-brightness-level = <8>;
> + enable-gpios = <&gpio5 8 GPIO_ACTIVE_HIGH>; /* GPIO G */
> + power-supply = <®_panel_3v3>;
> + pwms = <&pwm1 0 50000 PWM_POLARITY_INVERTED>;
> + status = "okay";
okay is by default, unless you override a node. Are you overriding?
> + };
> +
> + gpio-keys {
> + compatible = "gpio-keys";
> +
> + button-0 {
> + gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; /* GPIO A */
> + label = "TA1-GPIO-A";
> + linux,code = <KEY_A>;
> + wakeup-source;
> + };
> +
(....)
> +
> +&fec2 { /* DHCOM ETH2 */
> + phy-handle = <&mdio2_phy1>;
> + phy-mode = "rmii";
> + pinctrl-0 = <&pinctrl_fec2>;
> + pinctrl-names = "default";
> + status = "okay";
> +
> + mdio {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + mdio2_phy0: ethernet-phy@0 { /* SMSC LAN8710Ai */
> + clock-names = "rmii-ref";
> + clocks = <&clks IMX6UL_CLK_ENET_REF>;
> + compatible = "ethernet-phy-id0007.c0f0",
> + "ethernet-phy-ieee802.3-c22";
> + interrupt-parent = <&gpio5>;
> + interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
> + pinctrl-0 = <&pinctrl_fec1_phy &pinctrl_snvs_fec1_phy>;
> + pinctrl-names = "default";
> + reg = <0>;
compatible first, reg second, then the rest of properties. Same in other
places.
> + reset-assert-us = <500>;
> + reset-deassert-us = <500>;
> + reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
> + smsc,disable-energy-detect; /* Make plugin detection reliable */
> + };
> +
> + mdio2_phy1: ethernet-phy@1 { /* SMSC LAN8710Ai */
> + clock-names = "rmii-ref";
> + clocks = <&clks IMX6UL_CLK_ENET2_REF>;
> + compatible = "ethernet-phy-id0007.c0f0",
> + "ethernet-phy-ieee802.3-c22";
> + interrupt-parent = <&gpio5>;
> + interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
> + pinctrl-0 = <&pinctrl_fec2_phy &pinctrl_snvs_fec2_phy>;
> + pinctrl-names = "default";
> + reg = <1>;
> + reset-assert-us = <500>;
> + reset-deassert-us = <500>;
> + reset-gpios = <&gpio3 24 GPIO_ACTIVE_LOW>;
> + smsc,disable-energy-detect; /* Make plugin detection reliable */
> + };
> + };
> +};
> +
(...)
> diff --git a/arch/arm/boot/dts/imx6ull-dhcor-som.dtsi b/arch/arm/boot/dts/imx6ull-dhcor-som.dtsi
> new file mode 100644
> index 000000000000..4155458897e2
> --- /dev/null
> +++ b/arch/arm/boot/dts/imx6ull-dhcor-som.dtsi
> @@ -0,0 +1,247 @@
> +// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
> +/*
> + * Copyright (C) 2022 DH electronics GmbH
> + */
> +
> +#include <dt-bindings/clock/imx6ul-clock.h>
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/leds/common.h>
> +#include <dt-bindings/pwm/pwm.h>
> +#include "imx6ull.dtsi"
> +
> +/ {
> + memory@80000000 { /* Appropriate memory size will be filled by U-Boot */
> + device_type = "memory";
> + reg = <0x80000000 0>;
> + };
> +};
> +
> +&cpu0 {
> + fsl,soc-operating-points = <
> + /* KHz uV */
> + 900000 1250000
> + 792000 1250000
> + 528000 1175000
> + 396000 1175000
> + 198000 1175000
> + >;
> + operating-points = <
> + /* kHz uV */
> + 900000 1275000
> + 792000 1250000
> + 528000 1175000
> + 396000 1025000
> + 198000 950000
> + >;
Why two properties? No support for operating-points-v2? Or is it
override of SoC DTSI?
> +};
> +
> +&gpio1 {
> + pinctrl-0 = <&pinctrl_spi1_switch>;
> + pinctrl-names = "default";
> + /*
> + * Pin SPI_BOOT_FLASH_EN (GPIO 1.9) is a switch for either using the
> + * DHCOM SPI1 interface or accessing the SPI bootflash. Both using
> + * ecspi1, but muxed to different pins. The DHCOM SPI1 interface uses
> + * the pins PAD_LCD_DATA21..23 and the SPI bootflash uses the pins
> + * PAD_CSI_DATA04..07. If the SPI bootflash is enabled the pins for
> + * DHCOM GPIOs N/O/P/Q/R/S/T/U aren't usable anymore, because they
> + * are used for the bus interface to the SPI bootflash. The GPIOs are
> + * disconnected by a buffer which is also controlled via the pin
> + * SPI_BOOT_FLASH_EN. Therefore the access to the bootflash is a
> + * special case and is disabled by setting GPIO 1.9 to high.
> + */
> + spi1-switch-hog {
> + gpio-hog;
> + gpios = <9 0>;
> + output-high;
> + line-name = "spi1-switch";
> + };
> +};
> +
> +&i2c1 {
> + clock-frequency = <100000>;
> + pinctrl-0 = <&pinctrl_i2c1>;
> + pinctrl-1 = <&pinctrl_i2c1_gpio>;
> + pinctrl-names = "default", "gpio";
> + scl-gpios = <&gpio1 28 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
> + sda-gpios = <&gpio1 29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
> + status = "okay";
> +
> + pmic@58 {
> + compatible = "dlg,da9061";
> + reg = <0x58>;
> +
> + onkey {
> + compatible = "dlg,da9061-onkey", "dlg,da9062-onkey";
> + status = "disabled";
> + };
> +
> + regulators {
> + vdd_soc_in_1v4: buck1 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-max-microvolt = <1400000>;
> + regulator-min-microvolt = <1400000>;
> + regulator-name = "vdd_soc_in_1v4";
> + };
> +
> + vcc_3v3: buck2 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-max-microvolt = <3300000>;
> + regulator-min-microvolt = <3300000>;
> + regulator-name = "vcc_3v3";
> + };
> +
> + /*
> + * The current DRR3 memory can be supplied with a
> + * voltage of either 1.35V or 1.5V. For reasons of
> + * backward compatibility to only 1.5V DDR3 memory,
> + * the voltage is set to 1.5V.
> + */
> + vcc_ddr_1v35: buck3 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-max-microvolt = <1500000>;
> + regulator-min-microvolt = <1500000>;
> + regulator-name = "vcc_ddr_1v35";
> + };
> +
> + vcc_2v5: ldo1 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-max-microvolt = <2500000>;
> + regulator-min-microvolt = <2500000>;
> + regulator-name = "vcc_2v5";
> + };
> +
> + vdd_snvs_in_3v3: ldo2 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-max-microvolt = <3300000>;
> + regulator-min-microvolt = <3300000>;
> + regulator-name = "vdd_snvs_in_3v3";
> + };
> +
> + vcc_1v8: ldo3 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-max-microvolt = <1800000>;
> + regulator-min-microvolt = <1800000>;
> + regulator-name = "vcc_1v8";
> + };
> +
> + vcc_1v2: ldo4 {
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-max-microvolt = <1200000>;
> + regulator-min-microvolt = <1200000>;
> + regulator-name = "vcc_1v2";
> + };
> + };
> +
> + thermal {
> + compatible = "dlg,da9061-thermal", "dlg,da9062-thermal";
> + status = "disabled";
> + };
> +
> + watchdog {
> + compatible = "dlg,da9061-watchdog", "dlg,da9062-watchdog";
> + status = "disabled";
> + };
> + };
> +};
> +
> +&ocotp {
> + read-only; /* Don't get write access by default */
> +};
> +
> +®_arm {
> + vin-supply = <&vdd_soc_in_1v4>;
> +};
> +
> +®_soc {
> + vin-supply = <&vdd_soc_in_1v4>;
> +};
> +
> +&uart2 { /* BT on LGA (BT_REG_ON is connected to LGA pin E1) */
> + pinctrl-0 = <&pinctrl_uart2>;
> + pinctrl-names = "default";
> + uart-has-rtscts;
> + status = "okay";
> +
> + /*
> + * Actually, the maximum speed of the chip is 4MBdps, but there are
> + * limitations that prevent this speed. It hasn't yet been figured out
> + * what the reason for this is. Currently, the maximum speed of 3MBdps
> + * can be used without any problems. If the limitation can be overcome,
> + * the speed can be increased accordingly.
> + */
> + bluetooth: bluetooth { /* muRata 1DX */
> + compatible = "brcm,bcm43430a1-bt";
> + max-speed = <3000000>;
> + vbat-supply = <&vcc_3v3>;
> + vddio-supply = <&vcc_3v3>;
> + };
> +};
> +
> +&usdhc1 { /* WiFi on LGA (WL_REG_ON is connected to LGA pin E3) */
This is weird commenting style. Don't do this. Comments go usually
before the block. Fix it here and in other places.
> + #address-cells = <1>;
> + #size-cells = <0>;
> + bus-width = <4>;
> + no-1-8-v;
> + non-removable;
> + keep-power-in-suspend;
> + pinctrl-0 = <&pinctrl_usdhc1_wifi>;
> + pinctrl-names = "default";
> + wakeup-source;
> + status = "okay";
> +
> + brcmf: wifi@1 { /* muRata 1DX */
> + compatible = "brcm,bcm4329-fmac";
> + reg = <1>;
> + };
> +};
> +
> +&iomuxc {
> + pinctrl_i2c1: i2c1-grp {
> + fsl,pins = <
> + MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
> + MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0
> + >;
> + };
> +
> + pinctrl_i2c1_gpio: i2c1-gpio-grp {
> + fsl,pins = <
> + MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28 0x4001b8b0
> + MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x4001b8b0
> + >;
> + };
> +
> + pinctrl_spi1_switch: spi1-switch-grp {
> + fsl,pins = <
> + MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x120b0 /* SPI_BOOT_FLASH_EN */
> + >;
> + };
> +
> + pinctrl_uart2: uart2-grp {
> + fsl,pins = <
> + MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1
> + MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1
> + MX6UL_PAD_UART3_RX_DATA__UART2_DCE_RTS 0x1b0b1
> + MX6UL_PAD_UART3_TX_DATA__UART2_DCE_CTS 0x1b0b1
> + >;
> + };
> +
> + pinctrl_usdhc1_wifi: usdhc1-wifi-grp {
> + fsl,pins = <
> + MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x1b0b0
> + MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10010
> + MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x1b0b0
> + MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x1b0b0
> + MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x1b0b0
> + MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x1b0b0
> + >;
> + };
> +};
Best regards,
Krzysztof
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: [PATCH 2/4] ARM: dts: imx6ull-dhcom: Add DH electronics DHCOM i.MX6ULL SoM and PDK2 board
2022-11-17 13:09 ` Krzysztof Kozlowski
@ 2022-11-17 14:11 ` Christoph Niedermaier
2022-11-17 14:38 ` Krzysztof Kozlowski
0 siblings, 1 reply; 12+ messages in thread
From: Christoph Niedermaier @ 2022-11-17 14:11 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Rob Herring, Krzysztof Kozlowski, Peng Fan, Shawn Guo,
Marek Vasut, Fabio Estevam, NXP Linux Team, kernel,
linux-arm-kernel
From: Krzysztof Kozlowski [mailto:krzysztof.kozlowski@linaro.org]
Sent: Thursday, November 17, 2022 2:10 PM
> On 17/11/2022 11:31, Christoph Niedermaier wrote:
>> Add support for DH electronics DHCOM SoM and PDK2 rev. 400 carrier
>> board. This is an SoM with i.MX6ULL and an evaluation kit. The
>> baseboard provides Ethernet, UART, USB, CAN and optional display.
>>
>
> Thank you for your patch. There is something to discuss/improve.
>
>> +#include "imx6ull-dhcom-som.dtsi"
>> +
>> +/ {
>> + model = "DH electronics i.MX6ULL DHCOM on Premium Developer Kit (2)";
>> + compatible = "dh,imx6ull-dhcom-pdk2", "dh,imx6ull-dhcom-som",
>> + "dh,imx6ull-dhcor-som", "fsl,imx6ull";
>> +
>> + clk_ext_audio_codec: clock-codec {
>> + #clock-cells = <0>;
>> + clock-frequency = <24000000>;
>> + compatible = "fixed-clock";
>> + };
>> +
>> + display_bl: display-bl {
>> + brightness-levels = <0 16 22 30 40 55 75 102 138 188 255>;
>> + compatible = "pwm-backlight";
>> + default-brightness-level = <8>;
>> + enable-gpios = <&gpio5 8 GPIO_ACTIVE_HIGH>; /* GPIO G */
>> + power-supply = <®_panel_3v3>;
>> + pwms = <&pwm1 0 50000 PWM_POLARITY_INVERTED>;
>> + status = "okay";
>
> okay is by default, unless you override a node. Are you overriding?
No, I am not overriding.
Will be removed in next version.
>> + };
>> +
>> + gpio-keys {
>> + compatible = "gpio-keys";
>> +
>> + button-0 {
>> + gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; /* GPIO A */
>> + label = "TA1-GPIO-A";
>> + linux,code = <KEY_A>;
>> + wakeup-source;
>> + };
>> +
>
> (....)
>
>> +
>> +&fec2 { /* DHCOM ETH2 */
>> + phy-handle = <&mdio2_phy1>;
>> + phy-mode = "rmii";
>> + pinctrl-0 = <&pinctrl_fec2>;
>> + pinctrl-names = "default";
>> + status = "okay";
>> +
>> + mdio {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + mdio2_phy0: ethernet-phy@0 { /* SMSC LAN8710Ai */
>> + clock-names = "rmii-ref";
>> + clocks = <&clks IMX6UL_CLK_ENET_REF>;
>> + compatible = "ethernet-phy-id0007.c0f0",
>> + "ethernet-phy-ieee802.3-c22";
>> + interrupt-parent = <&gpio5>;
>> + interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
>> + pinctrl-0 = <&pinctrl_fec1_phy &pinctrl_snvs_fec1_phy>;
>> + pinctrl-names = "default";
>> + reg = <0>;
>
> compatible first, reg second, then the rest of properties. Same in other
> places.
Sorry, I have sorted it alphabetically.
Should the status property be sorted at the end or also alphabetically?
>> + reset-assert-us = <500>;
>> + reset-deassert-us = <500>;
>> + reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
>> + smsc,disable-energy-detect; /* Make plugin detection reliable */
>> + };
>> +
>> + mdio2_phy1: ethernet-phy@1 { /* SMSC LAN8710Ai */
>> + clock-names = "rmii-ref";
>> + clocks = <&clks IMX6UL_CLK_ENET2_REF>;
>> + compatible = "ethernet-phy-id0007.c0f0",
>> + "ethernet-phy-ieee802.3-c22";
>> + interrupt-parent = <&gpio5>;
>> + interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
>> + pinctrl-0 = <&pinctrl_fec2_phy &pinctrl_snvs_fec2_phy>;
>> + pinctrl-names = "default";
>> + reg = <1>;
>> + reset-assert-us = <500>;
>> + reset-deassert-us = <500>;
>> + reset-gpios = <&gpio3 24 GPIO_ACTIVE_LOW>;
>> + smsc,disable-energy-detect; /* Make plugin detection reliable */
>> + };
>> + };
>> +};
>> +
>
> (...)
>
>> diff --git a/arch/arm/boot/dts/imx6ull-dhcor-som.dtsi b/arch/arm/boot/dts/imx6ull-dhcor-som.dtsi
>> new file mode 100644
>> index 000000000000..4155458897e2
>> --- /dev/null
>> +++ b/arch/arm/boot/dts/imx6ull-dhcor-som.dtsi
>> @@ -0,0 +1,247 @@
>> +// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
>> +/*
>> + * Copyright (C) 2022 DH electronics GmbH
>> + */
>> +
>> +#include <dt-bindings/clock/imx6ul-clock.h>
>> +#include <dt-bindings/gpio/gpio.h>
>> +#include <dt-bindings/input/input.h>
>> +#include <dt-bindings/leds/common.h>
>> +#include <dt-bindings/pwm/pwm.h>
>> +#include "imx6ull.dtsi"
>> +
>> +/ {
>> + memory@80000000 { /* Appropriate memory size will be filled by U-Boot */
>> + device_type = "memory";
>> + reg = <0x80000000 0>;
>> + };
>> +};
>> +
>> +&cpu0 {
>> + fsl,soc-operating-points = <
>> + /* KHz uV */
>> + 900000 1250000
>> + 792000 1250000
>> + 528000 1175000
>> + 396000 1175000
>> + 198000 1175000
>> + >;
>> + operating-points = <
>> + /* kHz uV */
>> + 900000 1275000
>> + 792000 1250000
>> + 528000 1175000
>> + 396000 1025000
>> + 198000 950000
>> + >;
>
> Why two properties? No support for operating-points-v2? Or is it
> override of SoC DTSI?
Yes, overriding SoC DTSI.
>
>> +};
>> +
>> +&gpio1 {
>> + pinctrl-0 = <&pinctrl_spi1_switch>;
>> + pinctrl-names = "default";
>> + /*
>> + * Pin SPI_BOOT_FLASH_EN (GPIO 1.9) is a switch for either using the
>> + * DHCOM SPI1 interface or accessing the SPI bootflash. Both using
>> + * ecspi1, but muxed to different pins. The DHCOM SPI1 interface uses
>> + * the pins PAD_LCD_DATA21..23 and the SPI bootflash uses the pins
>> + * PAD_CSI_DATA04..07. If the SPI bootflash is enabled the pins for
>> + * DHCOM GPIOs N/O/P/Q/R/S/T/U aren't usable anymore, because they
>> + * are used for the bus interface to the SPI bootflash. The GPIOs are
>> + * disconnected by a buffer which is also controlled via the pin
>> + * SPI_BOOT_FLASH_EN. Therefore the access to the bootflash is a
>> + * special case and is disabled by setting GPIO 1.9 to high.
>> + */
>> + spi1-switch-hog {
>> + gpio-hog;
>> + gpios = <9 0>;
>> + output-high;
>> + line-name = "spi1-switch";
>> + };
>> +};
>> +
>> +&i2c1 {
>> + clock-frequency = <100000>;
>> + pinctrl-0 = <&pinctrl_i2c1>;
>> + pinctrl-1 = <&pinctrl_i2c1_gpio>;
>> + pinctrl-names = "default", "gpio";
>> + scl-gpios = <&gpio1 28 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
>> + sda-gpios = <&gpio1 29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
>> + status = "okay";
>> +
>> + pmic@58 {
>> + compatible = "dlg,da9061";
>> + reg = <0x58>;
>> +
>> + onkey {
>> + compatible = "dlg,da9061-onkey", "dlg,da9062-onkey";
>> + status = "disabled";
>> + };
>> +
>> + regulators {
>> + vdd_soc_in_1v4: buck1 {
>> + regulator-always-on;
>> + regulator-boot-on;
>> + regulator-max-microvolt = <1400000>;
>> + regulator-min-microvolt = <1400000>;
>> + regulator-name = "vdd_soc_in_1v4";
>> + };
>> +
>> + vcc_3v3: buck2 {
>> + regulator-always-on;
>> + regulator-boot-on;
>> + regulator-max-microvolt = <3300000>;
>> + regulator-min-microvolt = <3300000>;
>> + regulator-name = "vcc_3v3";
>> + };
>> +
>> + /*
>> + * The current DRR3 memory can be supplied with a
>> + * voltage of either 1.35V or 1.5V. For reasons of
>> + * backward compatibility to only 1.5V DDR3 memory,
>> + * the voltage is set to 1.5V.
>> + */
>> + vcc_ddr_1v35: buck3 {
>> + regulator-always-on;
>> + regulator-boot-on;
>> + regulator-max-microvolt = <1500000>;
>> + regulator-min-microvolt = <1500000>;
>> + regulator-name = "vcc_ddr_1v35";
>> + };
>> +
>> + vcc_2v5: ldo1 {
>> + regulator-always-on;
>> + regulator-boot-on;
>> + regulator-max-microvolt = <2500000>;
>> + regulator-min-microvolt = <2500000>;
>> + regulator-name = "vcc_2v5";
>> + };
>> +
>> + vdd_snvs_in_3v3: ldo2 {
>> + regulator-always-on;
>> + regulator-boot-on;
>> + regulator-max-microvolt = <3300000>;
>> + regulator-min-microvolt = <3300000>;
>> + regulator-name = "vdd_snvs_in_3v3";
>> + };
>> +
>> + vcc_1v8: ldo3 {
>> + regulator-always-on;
>> + regulator-boot-on;
>> + regulator-max-microvolt = <1800000>;
>> + regulator-min-microvolt = <1800000>;
>> + regulator-name = "vcc_1v8";
>> + };
>> +
>> + vcc_1v2: ldo4 {
>> + regulator-always-on;
>> + regulator-boot-on;
>> + regulator-max-microvolt = <1200000>;
>> + regulator-min-microvolt = <1200000>;
>> + regulator-name = "vcc_1v2";
>> + };
>> + };
>> +
>> + thermal {
>> + compatible = "dlg,da9061-thermal", "dlg,da9062-thermal";
>> + status = "disabled";
>> + };
>> +
>> + watchdog {
>> + compatible = "dlg,da9061-watchdog", "dlg,da9062-watchdog";
>> + status = "disabled";
>> + };
>> + };
>> +};
>> +
>> +&ocotp {
>> + read-only; /* Don't get write access by default */
>> +};
>> +
>> +®_arm {
>> + vin-supply = <&vdd_soc_in_1v4>;
>> +};
>> +
>> +®_soc {
>> + vin-supply = <&vdd_soc_in_1v4>;
>> +};
>> +
>> +&uart2 { /* BT on LGA (BT_REG_ON is connected to LGA pin E1) */
>> + pinctrl-0 = <&pinctrl_uart2>;
>> + pinctrl-names = "default";
>> + uart-has-rtscts;
>> + status = "okay";
>> +
>> + /*
>> + * Actually, the maximum speed of the chip is 4MBdps, but there are
>> + * limitations that prevent this speed. It hasn't yet been figured out
>> + * what the reason for this is. Currently, the maximum speed of 3MBdps
>> + * can be used without any problems. If the limitation can be overcome,
>> + * the speed can be increased accordingly.
>> + */
>> + bluetooth: bluetooth { /* muRata 1DX */
>> + compatible = "brcm,bcm43430a1-bt";
>> + max-speed = <3000000>;
>> + vbat-supply = <&vcc_3v3>;
>> + vddio-supply = <&vcc_3v3>;
>> + };
>> +};
>> +
>> +&usdhc1 { /* WiFi on LGA (WL_REG_ON is connected to LGA pin E3) */
>
> This is weird commenting style. Don't do this. Comments go usually
> before the block. Fix it here and in other places.
Will be fixed in next version.
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> + bus-width = <4>;
>> + no-1-8-v;
>> + non-removable;
>> + keep-power-in-suspend;
>> + pinctrl-0 = <&pinctrl_usdhc1_wifi>;
>> + pinctrl-names = "default";
>> + wakeup-source;
>> + status = "okay";
>> +
>> + brcmf: wifi@1 { /* muRata 1DX */
>> + compatible = "brcm,bcm4329-fmac";
>> + reg = <1>;
>> + };
>> +};
>> +
>> +&iomuxc {
>> + pinctrl_i2c1: i2c1-grp {
>> + fsl,pins = <
>> + MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
>> + MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0
>> + >;
>> + };
>> +
>> + pinctrl_i2c1_gpio: i2c1-gpio-grp {
>> + fsl,pins = <
>> + MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28 0x4001b8b0
>> + MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x4001b8b0
>> + >;
>> + };
>> +
>> + pinctrl_spi1_switch: spi1-switch-grp {
>> + fsl,pins = <
>> + MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x120b0 /* SPI_BOOT_FLASH_EN */
>> + >;
>> + };
>> +
>> + pinctrl_uart2: uart2-grp {
>> + fsl,pins = <
>> + MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1
>> + MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1
>> + MX6UL_PAD_UART3_RX_DATA__UART2_DCE_RTS 0x1b0b1
>> + MX6UL_PAD_UART3_TX_DATA__UART2_DCE_CTS 0x1b0b1
>> + >;
>> + };
>> +
>> + pinctrl_usdhc1_wifi: usdhc1-wifi-grp {
>> + fsl,pins = <
>> + MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x1b0b0
>> + MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10010
>> + MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x1b0b0
>> + MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x1b0b0
>> + MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x1b0b0
>> + MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x1b0b0
>> + >;
>> + };
>> +};
>
> Best regards,
> Krzysztof
Thanks and regards
Christoph
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/4] ARM: dts: imx6ull-dhcom: Add DH electronics DHCOM i.MX6ULL SoM and PDK2 board
2022-11-17 14:11 ` Christoph Niedermaier
@ 2022-11-17 14:38 ` Krzysztof Kozlowski
2022-11-17 16:27 ` Christoph Niedermaier
0 siblings, 1 reply; 12+ messages in thread
From: Krzysztof Kozlowski @ 2022-11-17 14:38 UTC (permalink / raw)
To: Christoph Niedermaier
Cc: Rob Herring, Krzysztof Kozlowski, Peng Fan, Shawn Guo,
Marek Vasut, Fabio Estevam, NXP Linux Team, kernel,
linux-arm-kernel
On 17/11/2022 15:11, Christoph Niedermaier wrote:
>>> +&fec2 { /* DHCOM ETH2 */
>>> + phy-handle = <&mdio2_phy1>;
>>> + phy-mode = "rmii";
>>> + pinctrl-0 = <&pinctrl_fec2>;
>>> + pinctrl-names = "default";
>>> + status = "okay";
>>> +
>>> + mdio {
>>> + #address-cells = <1>;
>>> + #size-cells = <0>;
>>> +
>>> + mdio2_phy0: ethernet-phy@0 { /* SMSC LAN8710Ai */
>>> + clock-names = "rmii-ref";
>>> + clocks = <&clks IMX6UL_CLK_ENET_REF>;
>>> + compatible = "ethernet-phy-id0007.c0f0",
>>> + "ethernet-phy-ieee802.3-c22";
>>> + interrupt-parent = <&gpio5>;
>>> + interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
>>> + pinctrl-0 = <&pinctrl_fec1_phy &pinctrl_snvs_fec1_phy>;
>>> + pinctrl-names = "default";
>>> + reg = <0>;
>>
>> compatible first, reg second, then the rest of properties. Same in other
>> places.
>
> Sorry, I have sorted it alphabetically.
> Should the status property be sorted at the end or also alphabetically?
You do not have status here. For the cases where it is present, depends
on the preferences of subarch maintainer. Usually it also goes to the
end, but not always.
>
>>> + reset-assert-us = <500>;
>>> + reset-deassert-us = <500>;
>>> + reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
>>> + smsc,disable-energy-detect; /* Make plugin detection reliable */
>>> + };
>>> +
Best regards,
Krzysztof
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: [PATCH 2/4] ARM: dts: imx6ull-dhcom: Add DH electronics DHCOM i.MX6ULL SoM and PDK2 board
2022-11-17 14:38 ` Krzysztof Kozlowski
@ 2022-11-17 16:27 ` Christoph Niedermaier
0 siblings, 0 replies; 12+ messages in thread
From: Christoph Niedermaier @ 2022-11-17 16:27 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Rob Herring, Krzysztof Kozlowski, Peng Fan, Shawn Guo,
Marek Vasut, Fabio Estevam, NXP Linux Team, kernel,
linux-arm-kernel
From: Krzysztof Kozlowski [mailto:krzysztof.kozlowski@linaro.org]
Sent: Thursday, November 17, 2022 3:39 PM
> On 17/11/2022 15:11, Christoph Niedermaier wrote:
>>>> +&fec2 { /* DHCOM ETH2 */
>>>> + phy-handle = <&mdio2_phy1>;
>>>> + phy-mode = "rmii";
>>>> + pinctrl-0 = <&pinctrl_fec2>;
>>>> + pinctrl-names = "default";
>>>> + status = "okay";
>>>> +
>>>> + mdio {
>>>> + #address-cells = <1>;
>>>> + #size-cells = <0>;
>>>> +
>>>> + mdio2_phy0: ethernet-phy@0 { /* SMSC LAN8710Ai */
>>>> + clock-names = "rmii-ref";
>>>> + clocks = <&clks IMX6UL_CLK_ENET_REF>;
>>>> + compatible = "ethernet-phy-id0007.c0f0",
>>>> + "ethernet-phy-ieee802.3-c22";
>>>> + interrupt-parent = <&gpio5>;
>>>> + interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
>>>> + pinctrl-0 = <&pinctrl_fec1_phy &pinctrl_snvs_fec1_phy>;
>>>> + pinctrl-names = "default";
>>>> + reg = <0>;
>>>
>>> compatible first, reg second, then the rest of properties. Same in other
>>> places.
>>
>> Sorry, I have sorted it alphabetically.
>> Should the status property be sorted at the end or also alphabetically?
>
> You do not have status here. For the cases where it is present, depends
> on the preferences of subarch maintainer. Usually it also goes to the
> end, but not always.
Thanks for the clarification.
Regards
Christoph
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2022-11-17 16:33 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-17 10:31 [PATCH 0/4] ARM: dts: imx6ull-dhcom: Add DH electronics DHCOM i.MX6ULL SoM support Christoph Niedermaier
2022-11-17 10:31 ` [PATCH 1/4] dt-bindings: arm: fsl: Add PDK2, PicoITX and DRC02 boards for the DHCOM i.MX6ULL SoM Christoph Niedermaier
2022-11-17 10:31 ` Christoph Niedermaier
2022-11-17 13:05 ` Krzysztof Kozlowski
2022-11-17 13:05 ` Krzysztof Kozlowski
2022-11-17 10:31 ` [PATCH 2/4] ARM: dts: imx6ull-dhcom: Add DH electronics DHCOM i.MX6ULL SoM and PDK2 board Christoph Niedermaier
2022-11-17 13:09 ` Krzysztof Kozlowski
2022-11-17 14:11 ` Christoph Niedermaier
2022-11-17 14:38 ` Krzysztof Kozlowski
2022-11-17 16:27 ` Christoph Niedermaier
2022-11-17 10:31 ` [PATCH 3/4] ARM: dts: imx6ull-dhcom: Add DHCOM based PicoITX board Christoph Niedermaier
2022-11-17 10:31 ` [PATCH 4/4] ARM: dts: imx6ull-dhcom: Add DHSOM based DRC02 board Christoph Niedermaier
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.