ARM: dts: support I2SE Duckbill device
Subsystems (3)
cover ARM: dts: support I2SE Duckbill device
This series updates/adds Device Tree support for I2SE's Duckbill device family.
The Duckbill devices are small, pen-drive sized boards based on NXP's i.MX28 SoC. While the initial variants (Duckbill series) were equipped with a micro SD card slot only, the latest generation (Duckbill 2 series) have an additional internal eMMC onboard.
Both device generations consists of four "family members":
- Duckbill/Duckbill 2: generic board, intented to be used as baseboard for custom designs and/or as development board
- Duckbill EnOcean/Duckbill 2 EnOcean: come with an EnOcean daugther board equipped with the popular TCM310 module
- Duckbill 485/Duckbill 2 485: as the name implies, these devices are intended to be used as Ethernet - RS485 converters
- Duckbill SPI/Duckbill 2 SPI: not sold separately, but used in I2SE's development kits for Green PHY HomePlug Powerline communication
Since all devices are very similar and only differ in few aspects, the following patch series introduces first common device tree snippets which are then included by the real devices. For better understanding, I tried to illustrate the hierarchy:
+--------------------+ +----------------------+
| imx28-duckbill.dts | | imx28-duckbill-2.dts |
+--------------------+ +----------------------+
^ ^
| +----------------------------+ | +------------------------------+
| | imx28-duckbill-enocean.dts | | | imx28-duckbill-2-enocean.dts |
| +----------------------------+ | +------------------------------+
| ^ | ^
| | +------------------------+ | | +--------------------------+
| | | imx28-duckbill-485.dts | | | | imx28-duckbill-2-485.dts |
| | +------------------------+ | | +--------------------------+
| | ^ | | ^
| | | +------------------------+ | | | +--------------------------+
| | | | imx28-duckbill-spi.dts | | | | | imx28-duckbill-2-spi.dts |
| | | +------------------------+ | | | +--------------------------+
| | | ^ | | | ^
| | | | | | | |
| | | | | | | |
+---------------------------------------+ +-----------------------------------------+
| imx28-duckbill-common.dtsi | | imx28-duckbill-2-common.dtsi |
+---------------------------------------+ +-----------------------------------------+
^ ^
| |
+----------------------------+
| imx28-duckbill-base.dtsi |
+----------------------------+
^
|
+------------+
| imx28.dtsi |
+------------+Michael Heimpold (7):
ARM: dts: imx28: add alternative pinmuxing for mmc2
ARM: dts: imx28: rename mmc2_sck_cfg to prepare for an alternative
muxing setup
ARM: dts: imx28: add alternative muxing for mmc2_sck_cfg
ARM: dts: add I2SE Duckbill common definitions
ARM: dts: duckbill: simplify DT and use common definitions
ARM: dts: add support for remaining members of Duckbill series
ARM: dts: add support for Duckbill 2 series devices
arch/arm/boot/dts/Makefile | 7 ++ arch/arm/boot/dts/imx28-duckbill-2-485.dts | 70 ++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-2-common.dtsi | 110 +++++++++++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-2-enocean.dts | 100 ++++++++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-2-spi.dts | 63 ++++++++++++++ arch/arm/boot/dts/imx28-duckbill-2.dts | 46 +++++++++++ arch/arm/boot/dts/imx28-duckbill-485.dts | 60 ++++++++++++++ arch/arm/boot/dts/imx28-duckbill-base.dtsi | 88 ++++++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-common.dtsi | 80 ++++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-enocean.dts | 90 ++++++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-spi.dts | 64 ++++++++++++++ arch/arm/boot/dts/imx28-duckbill.dts | 99 +++------------------- arch/arm/boot/dts/imx28-m28cu3.dts | 2 +- arch/arm/boot/dts/imx28.dtsi | 28 ++++++- 14 files changed, 817 insertions(+), 90 deletions(-) create mode 100644 arch/arm/boot/dts/imx28-duckbill-2-485.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-2-common.dtsi create mode 100644 arch/arm/boot/dts/imx28-duckbill-2-enocean.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-2-spi.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-2.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-485.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-base.dtsi create mode 100644 arch/arm/boot/dts/imx28-duckbill-common.dtsi create mode 100644 arch/arm/boot/dts/imx28-duckbill-enocean.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-spi.dts
Signature · 1 line
2.7.4
PATCH 1/7 ARM: dts: imx28: add alternative pinmuxing for mmc2
From: Michael Heimpold <[email protected]>
--- arch/arm/boot/dts/imx28.dtsi | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
arch/arm/boot/dts/imx28.dtsi +16 -0
@@ -579,6 +579,22 @@ fsl,pull-up = <MXS_PULL_ENABLE>; }; + mmc2_4bit_pins_b: mmc2-4bit at 1 { + reg = <1>; + fsl,pinmux-ids = < + MX28_PAD_SSP2_SCK__SSP2_SCK + MX28_PAD_SSP2_MOSI__SSP2_CMD + MX28_PAD_SSP2_MISO__SSP2_D0 + MX28_PAD_SSP2_SS0__SSP2_D3 + MX28_PAD_SSP2_SS1__SSP2_D1 + MX28_PAD_SSP2_SS2__SSP2_D2 + MX28_PAD_AUART1_RX__SSP2_CARD_DETECT + >; + fsl,drive-strength = <MXS_DRIVE_8mA>; + fsl,voltage = <MXS_VOLTAGE_HIGH>; + fsl,pull-up = <MXS_PULL_ENABLE>; + }; + mmc2_cd_cfg: mmc2-cd-cfg { fsl,pinmux-ids = < MX28_PAD_AUART1_RX__SSP2_CARD_DETECT
Signature · 1 line
2.7.4
PATCH 2/7 ARM: dts: imx28: rename mmc2_sck_cfg to prepare for an alternative muxing setup
In reply to Michael HeimpoldFrom: Michael Heimpold <[email protected]>
--- arch/arm/boot/dts/imx28-m28cu3.dts | 2 +- arch/arm/boot/dts/imx28.dtsi | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-)
arch/arm/boot/dts/imx28-m28cu3.dts +1 -1
@@ -57,7 +57,7 @@ pinctrl-names = "default"; pinctrl-0 = <&mmc2_4bit_pins_a &mmc2_cd_cfg - &mmc2_sck_cfg>; + &mmc2_sck_cfg_a>; bus-width = <4>; vmmc-supply = <®_vddio_sd1>; status = "okay";
arch/arm/boot/dts/imx28.dtsi +2 -1
@@ -602,7 +602,8 @@ fsl,pull-up = <MXS_PULL_DISABLE>; }; - mmc2_sck_cfg: mmc2-sck-cfg { + mmc2_sck_cfg_a: mmc2-sck-cfg at 0 { + reg = <0>; fsl,pinmux-ids = < MX28_PAD_SSP0_DATA7__SSP2_SCK >;
Signature · 1 line
2.7.4
PATCH 3/7 ARM: dts: imx28: add alternative muxing for mmc2_sck_cfg
In reply to Michael HeimpoldFrom: Michael Heimpold <[email protected]>
--- arch/arm/boot/dts/imx28.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+)
arch/arm/boot/dts/imx28.dtsi +9 -0
@@ -611,6 +611,15 @@ fsl,pull-up = <MXS_PULL_DISABLE>; }; + mmc2_sck_cfg_b: mmc2-sck-cfg at 1 { + reg = <1>; + fsl,pinmux-ids = < + MX28_PAD_SSP2_SCK__SSP2_SCK + >; + fsl,drive-strength = <MXS_DRIVE_12mA>; + fsl,pull-up = <MXS_PULL_DISABLE>; + }; + i2c0_pins_a: i2c0 at 0 { reg = <0>; fsl,pinmux-ids = <
Signature · 1 line
2.7.4
PATCH 4/7 ARM: dts: add I2SE Duckbill common definitions
In reply to Michael Heimpold--- arch/arm/boot/dts/imx28-duckbill-2-common.dtsi | 110 +++++++++++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-base.dtsi | 88 ++++++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-common.dtsi | 80 ++++++++++++++++++ 3 files changed, 278 insertions(+) create mode 100644 arch/arm/boot/dts/imx28-duckbill-2-common.dtsi create mode 100644 arch/arm/boot/dts/imx28-duckbill-base.dtsi create mode 100644 arch/arm/boot/dts/imx28-duckbill-common.dtsi
arch/arm/boot/dts/imx28-duckbill-2-common.dtsi new file +110 -0
@@ -0,0 +1,110 @@ +/* + * Copyright (C) 2013-2014 Michael Heimpold <[email protected]> + * Copyright (C) 2015 I2SE GmbH <[email protected]> + * + * The code contained herein is licensed under the GNU General Public + * License. You may obtain a copy of the GNU General Public License + * Version 2 or later at the following locations: + * + * http://www.opensource.org/licenses/gpl-license.html + * http://www.gnu.org/copyleft/gpl.html + */ + +#include <dt-bindings/interrupt-controller/irq.h> +#include <dt-bindings/gpio/gpio.h> +#include "imx28-duckbill-base.dtsi" + +/ { + model = "I2SE Duckbill 2"; + compatible = "i2se,duckbill", "fsl,imx28"; + + apb at 80000000 { + apbh at 80000000 { + ssp0: ssp at 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 = <®_3p3v>; + status = "okay"; + non-removable; + }; + + pinctrl at 80018000 { + pinctrl-names = "default"; + pinctrl-0 = <&hog_pins_a>; + + mac0_phy_reset_pin: mac0_phy_reset_pin at 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_pin at 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>; + }; + + status_led_pins: status_led_pins at 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>; + }; + }; + }; + }; + + ahb at 80080000 { + mac0: ethernet at 800f0000 { + phy-reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>; + phy-handle = <ðphy>; + mdio { + #address-cells = <1>; + #size-cells = <0>; + + ethphy: ethernet-phy at 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>; + }; + }; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&status_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"; + }; + }; +};
arch/arm/boot/dts/imx28-duckbill-base.dtsi new file +88 -0
88 lines not on this page · raw message
arch/arm/boot/dts/imx28-duckbill-common.dtsi new file +80 -0
80 lines not on this page · raw message
Signature · 1 line
2.7.4
PATCH 4/7 ARM: dts: add I2SE Duckbill common definitions
arch/arm/boot/dts/imx28-duckbill-2-common.dtsi line 38
Quoted 5 lines · Michael Heimpold
arch/arm/boot/dts/imx28-duckbill-2-common.dtsi new file +5
-0+ pinctrl at 80018000 { + pinctrl-names = "default"; + pinctrl-0 = <&hog_pins_a>; + + mac0_phy_reset_pin: mac0_phy_reset_pin at 0 {
Please use hyphen instead of underscore in node name.
Shawn
Quoted 8 lines
arch/arm/boot/dts/imx28-duckbill-2-common.dtsi new file +8
-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>; + };
PATCH 5/7 ARM: dts: duckbill: simplify DT and use common definitions
In reply to Michael Heimpold--- arch/arm/boot/dts/imx28-duckbill.dts | 99 ++++-------------------------------- 1 file changed, 11 insertions(+), 88 deletions(-)
arch/arm/boot/dts/imx28-duckbill.dts +11 -88
@@ -1,5 +1,6 @@ /* - * Copyright (C) 2013 Michael Heimpold <[email protected]> + * Copyright (C) 2013-2014,2016 Michael Heimpold <[email protected]> + * Copyright (C) 2015 I2SE GmbH <[email protected]> * * The code contained herein is licensed under the GNU General Public * License. You may obtain a copy of the GNU General Public License
@@ -10,112 +11,34 @@ */ /dts-v1/; -#include "imx28.dtsi" +#include "imx28-duckbill-common.dtsi" / { model = "I2SE Duckbill"; compatible = "i2se,duckbill", "fsl,imx28"; - memory { - reg = <0x40000000 0x08000000>; - }; - apb at 80000000 { apbh at 80000000 { - ssp0: ssp at 80010000 { - compatible = "fsl,imx28-mmc"; + ssp2: ssp at 80014000 { + compatible = "fsl,imx28-spi"; pinctrl-names = "default"; - pinctrl-0 = <&mmc0_4bit_pins_a - &mmc0_cd_cfg &mmc0_sck_cfg>; - bus-width = <4>; - vmmc-supply = <®_3p3v>; + pinctrl-0 = <&spi2_pins_a>; status = "okay"; }; - - pinctrl at 80018000 { - pinctrl-names = "default"; - pinctrl-0 = <&hog_pins_a>; - - hog_pins_a: hog at 0 { - reg = <0>; - fsl,pinmux-ids = < - MX28_PAD_SSP0_DATA7__GPIO_2_7 /* PHY Reset */ - >; - fsl,drive-strength = <MXS_DRIVE_4mA>; - fsl,voltage = <MXS_VOLTAGE_HIGH>; - fsl,pull-up = <MXS_PULL_DISABLE>; - }; - - led_pins_a: led_gpio at 0 { - reg = <0>; - fsl,pinmux-ids = < - MX28_PAD_AUART1_RX__GPIO_3_4 - MX28_PAD_AUART1_TX__GPIO_3_5 - >; - fsl,drive-strength = <MXS_DRIVE_4mA>; - fsl,voltage = <MXS_VOLTAGE_HIGH>; - fsl,pull-up = <MXS_PULL_DISABLE>; - }; - }; }; apbx at 80040000 { - duart: serial at 80074000 { + i2c0: i2c at 80058000 { pinctrl-names = "default"; - pinctrl-0 = <&duart_pins_a>; + pinctrl-0 = <&i2c0_pins_a>; status = "okay"; }; - usbphy0: usbphy at 8007c000 { + auart0: serial at 8006a000 { + pinctrl-names = "default"; + pinctrl-0 = <&auart0_2pins_a>; status = "okay"; }; }; }; - - ahb at 80080000 { - usb0: usb at 80080000 { - status = "okay"; - }; - - mac0: ethernet at 800f0000 { - phy-mode = "rmii"; - pinctrl-names = "default"; - pinctrl-0 = <&mac0_pins_a>; - phy-supply = <®_3p3v>; - phy-reset-gpios = <&gpio2 7 GPIO_ACTIVE_LOW>; - phy-reset-duration = <100>; - status = "okay"; - }; - }; - - regulators { - compatible = "simple-bus"; - #address-cells = <1>; - #size-cells = <0>; - - reg_3p3v: regulator at 0 { - compatible = "regulator-fixed"; - reg = <0>; - 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_a>; - - status { - label = "duckbill:green:status"; - gpios = <&gpio3 5 GPIO_ACTIVE_HIGH>; - }; - - failure { - label = "duckbill:red:status"; - gpios = <&gpio3 4 GPIO_ACTIVE_HIGH>; - }; - }; };
Signature · 1 line
2.7.4
PATCH 6/7 ARM: dts: add support for remaining members of Duckbill series
In reply to Michael Heimpold--- arch/arm/boot/dts/Makefile | 3 + arch/arm/boot/dts/imx28-duckbill-485.dts | 60 +++++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-enocean.dts | 90 ++++++++++++++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-spi.dts | 64 ++++++++++++++++++++ 4 files changed, 217 insertions(+) create mode 100644 arch/arm/boot/dts/imx28-duckbill-485.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-enocean.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-spi.dts
arch/arm/boot/dts/Makefile +3 -0
@@ -459,7 +459,10 @@ dtb-$(CONFIG_ARCH_MXS) += \ imx28-cfa10056.dtb \ imx28-cfa10057.dtb \ imx28-cfa10058.dtb \ + imx28-duckbill-485.dtb \ imx28-duckbill.dtb \ + imx28-duckbill-enocean.dtb \ + imx28-duckbill-spi.dtb \ imx28-eukrea-mbmx283lc.dtb \ imx28-eukrea-mbmx287lc.dtb \ imx28-evk.dtb \
arch/arm/boot/dts/imx28-duckbill-485.dts new file +60 -0
60 lines not on this page · raw message
arch/arm/boot/dts/imx28-duckbill-enocean.dts new file +90 -0
90 lines not on this page · raw message
arch/arm/boot/dts/imx28-duckbill-spi.dts new file +64 -0
64 lines not on this page · raw message
Signature · 1 line
2.7.4
PATCH 7/7 ARM: dts: add support for Duckbill 2 series devices
In reply to Michael Heimpold--- arch/arm/boot/dts/Makefile | 4 + arch/arm/boot/dts/imx28-duckbill-2-485.dts | 70 +++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-2-enocean.dts | 100 +++++++++++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-2-spi.dts | 63 ++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-2.dts | 46 ++++++++++++ 5 files changed, 283 insertions(+) create mode 100644 arch/arm/boot/dts/imx28-duckbill-2-485.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-2-enocean.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-2-spi.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-2.dts
arch/arm/boot/dts/Makefile +4 -0
@@ -459,6 +459,10 @@ dtb-$(CONFIG_ARCH_MXS) += \ imx28-cfa10056.dtb \ imx28-cfa10057.dtb \ imx28-cfa10058.dtb \ + imx28-duckbill-2-485.dtb \ + imx28-duckbill-2.dtb \ + imx28-duckbill-2-enocean.dtb \ + imx28-duckbill-2-spi.dtb \ imx28-duckbill-485.dtb \ imx28-duckbill.dtb \ imx28-duckbill-enocean.dtb \
arch/arm/boot/dts/imx28-duckbill-2-485.dts new file +70 -0
70 lines not on this page · raw message
arch/arm/boot/dts/imx28-duckbill-2-enocean.dts new file +100 -0
100 lines not on this page · raw message
arch/arm/boot/dts/imx28-duckbill-2-spi.dts new file +63 -0
63 lines not on this page · raw message
arch/arm/boot/dts/imx28-duckbill-2.dts new file +46 -0
46 lines not on this page · raw message
Signature · 1 line
2.7.4
cover ARM: dts: support I2SE Duckbill device
In reply to Michael HeimpoldQuoted 16 lines · Michael Heimpold
This series updates/adds Device Tree support for I2SE's Duckbill device family.
The Duckbill devices are small, pen-drive sized boards based on NXP's i.MX28 SoC. While the initial variants (Duckbill series) were equipped with a micro SD card slot only, the latest generation (Duckbill 2 series) have an additional internal eMMC onboard.
Both device generations consists of four "family members":
- Duckbill/Duckbill 2: generic board, intented to be used as baseboard for custom designs and/or as development board
- Duckbill EnOcean/Duckbill 2 EnOcean: come with an EnOcean daugther board equipped with the popular TCM310 module
Quoted 6 lines
- Duckbill 485/Duckbill 2 485: as the name implies, these devices are intended to be used as Ethernet - RS485 converters
- Duckbill SPI/Duckbill 2 SPI: not sold separately, but used in I2SE's development kits for Green PHY HomePlug Powerline communication
So we basically need to maintain 8 dts/dtb files for imx28-duckbill board. This is not pleasant. Can you please investigate if Device Tree overlay is going to help here?
Shawn
[1] http://free-electrons.com/blog/dt-overlay-uboot-libfdt/
Quoted 82 lines
Since all devices are very similar and only differ in few aspects, the following patch series introduces first common device tree snippets which are then included by the real devices. For better understanding, I tried to illustrate the hierarchy:
+--------------------+ +----------------------+ | imx28-duckbill.dts | | imx28-duckbill-2.dts | +--------------------+ +----------------------+ ^ ^ | +----------------------------+ | +------------------------------+ | | imx28-duckbill-enocean.dts | | | imx28-duckbill-2-enocean.dts | | +----------------------------+ | +------------------------------+ | ^ | ^ | | +------------------------+ | | +--------------------------+ | | | imx28-duckbill-485.dts | | | | imx28-duckbill-2-485.dts | | | +------------------------+ | | +--------------------------+ | | ^ | | ^ | | | +------------------------+ | | | +--------------------------+ | | | | imx28-duckbill-spi.dts | | | | | imx28-duckbill-2-spi.dts | | | | +------------------------+ | | | +--------------------------+ | | | ^ | | | ^ | | | | | | | | | | | | | | | | +---------------------------------------+ +-----------------------------------------+ | imx28-duckbill-common.dtsi | | imx28-duckbill-2-common.dtsi | +---------------------------------------+ +-----------------------------------------+ ^ ^ | | +----------------------------+ | imx28-duckbill-base.dtsi | +----------------------------+ ^ | +------------+ | imx28.dtsi | +------------+Michael Heimpold (7):
ARM: dts: imx28: add alternative pinmuxing for mmc2
ARM: dts: imx28: renamemmc2_sck_cfgto prepare for an alternative
muxing setup
ARM: dts: imx28: add alternative muxing formmc2_sck_cfg
ARM: dts: add I2SE Duckbill common definitions
ARM: dts: duckbill: simplify DT and use common definitions
ARM: dts: add support for remaining members of Duckbill series
ARM: dts: add support for Duckbill 2 series devicesarch/arm/boot/dts/Makefile | 7 ++ arch/arm/boot/dts/imx28-duckbill-2-485.dts | 70 ++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-2-common.dtsi | 110 +++++++++++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-2-enocean.dts | 100 ++++++++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-2-spi.dts | 63 ++++++++++++++ arch/arm/boot/dts/imx28-duckbill-2.dts | 46 +++++++++++ arch/arm/boot/dts/imx28-duckbill-485.dts | 60 ++++++++++++++ arch/arm/boot/dts/imx28-duckbill-base.dtsi | 88 ++++++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-common.dtsi | 80 ++++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-enocean.dts | 90 ++++++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-spi.dts | 64 ++++++++++++++ arch/arm/boot/dts/imx28-duckbill.dts | 99 +++------------------- arch/arm/boot/dts/imx28-m28cu3.dts | 2 +- arch/arm/boot/dts/imx28.dtsi | 28 ++++++- 14 files changed, 817 insertions(+), 90 deletions(-) create mode 100644 arch/arm/boot/dts/imx28-duckbill-2-485.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-2-common.dtsi create mode 100644 arch/arm/boot/dts/imx28-duckbill-2-enocean.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-2-spi.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-2.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-485.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-base.dtsi create mode 100644 arch/arm/boot/dts/imx28-duckbill-common.dtsi create mode 100644 arch/arm/boot/dts/imx28-duckbill-enocean.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-spi.dtsSignature · 7 lines
2.7.4 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel at lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
cover ARM: dts: support I2SE Duckbill device
Am Montag, 24. Oktober 2016, 21:12:09 CEST schrieb Shawn Guo:
Quoted 23 lines · Michael Heimpold
Quoted 22 lines
This series updates/adds Device Tree support for I2SE's Duckbill device family.
The Duckbill devices are small, pen-drive sized boards based on NXP's i.MX28 SoC. While the initial variants (Duckbill series) were equipped with a micro SD card slot only, the latest generation (Duckbill 2 series) have an additional internal eMMC onboard.
Both device generations consists of four "family members":
- Duckbill/Duckbill 2: generic board, intented to be used as
baseboard for custom designs and/or as development board
- Duckbill EnOcean/Duckbill 2 EnOcean: come with an EnOcean
daugther board equipped with the popular TCM310 module
- Duckbill 485/Duckbill 2 485: as the name implies, these
devices are intended to be used as Ethernet - RS485 converters
Quoted 8 lines
Quoted 4 lines
- Duckbill SPI/Duckbill 2 SPI: not sold separately, but used
in I2SE's development kits for Green PHY HomePlug Powerline communication
So we basically need to maintain 8 dts/dtb files for imx28-duckbill board. This is not pleasant. Can you please investigate if Device Tree overlay is going to help here?
First, thank you very much for your quick feedback.
Actually it would even be 11 files for 8 boards, thats right. There is no mechanism (no EEPROM, GPIO...) to automatically probe for the device variants, and the "variant-forming daugther boards" are not switchable like the expansion boards e.g. for Raspberry Pi. Another point is, that this would really require to use U-Boot to apply the overlay (or another DT capable bootloader with this functionality). For booting very fast, the good old Freescale bootlets are still an option, which could not handle the overlays - at least at the moment... However, it still an option to have a second look...
To reduce the number of files, I see the following other approaches:
- don't use the three "common" files which are included: -3 files (8 total)
- don't mainline Duckbill EnOcean, Duckbill 485 and Duckbill SPI:
they are EOL, only Duckbill 2 variants are still sold;
however, since Duckbill (without 2) is/was already mainlined, we should keep this, leaving 4 new variants + 1 old variant: -3 files (5 total)
- only mainline Duckbill 2 (generic board) and maintain all other variants in a private Github repo (this is what we are doing now): -3 files (2 total)
So, I'll discuss this again internally. Do you have any preference?
I was also told off-list, that there should be an additional file in Documentation/devicetree/bindings/arm to document the imx28-duckbill binding.
And DT maintainers don't like the simple-bus stuff around the regulators.
So, I've already material to fix for v2 :-)
Michael
Quoted 55 lines
Shawn
[1] http://free-electrons.com/blog/dt-overlay-uboot-libfdt/
Quoted 50 lines
Since all devices are very similar and only differ in few aspects, the following patch series introduces first common device tree snippets which are then included by the real devices. For better understanding, I tried to illustrate the hierarchy:
...
[removed brocken ASCII art]
...Michael Heimpold (7):
ARM: dts: imx28: add alternative pinmuxing for mmc2
ARM: dts: imx28: renamemmc2_sck_cfgto prepare for an alternativemuxing setup
ARM: dts: imx28: add alternative muxing for
mmc2_sck_cfg
ARM: dts: add I2SE Duckbill common definitions
ARM: dts: duckbill: simplify DT and use common definitions
ARM: dts: add support for remaining members of Duckbill series
ARM: dts: add support for Duckbill 2 series devicesarch/arm/boot/dts/Makefile | 7 ++ arch/arm/boot/dts/imx28-duckbill-2-485.dts | 70 ++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-2-common.dtsi | 110 +++++++++++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-2-enocean.dts | 100 ++++++++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-2-spi.dts | 63 ++++++++++++++ arch/arm/boot/dts/imx28-duckbill-2.dts | 46 +++++++++++ arch/arm/boot/dts/imx28-duckbill-485.dts | 60 ++++++++++++++ arch/arm/boot/dts/imx28-duckbill-base.dtsi | 88 ++++++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-common.dtsi | 80 ++++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-enocean.dts | 90 ++++++++++++++++++++ arch/arm/boot/dts/imx28-duckbill-spi.dts | 64 ++++++++++++++ arch/arm/boot/dts/imx28-duckbill.dts | 99 +++------------------- arch/arm/boot/dts/imx28-m28cu3.dts | 2 +- arch/arm/boot/dts/imx28.dtsi | 28 ++++++- 14 files changed, 817 insertions(+), 90 deletions(-) create mode 100644 arch/arm/boot/dts/imx28-duckbill-2-485.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-2-common.dtsi create mode 100644 arch/arm/boot/dts/imx28-duckbill-2-enocean.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-2-spi.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-2.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-485.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-base.dtsi create mode 100644 arch/arm/boot/dts/imx28-duckbill-common.dtsi create mode 100644 arch/arm/boot/dts/imx28-duckbill-enocean.dts create mode 100644 arch/arm/boot/dts/imx28-duckbill-spi.dts
cover ARM: dts: support I2SE Duckbill device
Quoted 19 lines · Michael Heimpold
Actually it would even be 11 files for 8 boards, thats right. There is no mechanism (no EEPROM, GPIO...) to automatically probe for the device variants, and the "variant-forming daugther boards" are not switchable like the expansion boards e.g. for Raspberry Pi. Another point is, that this would really require to use U-Boot to apply the overlay (or another DT capable bootloader with this functionality). For booting very fast, the good old Freescale bootlets are still an option, which could not handle the overlays - at least at the moment... However, it still an option to have a second look...
To reduce the number of files, I see the following other approaches:
- don't use the three "common" files which are included: -3 files (8 total)
- don't mainline Duckbill EnOcean, Duckbill 485 and Duckbill SPI:
they are EOL, only Duckbill 2 variants are still sold;
however, since Duckbill (without 2) is/was already mainlined, we should keep this, leaving 4 new variants + 1 old variant: -3 files (5 total)
- only mainline Duckbill 2 (generic board) and maintain all other variants in a private Github repo (this is what we are doing now): -3 files (2 total)
Quoted 1 line
So, I'll discuss this again internally. Do you have any preference?
I'm fine with the second one.
Shawn