ARM: dts: imx28-duckbill-2: Include base board
authorStefan Wahren <stefan.wahren@i2se.com>
Tue, 7 Mar 2023 18:40:04 +0000 (19:40 +0100)
committerShawn Guo <shawnguo@kernel.org>
Tue, 14 Mar 2023 06:42:39 +0000 (14:42 +0800)
All additional I2SE Duckbill 2 variants always have the same
base board in common. So consider this by including the base
board and avoid a lot of redundancy.

Special care needs to be taken of the SPI variant. ssp2 is used
as SD card interface on the base board, but on the SPI variant
it's downgrade to a SPI interface to connect the QCA7000. So
the SD card properties must be deleted.

Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Cc: Michael Heimpold <mhei@heimpold.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm/boot/dts/imx28-duckbill-2-485.dts
arch/arm/boot/dts/imx28-duckbill-2-enocean.dts
arch/arm/boot/dts/imx28-duckbill-2-spi.dts

index d451fa0..b73020f 100644 (file)
  */
 
 /dts-v1/;
-#include <dt-bindings/interrupt-controller/irq.h>
-#include <dt-bindings/gpio/gpio.h>
-#include "imx28.dtsi"
+#include "imx28-duckbill-2.dts"
 
 / {
        model = "I2SE Duckbill 2 485";
        compatible = "i2se,duckbill-2-485", "i2se,duckbill-2", "fsl,imx28";
 
-       memory@40000000 {
-               device_type = "memory";
-               reg = <0x40000000 0x08000000>;
-       };
-
-       apb@80000000 {
-               apbh@80000000 {
-                       ssp0: spi@80010000 {
-                               compatible = "fsl,imx28-mmc";
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&mmc0_8bit_pins_a
-                                       &mmc0_cd_cfg &mmc0_sck_cfg>;
-                               bus-width = <8>;
-                               vmmc-supply = <&reg_3p3v>;
-                               status = "okay";
-                               non-removable;
-                       };
-
-                       ssp2: spi@80014000 {
-                               compatible = "fsl,imx28-mmc";
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&mmc2_4bit_pins_b
-                                       &mmc2_cd_cfg &mmc2_sck_cfg_b>;
-                               bus-width = <4>;
-                               vmmc-supply = <&reg_3p3v>;
-                               status = "okay";
-                       };
-
-                       pinctrl@80018000 {
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&hog_pins_a>;
-
-                               hog_pins_a: hog@0 {
-                                       reg = <0>;
-                                       fsl,pinmux-ids = <
-                                               MX28_PAD_LCD_D17__GPIO_1_17    /* Revision detection */
-                                       >;
-                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
-                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
-                                       fsl,pull-up = <MXS_PULL_DISABLE>;
-                               };
-
-                               mac0_phy_reset_pin: mac0-phy-reset@0 {
-                                       reg = <0>;
-                                       fsl,pinmux-ids = <
-                                               MX28_PAD_GPMI_ALE__GPIO_0_26    /* PHY Reset */
-                                       >;
-                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
-                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
-                                       fsl,pull-up = <MXS_PULL_DISABLE>;
-                               };
-
-                               mac0_phy_int_pin: mac0-phy-int@0 {
-                                       reg = <0>;
-                                       fsl,pinmux-ids = <
-                                               MX28_PAD_GPMI_D07__GPIO_0_7    /* PHY Interrupt */
-                                       >;
-                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
-                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
-                                       fsl,pull-up = <MXS_PULL_DISABLE>;
-                               };
-
-                               led_pins: leds@0 {
-                                       reg = <0>;
-                                       fsl,pinmux-ids = <
-                                               MX28_PAD_SAIF0_MCLK__GPIO_3_20
-                                               MX28_PAD_SAIF0_LRCLK__GPIO_3_21
-                                               MX28_PAD_I2C0_SCL__GPIO_3_24
-                                               MX28_PAD_I2C0_SDA__GPIO_3_25
-                                       >;
-                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
-                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
-                                       fsl,pull-up = <MXS_PULL_DISABLE>;
-                               };
-                       };
-               };
-
-               apbx@80040000 {
-                       lradc@80050000 {
-                               status = "okay";
-                       };
-
-                       auart0: serial@8006a000 {
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&auart0_2pins_a>;
-                               status = "okay";
-                       };
-
-                       duart: serial@80074000 {
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&duart_pins_a>;
-                               status = "okay";
-                       };
-
-                       usbphy0: usbphy@8007c000 {
-                               status = "okay";
-                       };
-               };
-       };
-
-       ahb@80080000 {
-               usb0: usb@80080000 {
-                       status = "okay";
-                       dr_mode = "peripheral";
-               };
-
-               mac0: ethernet@800f0000 {
-                       phy-mode = "rmii";
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&mac0_pins_a>, <&mac0_phy_reset_pin>;
-                       phy-supply = <&reg_3p3v>;
-                       phy-reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
-                       phy-reset-duration = <25>;
-                       phy-handle = <&ethphy>;
-                       status = "okay";
-
-                       mdio {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               ethphy: ethernet-phy@0 {
-                                       compatible = "ethernet-phy-ieee802.3-c22";
-                                       reg = <0>;
-                                       pinctrl-names = "default";
-                                       pinctrl-0 = <&mac0_phy_int_pin>;
-                                       interrupt-parent = <&gpio0>;
-                                       interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
-                                       max-speed = <100>;
-                               };
-                       };
-               };
-       };
-
-       reg_3p3v: regulator-3p3v {
-               compatible = "regulator-fixed";
-               regulator-name = "3P3V";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               regulator-always-on;
-       };
-
        leds {
-               compatible = "gpio-leds";
-               pinctrl-names = "default";
-               pinctrl-0 = <&led_pins>;
-
-               status-red {
-                       label = "duckbill:red:status";
-                       gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
-                       linux,default-trigger = "default-on";
-               };
-
-               status-green {
-                       label = "duckbill:green:status";
-                       gpios = <&gpio3 20 GPIO_ACTIVE_HIGH>;
-                       linux,default-trigger = "heartbeat";
-               };
-
                rs485-red {
                        label = "duckbill:red:rs485";
                        gpios = <&gpio3 24 GPIO_ACTIVE_LOW>;
                };
        };
 };
