[PATCH v3 00/21] ARM: support for ICP DAS LP-8x4x (with dts)

Sergei Ianovich ynvich at gmail.com
Tue Dec 17 14:37:30 EST 2013


Two review comments are not finally settled:

1. Use of new DMA
My  best guess is to split the patch in two, so that Daniel could easily
revert the workaround, once a solution is ready.

2. Device tree representation
I've put extbus into platform include file, since the bus is platform-
specific, not board-specific.

Frame support is now close to 95%, pluggable module support is
at around 20%. Most modules should be possible to handele by already
working get_DI/DO/AO set_DO/AO functions. I am not including support,
since I didn't actually tested the hardware. The same about RS232/485
pluggable port.

ICP DAS calls LP-8x4x 'programmable automation controller'. It is
an industrial computer based on PXA270 SoC. They ship it with a 2.6.19
kernel and proprietary kernel module and userspace library to access
its industrial IO.

This patch allows to boot the device with a modern kernel with device
tree. It adds support for:
* MMC card interface on PXA270
* USB 1.1 port on PXA270
* 2 NOR flash devices
* 2 onboard ethernet Davicom DM9000 devices
* 3 serial UART ports on PXA270
* front panel red LED
* 64bit 1-wire system ID chip
* 16 kiB EEPROM (reading)

Support for these devices will be added in separate patches, since
they are not currently supported by the kernel:
* DS1302 RTC
* 512kiB SRAM
* FPGA irq chip
* 3 built-in 16550A serial UART ports
* industrial IO parallel bus
* 10 position rotary switch
* 8 pin DIP switch
* 16 kiB EEPROM (writing)
* serial interface for digital and analog industrial IO modules on
  parallel bus (all I-87... modules)
* digital and analog industrial IO modules for parallel bus:
  ** I-8024 4 port analog output
  ** I-8041 32 port digital output
  ** I-8042 16 port digital output/16 port digital input

Not supported for now:
* VGA interface on PXA270 for lack of dts binding
* the rest of parallel bus (I-8...) modules for lack of hardware
* GPIO reset for lack of relevance (watchdog reset is working)

NOTE: USB support requires U-Boot patch series which setups GPIO.

Signed-off-by: Sergei Ianovich <ynvich at gmail.com>
CC: Daniel Mack <zonque at gmail.com>
CC: Arnd Bergmann <arnd at arndb.de>
CC: Haojian Zhuang <haojian.zhuang at gmail.com>

