[PATCH v4 0/2] series to support for ICP DAS LP-8x4x (ARM PXA270)

Sergei Ianovich
2015-12-09T22:28:40Z

PXA device tree support has almost grown to the level when it becomes
possible to add device support without code changes. Thanks to everyone
involved.

The only obstacle with this device is character device major index
conflict between pxa serial and 8250 serial drivers. The first patch
fixes the conflict rewriting pxa serial using 8250 serial driver.

Device support is now close to 95%, pluggable module support is
at around 20%. It should be possible to handle most unsupported modules
by already working get_DI/DO/AO set_DO/AO functions. I am not including
support, since I didn't actually test the hardware. The same is true
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 the following 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-87xxx 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-8xxx) modules for lack of hardware
* GPIO reset for lack of relevance (watchdog reset is working)

Signed-off-by: Sergei Ianovich <ynvich@gmail.com>
CC: Daniel Mack <zonque@gmail.com>
CC: Arnd Bergmann <arnd@arndb.de>
CC: Robert Jarzmik <robert.jarzmik@free.fr>
CC: Haojian Zhuang <haojian.zhuang@gmail.com>

Sergei Ianovich (2):
serial: rewrite pxa2xx-uart to use 8250_core
arm: pxa27x: support for ICP DAS LP-8x4x w/ DT

.../devicetree/bindings/vendor-prefixes.txt | 1 +
arch/arm/boot/dts/Makefile | 3 +
arch/arm/boot/dts/pxa27x-lp8x4x-i105.dts | 50 ++
arch/arm/boot/dts/pxa27x-lp8x4x.dts | 260 ++++++
arch/arm/configs/am200epdkit_defconfig | 5 +-
arch/arm/configs/cm_x2xx_defconfig | 5 +-
arch/arm/configs/cm_x300_defconfig | 5 +-
arch/arm/configs/colibri_pxa270_defconfig | 5 +-
arch/arm/configs/colibri_pxa300_defconfig | 5 +-
arch/arm/configs/corgi_defconfig | 6 +-
arch/arm/configs/em_x270_defconfig | 5 +-
arch/arm/configs/ezx_defconfig | 5 +-
arch/arm/configs/h5000_defconfig | 5 +-
arch/arm/configs/imote2_defconfig | 5 +-
arch/arm/configs/lp8x4x_defconfig | 176 ++++
arch/arm/configs/lpd270_defconfig | 5 +-
arch/arm/configs/lubbock_defconfig | 5 +-
arch/arm/configs/mainstone_defconfig | 5 +-
arch/arm/configs/mmp2_defconfig | 5 +-
arch/arm/configs/pcm027_defconfig | 5 +-
arch/arm/configs/pxa168_defconfig | 5 +-
arch/arm/configs/pxa255-idp_defconfig | 5 +-
arch/arm/configs/pxa3xx_defconfig | 5 +-
arch/arm/configs/pxa910_defconfig | 5 +-
arch/arm/configs/raumfeld_defconfig | 5 +-
arch/arm/configs/spitz_defconfig | 6 +-
arch/arm/configs/trizeps4_defconfig | 5 +-
arch/arm/configs/viper_defconfig | 6 +-
arch/arm/configs/xcep_defconfig | 5 +-
drivers/tty/serial/8250/8250_pxa.c | 177 ++++
drivers/tty/serial/8250/Kconfig | 9 +
drivers/tty/serial/8250/Makefile | 1 +
drivers/tty/serial/Kconfig | 23 -
drivers/tty/serial/Makefile | 1 -
drivers/tty/serial/pxa.c | 968 ---------------------
35 files changed, 749 insertions(+), 1043 deletions(-)
create mode 100644 arch/arm/boot/dts/pxa27x-lp8x4x-i105.dts
create mode 100644 arch/arm/boot/dts/pxa27x-lp8x4x.dts
create mode 100644 arch/arm/configs/lp8x4x_defconfig
create mode 100644 drivers/tty/serial/8250/8250_pxa.c
delete mode 100644 drivers/tty/serial/pxa.c

--
2.6.2