+
+&i2c0 {
+       status = "disabled";
+};
+
+&led_pins {
+       fsl,pinmux-ids = <
+               MX28_PAD_SAIF0_MCLK__GPIO_3_20
+               MX28_PAD_SAIF0_LRCLK__GPIO_3_21
+               MX28_PAD_I2C0_SCL__GPIO_3_24
+               MX28_PAD_I2C0_SDA__GPIO_3_25
+       >;
+};
index 73f521c..473d99b 100644 (file)
  */
 
 /dts-v1/;
-#include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/input/input.h>
-#include <dt-bindings/gpio/gpio.h>
-#include "imx28.dtsi"
+#include "imx28-duckbill-2.dts"
 
 / {
        model = "I2SE Duckbill 2 EnOcean";
        compatible = "i2se,duckbill-2-enocean", "i2se,duckbill-2", "fsl,imx28";
 
-       memory@40000000 {
-               device_type = "memory";
-               reg = <0x40000000 0x08000000>;
-       };
-
-       apb@80000000 {
-               apbh@80000000 {
-                       ssp0: spi@80010000 {
-                               compatible = "fsl,imx28-mmc";
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&mmc0_8bit_pins_a
-                                       &mmc0_cd_cfg &mmc0_sck_cfg>;
-                               bus-width = <8>;
-                               vmmc-supply = <&reg_3p3v>;
-                               status = "okay";
-                               non-removable;
-                       };
-
-                       ssp2: spi@80014000 {
-                               compatible = "fsl,imx28-mmc";
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&mmc2_4bit_pins_b
-                                       &mmc2_cd_cfg &mmc2_sck_cfg_b>;
-                               bus-width = <4>;
-                               vmmc-supply = <&reg_3p3v>;
-                               status = "okay";
-                       };
-
-                       pinctrl@80018000 {
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&hog_pins_a>;
-
-                               hog_pins_a: hog@0 {
-                                       reg = <0>;
-                                       fsl,pinmux-ids = <
-                                               MX28_PAD_LCD_D17__GPIO_1_17    /* Revision detection */
-                                       >;
-                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
-                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
-                                       fsl,pull-up = <MXS_PULL_DISABLE>;
-                               };
-
-                               mac0_phy_reset_pin: mac0-phy-reset@0 {
-                                       reg = <0>;
-                                       fsl,pinmux-ids = <
-                                               MX28_PAD_GPMI_ALE__GPIO_0_26    /* PHY Reset */
-                                       >;
-                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
-                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
-                                       fsl,pull-up = <MXS_PULL_DISABLE>;
-                               };
-
-                               mac0_phy_int_pin: mac0-phy-int@0 {
-                                       reg = <0>;
-                                       fsl,pinmux-ids = <
-                                               MX28_PAD_GPMI_D07__GPIO_0_7    /* PHY Interrupt */
-                                       >;
-                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
-                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
-                                       fsl,pull-up = <MXS_PULL_DISABLE>;
-                               };
-
-                               led_pins: leds@0 {
-                                       reg = <0>;
-                                       fsl,pinmux-ids = <
-                                               MX28_PAD_SAIF0_MCLK__GPIO_3_20
-                                               MX28_PAD_SAIF0_LRCLK__GPIO_3_21
-                                               MX28_PAD_AUART0_CTS__GPIO_3_2
-                                               MX28_PAD_I2C0_SCL__GPIO_3_24
-                                               MX28_PAD_I2C0_SDA__GPIO_3_25
-                                       >;
-                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
-                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
-                                       fsl,pull-up = <MXS_PULL_DISABLE>;
-                               };
-
-                               enocean_button: enocean-button@0 {
-                                       reg = <0>;
-                                       fsl,pinmux-ids = <
-                                               MX28_PAD_AUART0_RTS__GPIO_3_3
-                                       >;
-                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
-                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
-                                       fsl,pull-up = <MXS_PULL_DISABLE>;
-                               };
-                       };
-               };
-
-               apbx@80040000 {
-                       lradc@80050000 {
-                               status = "okay";
-                       };
-
-                       auart0: serial@8006a000 {
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&auart0_2pins_a>;
-                               status = "okay";
-                       };
-
-                       duart: serial@80074000 {
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&duart_pins_a>;
-                               status = "okay";
-                       };
-
-                       usbphy0: usbphy@8007c000 {
-                               status = "okay";
-                       };
-               };
-       };
-
-       ahb@80080000 {
-               usb0: usb@80080000 {
-                       status = "okay";
-                       dr_mode = "peripheral";
-               };
-
-               mac0: ethernet@800f0000 {
-                       phy-mode = "rmii";
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&mac0_pins_a>, <&mac0_phy_reset_pin>;
-                       phy-supply = <&reg_3p3v>;
-                       phy-reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
-                       phy-reset-duration = <25>;
-                       phy-handle = <&ethphy>;
-                       status = "okay";
-
-                       mdio {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               ethphy: ethernet-phy@0 {
-                                       compatible = "ethernet-phy-ieee802.3-c22";
-                                       reg = <0>;
-                                       pinctrl-names = "default";
-                                       pinctrl-0 = <&mac0_phy_int_pin>;
-                                       interrupt-parent = <&gpio0>;
-                                       interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
-                                       max-speed = <100>;
-                               };
-                       };
-               };
-       };
-
-       reg_3p3v: regulator-3p3v {
-               compatible = "regulator-fixed";
-               regulator-name = "3P3V";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               regulator-always-on;
-       };
-
        leds {
-               compatible = "gpio-leds";
-               pinctrl-names = "default";
-               pinctrl-0 = <&led_pins>;
-
-               status-red {
-                       label = "duckbill:red:status";
-                       gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
-                       linux,default-trigger = "default-on";
-               };
-
-               status-green {
-                       label = "duckbill:green:status";
-                       gpios = <&gpio3 20 GPIO_ACTIVE_HIGH>;
-                       linux,default-trigger = "heartbeat";
-               };
-
                enocean-blue {
                        label = "duckbill:blue:enocean";
                        gpios = <&gpio3 24 GPIO_ACTIVE_LOW>;
                };
        };
 };