Sergei Ianovich (21):
  serial: rewrite pxa2xx-uart to use 8250_core
  ARM: dts: pxa2xx fix compatible strings
  ARM: dts: fix pxa27x-gpio interrupts
  ARM: dts: pxa3xx: move declaration to header
  ARM: dts: pxa27x: irq init using device tree
  ARM: dts: provide DMA config to pxamci on PXA27x
  ARM: dts: parse DMA config in pxamci
  ARM: pxa27x: device tree support ICP DAS LP-8x4x
  rtc: support DS1302 RTC on ICP DAS LP-8x4x
  mtd: support BB SRAM on ICP DAS LP-8x4x
  ARM: pxa: support ICP DAS LP-8x4x FPGA irq
  serial: support for 16550A serial ports on LP-8x4x
  misc: support for LP-8x4x custom parallel bus
  misc: support for LP-8x4x rotary switch
  misc: support for LP-8x4x DIP switch
  misc: support for writing to LP-8x4x EEPROM
  misc: support for serial slots in LP-8x4x
  misc: support for parallel slots in LP-8x4x
  misc: support for I-8041 in LP-8x4x
  misc: support for I-8042 in LP-8x4x
  misc: support for I-8024 in LP-8x4x

 .../bindings/interrupt-controller/irq-lp8x4x.txt   |  49 ++
 .../devicetree/bindings/misc/lp8x4x-bus.txt        |  34 +
 Documentation/devicetree/bindings/mmc/pxa-mmc.txt  |   5 +
 .../devicetree/bindings/rtc/rtc-ds1302.txt         |  14 +
 .../devicetree/bindings/serial/lp8x4x-serial.txt   |  35 +
 Documentation/misc-devices/lp8x4x_bus.txt          |  83 ++
 arch/arm/boot/dts/Makefile                         |   1 +
 arch/arm/boot/dts/pxa27x-lp8x4x.dts                | 224 +++++
 arch/arm/boot/dts/pxa27x.dtsi                      |  37 +
 arch/arm/boot/dts/pxa2xx.dtsi                      |   5 +-
 arch/arm/configs/am200epdkit_defconfig             |   3 +-
 arch/arm/configs/cm_x2xx_defconfig                 |   3 +-
 arch/arm/configs/cm_x300_defconfig                 |   3 +-
 arch/arm/configs/colibri_pxa270_defconfig          |   3 +-
 arch/arm/configs/colibri_pxa300_defconfig          |   3 +-
 arch/arm/configs/corgi_defconfig                   |   4 +-
 arch/arm/configs/em_x270_defconfig                 |   3 +-
 arch/arm/configs/ezx_defconfig                     |   3 +-
 arch/arm/configs/h5000_defconfig                   |   3 +-
 arch/arm/configs/imote2_defconfig                  |   3 +-
 arch/arm/configs/lp8x4x_defconfig                  | 172 ++++
 arch/arm/configs/lpd270_defconfig                  |   3 +-
 arch/arm/configs/lubbock_defconfig                 |   3 +-
 arch/arm/configs/mainstone_defconfig               |   3 +-
 arch/arm/configs/mmp2_defconfig                    |   3 +-
 arch/arm/configs/pcm027_defconfig                  |   3 +-
 arch/arm/configs/pxa168_defconfig                  |   3 +-
 arch/arm/configs/pxa255-idp_defconfig              |   3 +-
 arch/arm/configs/pxa3xx_defconfig                  |   3 +-
 arch/arm/configs/pxa910_defconfig                  |   3 +-
 arch/arm/configs/raumfeld_defconfig                |   3 +-
 arch/arm/configs/spitz_defconfig                   |   4 +-
 arch/arm/configs/trizeps4_defconfig                |   3 +-
 arch/arm/configs/viper_defconfig                   |   4 +-
 arch/arm/configs/xcep_defconfig                    |   3 +-
 arch/arm/mach-pxa/Kconfig                          |  15 +
 arch/arm/mach-pxa/Makefile                         |   1 +
 arch/arm/mach-pxa/include/mach/irqs.h              |   2 +
 arch/arm/mach-pxa/include/mach/pxa27x.h            |   1 +
 arch/arm/mach-pxa/pxa27x-dt.c                      |  64 ++
 arch/arm/mach-pxa/pxa27x.c                         |  10 +
 arch/arm/mach-pxa/pxa3xx.c                         |   2 -
 drivers/irqchip/Kconfig                            |   5 +
 drivers/irqchip/Makefile                           |   1 +
 drivers/irqchip/irq-lp8x4x.c                       | 205 +++++
 drivers/misc/Kconfig                               |  13 +
 drivers/misc/Makefile                              |   1 +
 drivers/misc/lp8x4x_bus.c                          | 665 ++++++++++++++
 drivers/mmc/host/pxamci.c                          |  59 +-
 drivers/mtd/devices/Kconfig                        |  14 +
 drivers/mtd/devices/Makefile                       |   1 +
 drivers/mtd/devices/sram_lp8x4x.c                  | 227 +++++
 drivers/rtc/Kconfig                                |   2 +-
 drivers/rtc/rtc-ds1302.c                           | 100 ++-
 drivers/tty/serial/8250/8250_lp8x4x.c              | 162 ++++
 drivers/tty/serial/8250/8250_pxa.c                 | 178 ++++
 drivers/tty/serial/8250/Kconfig                    |  21 +
 drivers/tty/serial/8250/Makefile                   |   2 +
 drivers/tty/serial/Kconfig                         |  23 -
 drivers/tty/serial/Makefile                        |   1 -
 drivers/tty/serial/pxa.c                           | 971 ---------------------
 61 files changed, 2439 insertions(+), 1041 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/interrupt-controller/irq-lp8x4x.txt
 create mode 100644 Documentation/devicetree/bindings/misc/lp8x4x-bus.txt
 create mode 100644 Documentation/devicetree/bindings/rtc/rtc-ds1302.txt
 create mode 100644 Documentation/devicetree/bindings/serial/lp8x4x-serial.txt
 create mode 100644 Documentation/misc-devices/lp8x4x_bus.txt
 create mode 100644 arch/arm/boot/dts/pxa27x-lp8x4x.dts
 create mode 100644 arch/arm/configs/lp8x4x_defconfig
 create mode 100644 arch/arm/mach-pxa/pxa27x-dt.c
 create mode 100644 drivers/irqchip/irq-lp8x4x.c
 create mode 100644 drivers/misc/lp8x4x_bus.c
 create mode 100644 drivers/mtd/devices/sram_lp8x4x.c
 create mode 100644 drivers/tty/serial/8250/8250_lp8x4x.c
 create mode 100644 drivers/tty/serial/8250/8250_pxa.c
 delete mode 100644 drivers/tty/serial/pxa.c

-- 
1.8.4.2




More information about the linux-arm-kernel mailing list