[PATCH 0/7] ARM: dts: support I2SE Duckbill device

Michael Heimpold mhei at heimpold.de
Mon Oct 24 12:45:56 PDT 2016


Am Montag, 24. Oktober 2016, 21:12:09 CEST schrieb Shawn Guo:
> On Sat, Oct 22, 2016 at 09:22:23PM +0200, Michael Heimpold wrote:
> > 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
> 
> 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

> 
> Shawn
> 
> [1] http://free-electrons.com/blog/dt-overlay-uboot-libfdt/
> 
> > 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: 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





More information about the linux-arm-kernel mailing list