+
+&i2c0 {
+       status = "disabled";
+};
+
+&led_pins {
+       fsl,pinmux-ids = <
+               MX28_PAD_SAIF0_MCLK__GPIO_3_20
+               MX28_PAD_SAIF0_LRCLK__GPIO_3_21
+               MX28_PAD_AUART0_CTS__GPIO_3_2
+               MX28_PAD_I2C0_SCL__GPIO_3_24
+               MX28_PAD_I2C0_SDA__GPIO_3_25
+       >;
+};
+
+&pinctrl {
+       enocean_button: enocean-button@0 {
+               reg = <0>;
+               fsl,pinmux-ids = <
+                       MX28_PAD_AUART0_RTS__GPIO_3_3
+               >;
+               fsl,drive-strength = <MXS_DRIVE_4mA>;
+               fsl,voltage = <MXS_VOLTAGE_HIGH>;
+               fsl,pull-up = <MXS_PULL_DISABLE>;
+       };
+};
index 0e8be59..859d97a 100644 (file)
@@ -5,9 +5,7 @@
  */
 
 /dts-v1/;
-#include <dt-bindings/interrupt-controller/irq.h>
-#include <dt-bindings/gpio/gpio.h>
-#include "imx28.dtsi"
+#include "imx28-duckbill-2.dts"
 
 / {
        model = "I2SE Duckbill 2 SPI";
        aliases {
                ethernet1 = &qca7000;
        };
+};
 
-       memory@40000000 {
-               device_type = "memory";
-               reg = <0x40000000 0x08000000>;
-       };
-
-       apb@80000000 {
-               apbh@80000000 {
-                       ssp0: spi@80010000 {
-                               compatible = "fsl,imx28-mmc";
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&mmc0_8bit_pins_a
-                                       &mmc0_cd_cfg &mmc0_sck_cfg>;
-                               bus-width = <8>;
-                               vmmc-supply = <&reg_3p3v>;
-                               status = "okay";
-                               non-removable;
-                       };
-
-                       ssp2: spi@80014000 {
-                               compatible = "fsl,imx28-spi";
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&spi2_pins_a>;
-                               status = "okay";
-
-                               qca7000: ethernet@0 {
-                                       reg = <0>;
-                                       compatible = "qca,qca7000";
-                                       pinctrl-names = "default";
-                                       pinctrl-0 = <&qca7000_pins>;
-                                       interrupt-parent = <&gpio3>;
-                                       interrupts = <3 IRQ_TYPE_EDGE_RISING>;
-                                       spi-cpha;
-                                       spi-cpol;
-                                       spi-max-frequency = <8000000>;
-                               };
-                       };
-
-                       pinctrl@80018000 {
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&hog_pins_a>;
-
-                               hog_pins_a: hog@0 {
-                                       reg = <0>;
-                                       fsl,pinmux-ids = <
-                                               MX28_PAD_LCD_D17__GPIO_1_17    /* Revision detection */
-                                       >;
-                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
-                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
-                                       fsl,pull-up = <MXS_PULL_DISABLE>;
-                               };
-
-                               mac0_phy_reset_pin: mac0-phy-reset@0 {
-                                       reg = <0>;
-                                       fsl,pinmux-ids = <
-                                               MX28_PAD_GPMI_ALE__GPIO_0_26    /* PHY Reset */
-                                       >;
-                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
-                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
-                                       fsl,pull-up = <MXS_PULL_DISABLE>;
-                               };
-
-                               mac0_phy_int_pin: mac0-phy-int@0 {
-                                       reg = <0>;
-                                       fsl,pinmux-ids = <
-                                               MX28_PAD_GPMI_D07__GPIO_0_7    /* PHY Interrupt */
-                                       >;
-                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
-                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
-                                       fsl,pull-up = <MXS_PULL_DISABLE>;
-                               };
-
-                               led_pins: led@0 {
-                                       reg = <0>;
-                                       fsl,pinmux-ids = <
-                                               MX28_PAD_SAIF0_MCLK__GPIO_3_20
-                                               MX28_PAD_SAIF0_LRCLK__GPIO_3_21
-                                       >;
-                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
-                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
-                                       fsl,pull-up = <MXS_PULL_DISABLE>;
-                               };
-
-                               qca7000_pins: qca7000@0 {
-                                       reg = <0>;
-                                       fsl,pinmux-ids = <
-                                               MX28_PAD_AUART0_RTS__GPIO_3_3    /* Interrupt */
-                                               MX28_PAD_LCD_D13__GPIO_1_13      /* QCA7K reset */
-                                               MX28_PAD_LCD_D14__GPIO_1_14      /* GPIO 0 */
-                                               MX28_PAD_LCD_D15__GPIO_1_15      /* GPIO 1 */
-                                               MX28_PAD_LCD_D18__GPIO_1_18      /* GPIO 2 */
-                                               MX28_PAD_LCD_D21__GPIO_1_21      /* GPIO 3 */
-                                       >;
-                                       fsl,drive-strength = <MXS_DRIVE_4mA>;
-                                       fsl,voltage = <MXS_VOLTAGE_HIGH>;
-                                       fsl,pull-up = <MXS_PULL_DISABLE>;
-                               };
-                       };
-               };
-
-               apbx@80040000 {
-                       lradc@80050000 {
-                               status = "okay";
-                       };
-
-                       duart: serial@80074000 {
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&duart_pins_a>;
-                               status = "okay";
-                       };
-
-                       usbphy0: usbphy@8007c000 {
-                               status = "okay";
-                       };
-               };
-       };
-
-       ahb@80080000 {
-               usb0: usb@80080000 {
-                       status = "okay";
-                       dr_mode = "peripheral";
-               };
-
-               mac0: ethernet@800f0000 {
-                       phy-mode = "rmii";
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&mac0_pins_a>, <&mac0_phy_reset_pin>;
-                       phy-supply = <&reg_3p3v>;
-                       phy-reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
-                       phy-reset-duration = <25>;
-                       phy-handle = <&ethphy>;
-                       status = "okay";
-
-                       mdio {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
+&auart0 {
+       status = "disabled";
+};
 
-                               ethphy: ethernet-phy@0 {
-                                       compatible = "ethernet-phy-ieee802.3-c22";
-                                       reg = <0>;
-                                       pinctrl-names = "default";
-                                       pinctrl-0 = <&mac0_phy_int_pin>;
-                                       interrupt-parent = <&gpio0>;
-                                       interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
-                                       max-speed = <100>;
-                               };
-                       };
-               };
-       };
+&i2c0 {
+       status = "disabled";
+};
 
-       reg_3p3v: regulator-3p3v {
-               compatible = "regulator-fixed";
-               regulator-name = "3P3V";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               regulator-always-on;
+&pinctrl {
+       qca7000_pins: qca7000@0 {
+               reg = <0>;
+               fsl,pinmux-ids = <
+                       MX28_PAD_AUART0_RTS__GPIO_3_3    /* Interrupt */
+                       MX28_PAD_LCD_D13__GPIO_1_13      /* QCA7K reset */
+                       MX28_PAD_LCD_D14__GPIO_1_14      /* GPIO 0 */
+                       MX28_PAD_LCD_D15__GPIO_1_15      /* GPIO 1 */
+                       MX28_PAD_LCD_D18__GPIO_1_18      /* GPIO 2 */
+                       MX28_PAD_LCD_D21__GPIO_1_21      /* GPIO 3 */
+               >;
+               fsl,drive-strength = <MXS_DRIVE_4mA>;
+               fsl,voltage = <MXS_VOLTAGE_HIGH>;
+               fsl,pull-up = <MXS_PULL_DISABLE>;
        };
+};
 
-       leds {
-               compatible = "gpio-leds";
+&ssp2 {
+       compatible = "fsl,imx28-spi";
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi2_pins_a>;
+       /delete-property/ bus-width;
+       /delete-property/ vmmc-supply;
+       status = "okay";
+
+       qca7000: ethernet@0 {
+               reg = <0>;
+               compatible = "qca,qca7000";
                pinctrl-names = "default";
-               pinctrl-0 = <&led_pins>;
-
-               status-red {
-                       label = "duckbill:red:status";
-                       gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
-                       linux,default-trigger = "default-on";
-               };
-
-               status-green {
-                       label = "duckbill:green:status";
-                       gpios = <&gpio3 20 GPIO_ACTIVE_HIGH>;
-                       linux,default-trigger = "heartbeat";
-               };
+               pinctrl-0 = <&qca7000_pins>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <3 IRQ_TYPE_EDGE_RISING>;
+               spi-cpha;
+               spi-cpol;
+               spi-max-frequency = <8000000>;
        };
 };