From: ynvich@gmail.com (Sergei Ianovich)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 02/11] arm: pxa27x: support ICP DAS LP-8x4x
Date: Fri, 6 Dec 2013 20:48:58 +0400 [thread overview]
Message-ID: <1386348542-9584-1-git-send-email-ynvich@gmail.com> (raw)
In-Reply-To: <1385879185-22455-3-git-send-email-ynvich@gmail.com>
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. It adds
support for:
* FPGA irq chip
* MMC card interface on PXA270
* USB 1.1 port on PXA270
* 2 NOR flash devices
* VGA interface on PXA270
* 2 onboard ethernet Davicom DM9000 devices
* 3 serial UART ports on PXA270
Support for these devices will be added in separate patches, since
they are not currently supported by the kernel:
* DS1302 RTC
* 512kiB SRAM
* 3 built-in and up to 32 pluggable 8250 serial UART ports
* industrial IO parallel bus
* digital and analog industrial IO modules for parallel bus
* serial interface for digital and analog industrial IO modules on
parallel bus
Signed-off-by: Sergei Ianovich <ynvich@gmail.com>
CC: Arnd Bergmann <arnd@arndb.de>
---
changes v1..v2
* clean up defconfig (reduces size by 10) as suggested
by Arnd Bergmann
* fixed constant address definition to include (void *) cast
as suggested by Arnd Bergmann
* moved fixed virtual addresses into the machine source file.
Header file is dropped.
* static platform devices are replaced by dynamically allocated
as suggested by Arnd Bergmann
arch/arm/configs/lp8x4x_defconfig | 235 +++++++++++++++++++
arch/arm/mach-pxa/Kconfig | 16 ++
arch/arm/mach-pxa/Makefile | 1 +
arch/arm/mach-pxa/lp8x4x.c | 473 ++++++++++++++++++++++++++++++++++++++
4 files changed, 725 insertions(+)
create mode 100644 arch/arm/configs/lp8x4x_defconfig
create mode 100644 arch/arm/mach-pxa/lp8x4x.c
diff --git a/arch/arm/configs/lp8x4x_defconfig b/arch/arm/configs/lp8x4x_defconfig
new file mode 100644
index 0000000..2612e60
--- /dev/null
+++ b/arch/arm/configs/lp8x4x_defconfig
@@ -0,0 +1,235 @@
+CONFIG_CROSS_COMPILE="arm-linux-gnueabi-"
+# CONFIG_LOCALVERSION_AUTO is not set
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_RCU_BOOST=y
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_NAMESPACES=y
+# CONFIG_UTS_NS is not set
+# CONFIG_IPC_NS is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_UID16 is not set
+# CONFIG_SHMEM is not set
+CONFIG_EMBEDDED=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_SLOB=y
+CONFIG_JUMP_LABEL=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_LBDAF is not set
+CONFIG_BLK_CMDLINE_PARSER=y
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_LDM_PARTITION=y
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_IOSCHED_DEADLINE is not set
+CONFIG_ARCH_PXA=y
+CONFIG_MACH_LP8X4X=y
+# CONFIG_ARM_THUMB is not set
+CONFIG_PREEMPT=y
+CONFIG_AEABI=y
+# CONFIG_COMPACTION is not set
+# CONFIG_CROSS_MEMORY_ATTACH is not set
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="init=/sbin/init root=/dev/mmcblk0p1 rw rootfstype=ext4 console=ttyS0,115200 mem=128M rootwait"
+# CONFIG_SUSPEND is not set
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+# CONFIG_WIRELESS is not set
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_FW_LOADER is not set
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CFI=y
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_GEOMETRY=y
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_PXA2XX=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=2
+CONFIG_SCSI=y
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+# CONFIG_SCSI_LOWLEVEL is not set
+CONFIG_NETDEVICES=y
+CONFIG_BONDING=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_TUN=m
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_CADENCE is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CIRRUS is not set
+CONFIG_DM9000=y
+CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL=y
+# CONFIG_NET_VENDOR_FARADAY is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SMSC is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPPOE=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+# CONFIG_WLAN is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=800
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=600
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_SERIO is not set
+# CONFIG_DEVKMEM is not set
+CONFIG_SERIAL_8250=y
+# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=40
+CONFIG_SERIAL_8250_RUNTIME_UARTS=40
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_PXA=y
+CONFIG_HW_RANDOM=y
+CONFIG_I2C=m
+# CONFIG_I2C_COMPAT is not set
+CONFIG_I2C_PXA=m
+CONFIG_I2C_PXA_SLAVE=y
+# CONFIG_HWMON is not set
+CONFIG_WATCHDOG=y
+CONFIG_SA1100_WATCHDOG=m
+CONFIG_FB=y
+CONFIG_FB_PXA=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_LOGO=y
+CONFIG_HID_GENERIC=m
+CONFIG_HID_A4TECH=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_USB_HIDDEV=y
+CONFIG_I2C_HID=m
+CONFIG_USB=m
+CONFIG_USB_OHCI_HCD=m
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_STORAGE=m
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_SIMPLE=m
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SAFE_PADDED=y
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_XSENS_MT=m
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SERIAL_ZTE=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_QT2=m
+CONFIG_MMC=y
+CONFIG_MMC_PXA=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_PXA=m
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_EXT2_FS=m
+CONFIG_EXT3_FS=y
+CONFIG_EXT4_FS=y
+CONFIG_REISERFS_FS=m
+CONFIG_ISO9660_FS=m
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_NTFS_FS=m
+CONFIG_NTFS_RW=y
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V4=y
+CONFIG_ROOT_NFS=y
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+CONFIG_CODA_FS=m
+CONFIG_NLS_DEFAULT="cp1251"
+CONFIG_NLS_CODEPAGE_1251=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_UTF8=y
+CONFIG_PRINTK_TIME=y
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
index 96100db..efaf2d0 100644
--- a/arch/arm/mach-pxa/Kconfig
+++ b/arch/arm/mach-pxa/Kconfig
@@ -273,6 +273,22 @@ config MACH_VPAC270
comment "End-user Products (sorted by vendor name)"
+config MACH_LP8X4X
+ bool "ICP DAS LP-8X4X"
+ select IWMMXT
+ select PXA27x
+ help
+ Say Y here if you intend to run this kernel on an ICP DAS
+ LP-8x4x programmable automation controller.
+
+ LP-8x4x is ARM-based and built around PXA270 SoC. The device
+ has 128 MiB SDRAM, 48 or 96 MiB NOR flash, VGA port with
+ 800x600 resolution, MMC card slot, 2 Ethernet ports, 1 USB
+ port, 5 serial ports (1 on them is wired internally to
+ expansion slots). The device has a range of digital and
+ analog expansion IO modules which can be installed in 1, 4 or
+ 8 slots depending on the model.
+
config MACH_H4700
bool "HP iPAQ hx4700"
select HAVE_PWM
diff --git a/arch/arm/mach-pxa/Makefile b/arch/arm/mach-pxa/Makefile
index 648867a..b264325 100644
--- a/arch/arm/mach-pxa/Makefile
+++ b/arch/arm/mach-pxa/Makefile
@@ -63,6 +63,7 @@ obj-$(CONFIG_MACH_COLIBRI320) += colibri-pxa3xx.o colibri-pxa320.o
obj-$(CONFIG_MACH_VPAC270) += vpac270.o
# End-user Products
+obj-$(CONFIG_MACH_LP8X4X) += lp8x4x.o
obj-$(CONFIG_MACH_H4700) += hx4700.o
obj-$(CONFIG_MACH_H5000) += h5000.o
obj-$(CONFIG_MACH_HIMALAYA) += himalaya.o
diff --git a/arch/arm/mach-pxa/lp8x4x.c b/arch/arm/mach-pxa/lp8x4x.c
new file mode 100644
index 0000000..0d3d8c0
--- /dev/null
+++ b/arch/arm/mach-pxa/lp8x4x.c
@@ -0,0 +1,473 @@
+/*
+ * linux/arch/arm/mach-pxa/lp8x4x.c
+ *
+ * Support for ICP DAS LP-8x4x programmable automation controller
+ * Copyright (C) 2013 Sergei Ianovich <ynvich@gmail.com>
+ *
+ * borrowed heavily from
+ * Support for the Intel HCDDBBVA0 Development Platform.
+ *
+ * Author: Nicolas Pitre
+ * Created: Nov 05, 2002
+ * Copyright: MontaVista Software Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation or any later version.
+ */
+#include <linux/gpio.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/syscore_ops.h>
+#include <linux/interrupt.h>
+#include <linux/sched.h>
+#include <linux/bitops.h>
+#include <linux/fb.h>
+#include <linux/ioport.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/partitions.h>
+#include <linux/input.h>
+#include <linux/dm9000.h>
+#include <linux/slab.h>
+#include <linux/leds.h>
+#include <linux/ktime.h>
+#include <linux/irqchip/chained_irq.h>
+
+#include <asm/types.h>
+#include <asm/setup.h>
+#include <asm/memory.h>
+#include <asm/mach-types.h>
+#include <mach/hardware.h>
+#include <asm/irq.h>
+#include <asm/sizes.h>
+
+#include <asm/mach/arch.h>
+#include <asm/mach/map.h>
+#include <asm/mach/irq.h>
+#include <asm/mach/flash.h>
+
+#include <mach/irqs.h>
+#include <mach/pxa27x.h>
+#include <linux/platform_data/video-pxafb.h>
+#include <linux/platform_data/mmc-pxamci.h>
+#include <linux/platform_data/usb-ohci-pxa27x.h>
+#include <mach/smemc.h>
+
+#include "generic.h"
+#include "devices.h"
+
+#define LP8X4X_ETH0_BASE 0x0c000000
+#define LP8X4X_ETH0_IO 0x0c004000
+#define LP8X4X_ETH0_IRQ PXA_GPIO_TO_IRQ(9)
+
+#define LP8X4X_ETH1_BASE 0x0d000000
+#define LP8X4X_ETH1_IO 0x0d004000
+#define LP8X4X_ETH1_IRQ PXA_GPIO_TO_IRQ(82)
+
+#define LP8X4X_FPGA_PHYS 0x17000000
+#define LP8X4X_FPGA_VIRT ((void *) 0xf1000000)
+#define LP8X4X_P2V(x) IOMEM((x) - LP8X4X_FPGA_PHYS + LP8X4X_FPGA_VIRT)
+#define LP8X4X_V2P(x) ((x) - LP8X4X_FPGA_VIRT + LP8X4X_FPGA_PHYS)
+
+/* board level registers in the FPGA */
+
+#define LP8X4X_EOI LP8X4X_P2V(0x17009006)
+#define LP8X4X_INSINT LP8X4X_P2V(0x17009008)
+#define LP8X4X_ENSYSINT LP8X4X_P2V(0x1700900A)
+#define LP8X4X_PRIMINT LP8X4X_P2V(0x1700900C)
+#define LP8X4X_SECOINT LP8X4X_P2V(0x1700900E)
+#define LP8X4X_ENRISEINT LP8X4X_P2V(0x17009010)
+#define LP8X4X_CLRRISEINT LP8X4X_P2V(0x17009012)
+#define LP8X4X_ENHILVINT LP8X4X_P2V(0x17009014)
+#define LP8X4X_CLRHILVINT LP8X4X_P2V(0x17009016)
+#define LP8X4X_ENFALLINT LP8X4X_P2V(0x17009018)
+#define LP8X4X_CLRFALLINT LP8X4X_P2V(0x1700901a)
+
+/* board specific IRQs */
+
+#define LP8X4X_IRQ(x) (IRQ_BOARD_START + (x))
+#define LP8X4X_SLOT1_IRQ LP8X4X_IRQ(0)
+#define LP8X4X_SLOT2_IRQ LP8X4X_IRQ(1)
+#define LP8X4X_SLOT3_IRQ LP8X4X_IRQ(2)
+#define LP8X4X_SLOT4_IRQ LP8X4X_IRQ(3)
+#define LP8X4X_SLOT5_IRQ LP8X4X_IRQ(4)
+#define LP8X4X_SLOT6_IRQ LP8X4X_IRQ(5)
+#define LP8X4X_SLOT7_IRQ LP8X4X_IRQ(6)
+#define LP8X4X_SLOT8_IRQ LP8X4X_IRQ(7)
+#define LP8X4X_TIMER1_IRQ LP8X4X_IRQ(8)
+#define LP8X4X_TIMER2_IRQ LP8X4X_IRQ(9)
+#define LP8X4X_TIMEROUT_IRQ LP8X4X_IRQ(10)
+#define LP8X4X_HOTPLUG_IRQ LP8X4X_IRQ(11)
+#define LP8X4X_BATLOW_IRQ LP8X4X_IRQ(12)
+#define LP8X4X_TTYS0_IRQ LP8X4X_IRQ(13)
+#define LP8X4X_TTYS1_IRQ LP8X4X_IRQ(14)
+#define LP8X4X_TTYS2_IRQ LP8X4X_IRQ(15)
+
+#define LP8X4X_NR_IRQS (IRQ_BOARD_START + 16)
+
+static unsigned char lp8x4x_irq_sys_enabled;
+static unsigned char lp8x4x_irq_high_enabled;
+
+static void lp8x4x_ack_irq(struct irq_data *d)
+{
+ unsigned mask;
+ int irq = d->irq - IRQ_BOARD_START;
+
+ if (irq < 0 || irq > 15) {
+ pr_err("lp8x4x: wrong irq handler for irq %i\n", d->irq);
+ return;
+ }
+
+ if (irq < 8) {
+ mask = ioread8(LP8X4X_CLRHILVINT);
+ mask |= 1 << irq;
+ iowrite8(mask, LP8X4X_CLRHILVINT);
+ } else if (irq < 13) {
+ irq -= 8;
+ mask = ioread8(LP8X4X_SECOINT);
+ mask |= 1 << irq;
+ iowrite8(mask, LP8X4X_SECOINT);
+ } else {
+ irq -= 8;
+ mask = ioread8(LP8X4X_PRIMINT);
+ mask |= 1 << irq;
+ iowrite8(mask, LP8X4X_PRIMINT);
+ }
+}
+
+static void lp8x4x_mask_irq(struct irq_data *d)
+{
+ int irq = d->irq - IRQ_BOARD_START;
+
+ if (irq < 0 || irq > 15) {
+ pr_err("lp8x4x: wrong irq handler for irq %i\n", d->irq);
+ return;
+ }
+
+ if (irq < 8) {
+ lp8x4x_irq_high_enabled &= ~(1 << irq);
+ iowrite8(lp8x4x_irq_high_enabled, LP8X4X_ENHILVINT);
+ } else {
+ irq -= 8;
+ lp8x4x_irq_sys_enabled &= ~(1 << irq);
+ iowrite8(lp8x4x_irq_sys_enabled, LP8X4X_ENSYSINT);
+ }
+}
+
+static void lp8x4x_unmask_irq(struct irq_data *d)
+{
+ unsigned mask;
+ int irq = d->irq - IRQ_BOARD_START;
+
+ if (irq < 0 || irq > 15) {
+ pr_err("wrong irq handler for irq %i\n", d->irq);
+ return;
+ }
+
+ if (irq < 8) {
+ lp8x4x_irq_high_enabled |= 1 << irq;
+ mask = ioread8(LP8X4X_CLRHILVINT);
+ mask |= 1 << irq;
+ iowrite8(mask, LP8X4X_CLRHILVINT);
+ iowrite8(lp8x4x_irq_high_enabled, LP8X4X_ENHILVINT);
+ } else if (irq < 13) {
+ irq -= 8;
+ lp8x4x_irq_sys_enabled |= 1 << irq;
+ mask = ioread8(LP8X4X_SECOINT);
+ mask |= 1 << irq;
+ iowrite8(mask, LP8X4X_SECOINT);
+ iowrite8(lp8x4x_irq_sys_enabled, LP8X4X_ENSYSINT);
+ } else {
+ irq -= 8;
+ lp8x4x_irq_sys_enabled |= 1 << irq;
+ mask = ioread8(LP8X4X_PRIMINT);
+ mask |= 1 << irq;
+ iowrite8(mask, LP8X4X_PRIMINT);
+ iowrite8(lp8x4x_irq_sys_enabled, LP8X4X_ENSYSINT);
+ }
+}
+
+static struct irq_chip lp8x4x_irq_chip = {
+ .name = "FPGA",
+ .irq_ack = lp8x4x_ack_irq,
+ .irq_mask = lp8x4x_mask_irq,
+ .irq_unmask = lp8x4x_unmask_irq,
+};
+
+static spinlock_t fpga_irq_lock;
+
+static void lp8x4x_irq_handler(unsigned int irq, struct irq_desc *desc)
+{
+ int loop, n;
+ unsigned long mask;
+ unsigned long flags;
+ struct irq_chip *chip = irq_desc_get_chip(desc);
+
+ spin_lock_irqsave(&fpga_irq_lock, flags);
+ chained_irq_enter(chip, desc);
+
+ do {
+ loop = 0;
+ mask = ioread8(LP8X4X_CLRHILVINT) & 0xff;
+ mask |= (ioread8(LP8X4X_SECOINT) & 0x1f) << 8;
+ mask |= (ioread8(LP8X4X_PRIMINT) & 0xe0) << 8;
+ mask &= (lp8x4x_irq_high_enabled
+ | (lp8x4x_irq_sys_enabled << 8));
+ for_each_set_bit(n, &mask, BITS_PER_LONG) {
+ loop = 1;
+
+ generic_handle_irq(IRQ_BOARD_START + n);
+ }
+ } while (loop);
+
+ chained_irq_exit(chip, desc);
+ iowrite8(0, LP8X4X_EOI);
+ spin_unlock_irqrestore(&fpga_irq_lock, flags);
+}
+
+static void __init lp8x4x_init_irq(void)
+{
+ int irq;
+ int err;
+
+ err = irq_set_irq_type(PXA_GPIO_TO_IRQ(3), IRQ_TYPE_EDGE_RISING);
+ if (err < 0) {
+ pr_err("lp8x4x: irq init failed\n");
+ return;
+ }
+
+ spin_lock_init(&fpga_irq_lock);
+ irq_set_chained_handler(PXA_GPIO_TO_IRQ(3), lp8x4x_irq_handler);
+
+ for (irq = IRQ_BOARD_START; irq < LP8X4X_NR_IRQS; irq++) {
+ irq_set_chip_and_handler(irq, &lp8x4x_irq_chip,
+ handle_level_irq);
+ set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
+ }
+
+ iowrite8(0, LP8X4X_CLRRISEINT);
+ iowrite8(0, LP8X4X_ENRISEINT);
+ iowrite8(0, LP8X4X_CLRFALLINT);
+ iowrite8(0, LP8X4X_ENFALLINT);
+ iowrite8(0, LP8X4X_CLRHILVINT);
+ iowrite8(0, LP8X4X_ENHILVINT);
+ iowrite8(0, LP8X4X_ENSYSINT);
+ iowrite8(0, LP8X4X_PRIMINT);
+ iowrite8(0, LP8X4X_SECOINT);
+
+ return;
+}
+
+static unsigned long lp8x4x_pin_config[] = {
+ /* MMC */
+ GPIO32_MMC_CLK,
+ GPIO112_MMC_CMD,
+ GPIO92_MMC_DAT_0,
+ GPIO109_MMC_DAT_1,
+ GPIO110_MMC_DAT_2,
+ GPIO111_MMC_DAT_3,
+
+ /* USB Host Port 1 */
+ GPIO88_USBH1_PWR,
+ GPIO89_USBH1_PEN,
+};
+
+static struct resource lp8x4x_flash_resources[] __initdata = {
+ [0] = {
+ .start = PXA_CS0_PHYS,
+ .end = PXA_CS0_PHYS + SZ_64M - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = PXA_CS1_PHYS,
+ .end = PXA_CS1_PHYS + SZ_32M - 1,
+ .flags = IORESOURCE_MEM,
+ },
+};
+
+static struct mtd_partition lp8x4x_flash0_partitions[] = {
+ {
+ .name = "Bootloader",
+ .size = 0x00040000,
+ .offset = 0,
+ }, {
+ .name = "Settings",
+ .size = 0x00040000,
+ .offset = 0x00040000,
+ }, {
+ .name = "Kernel",
+ .size = 0x00280000,
+ .offset = 0x00080000,
+ }, {
+ .name = "Filesystem",
+ .size = MTDPART_SIZ_FULL,
+ .offset = 0x00300000
+ }
+};
+
+static struct flash_platform_data lp8x4x_flash_data[] __initdata = {
+ {
+ .map_name = "cfi_probe",
+ .parts = lp8x4x_flash0_partitions,
+ .nr_parts = ARRAY_SIZE(lp8x4x_flash0_partitions),
+ .width = 4,
+ }, {
+ .map_name = "cfi_probe",
+ .parts = NULL,
+ .nr_parts = 0,
+ .width = 2,
+ }
+};
+
+static struct pxafb_mode_info lp8x4x_vga_60_mode = {
+ .pixclock = 38461,
+ .xres = 640,
+ .yres = 480,
+ .bpp = 16,
+ .hsync_len = 64,
+ .left_margin = 78,
+ .right_margin = 46,
+ .vsync_len = 12,
+ .upper_margin = 22,
+ .lower_margin = 10,
+ .sync = 0,
+};
+
+static struct pxafb_mach_info lp8x4x_pxafb_info = {
+ .num_modes = 1,
+ .lccr0 = LCCR0_Act,
+ .lccr3 = LCCR3_PCP,
+};
+
+static int lp8x4x_mci_init(struct device *dev,
+ irq_handler_t mstone_detect_int, void *data)
+{
+ return 0;
+}
+
+static int lp8x4x_mci_setpower(struct device *dev, unsigned int vdd)
+{
+ return 0;
+}
+
+static void lp8x4x_mci_exit(struct device *dev, void *data)
+{
+}
+
+static struct pxamci_platform_data lp8x4x_mci_platform_data = {
+ .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
+ .init = lp8x4x_mci_init,
+ .setpower = lp8x4x_mci_setpower,
+ .exit = lp8x4x_mci_exit,
+ .gpio_card_detect = -1,
+ .gpio_card_ro = -1,
+ .gpio_power = -1,
+};
+
+static struct resource lp8x4x_dm9000_resources[] __initdata = {
+ [0] = {
+ .start = LP8X4X_ETH0_BASE,
+ .end = LP8X4X_ETH0_BASE + 2 - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = LP8X4X_ETH0_IO,
+ .end = LP8X4X_ETH0_IO + 2 - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ [2] = {
+ .start = LP8X4X_ETH0_IRQ,
+ .end = LP8X4X_ETH0_IRQ,
+ .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
+ },
+ [3] = {
+ .start = LP8X4X_ETH1_BASE,
+ .end = LP8X4X_ETH1_BASE + 2 - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ [4] = {
+ .start = LP8X4X_ETH1_IO,
+ .end = LP8X4X_ETH1_IO + 2 - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ [5] = {
+ .start = LP8X4X_ETH1_IRQ,
+ .end = LP8X4X_ETH1_IRQ,
+ .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
+ },
+};
+
+static struct pxaohci_platform_data lp8x4x_ohci_platform_data = {
+ .port_mode = PMM_PERPORT_MODE,
+ .flags = ENABLE_PORT1 | OC_MODE_PERPORT,
+};
+
+static void lp8x4x_restart(enum reboot_mode mode, const char *cmd)
+{
+ /* Switch off fast-bus and turbo mode */
+ asm volatile("mcr p14, 0, %0, c6, c0, 0" : :
+ "r"(2));
+ /* SDRAM hangs on watchdog reset on Marvell PXA270 (erratum 71) */
+ pxa_restart(REBOOT_SOFT, cmd);
+}
+
+static void __init lp8x4x_init(void)
+{
+ pxa2xx_mfp_config(ARRAY_AND_SIZE(lp8x4x_pin_config));
+
+ pxa_set_ffuart_info(NULL);
+ pxa_set_btuart_info(NULL);
+ pxa_set_stuart_info(NULL);
+
+ /* system bus arbiter setting
+ * - Core_Park
+ * - LCD_wt:DMA_wt:CORE_Wt = 2:3:4
+ */
+ ARB_CNTRL = ARB_CORE_PARK | 0x234;
+
+ pxa_set_mci_info(&lp8x4x_mci_platform_data);
+ pxa_set_ohci_info(&lp8x4x_ohci_platform_data);
+
+ platform_device_register_resndata(NULL, "pxa2xx-flash", 0,
+ &lp8x4x_flash_resources[0], 1,
+ &lp8x4x_flash_data[0], sizeof(lp8x4x_flash_data[0]));
+ platform_device_register_resndata(NULL, "pxa2xx-flash", 1,
+ &lp8x4x_flash_resources[1], 1,
+ &lp8x4x_flash_data[1], sizeof(lp8x4x_flash_data[1]));
+ platform_device_register_simple("dm9000", 0,
+ &lp8x4x_dm9000_resources[0], 3);
+ platform_device_register_simple("dm9000", 1,
+ &lp8x4x_dm9000_resources[3], 3);
+
+ lp8x4x_pxafb_info.modes = &lp8x4x_vga_60_mode;
+ pxa_set_fb_info(NULL, &lp8x4x_pxafb_info);
+
+ /* Could not do this in MACHINE since GPIO is not ready then */
+ lp8x4x_init_irq();
+}
+
+static struct map_desc lp8x4x_io_desc[] __initdata = {
+ { /* CPLD */
+ .virtual = (unsigned long) LP8X4X_FPGA_VIRT,
+ .pfn = __phys_to_pfn(LP8X4X_FPGA_PHYS),
+ .length = 0x00100000,
+ .type = MT_DEVICE
+ }
+};
+
+static void __init lp8x4x_map_io(void)
+{
+ pxa27x_map_io();
+ iotable_init(lp8x4x_io_desc, ARRAY_SIZE(lp8x4x_io_desc));
+}
+
+MACHINE_START(LP8X4X, "ICP DAS LP-8x4x programmable automation controller")
+ .atag_offset = 0x100,
+ .map_io = lp8x4x_map_io,
+ .nr_irqs = LP8X4X_NR_IRQS,
+ .init_irq = pxa27x_init_irq,
+ .handle_irq = pxa27x_handle_irq,
+ .init_time = pxa_timer_init,
+ .init_machine = lp8x4x_init,
+ .restart = lp8x4x_restart,
+MACHINE_END
--
1.8.4.2
WARNING: multiple messages have this Message-ID (diff)
From: Sergei Ianovich <ynvich@gmail.com>
To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Cc: Sergei Ianovich <ynvich@gmail.com>, Arnd Bergmann <arnd@arndb.de>,
Russell King <linux@arm.linux.org.uk>,
Eric Miao <eric.y.miao@gmail.com>,
Haojian Zhuang <haojian.zhuang@gmail.com>
Subject: [PATCH v2 02/11] arm: pxa27x: support ICP DAS LP-8x4x
Date: Fri, 6 Dec 2013 20:48:58 +0400 [thread overview]
Message-ID: <1386348542-9584-1-git-send-email-ynvich@gmail.com> (raw)
In-Reply-To: <1385879185-22455-3-git-send-email-ynvich@gmail.com>
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. It adds
support for:
* FPGA irq chip
* MMC card interface on PXA270
* USB 1.1 port on PXA270
* 2 NOR flash devices
* VGA interface on PXA270
* 2 onboard ethernet Davicom DM9000 devices
* 3 serial UART ports on PXA270
Support for these devices will be added in separate patches, since
they are not currently supported by the kernel:
* DS1302 RTC
* 512kiB SRAM
* 3 built-in and up to 32 pluggable 8250 serial UART ports
* industrial IO parallel bus
* digital and analog industrial IO modules for parallel bus
* serial interface for digital and analog industrial IO modules on
parallel bus
Signed-off-by: Sergei Ianovich <ynvich@gmail.com>
CC: Arnd Bergmann <arnd@arndb.de>
---
changes v1..v2
* clean up defconfig (reduces size by 10) as suggested
by Arnd Bergmann
* fixed constant address definition to include (void *) cast
as suggested by Arnd Bergmann
* moved fixed virtual addresses into the machine source file.
Header file is dropped.
* static platform devices are replaced by dynamically allocated
as suggested by Arnd Bergmann
arch/arm/configs/lp8x4x_defconfig | 235 +++++++++++++++++++
arch/arm/mach-pxa/Kconfig | 16 ++
arch/arm/mach-pxa/Makefile | 1 +
arch/arm/mach-pxa/lp8x4x.c | 473 ++++++++++++++++++++++++++++++++++++++
4 files changed, 725 insertions(+)
create mode 100644 arch/arm/configs/lp8x4x_defconfig
create mode 100644 arch/arm/mach-pxa/lp8x4x.c
diff --git a/arch/arm/configs/lp8x4x_defconfig b/arch/arm/configs/lp8x4x_defconfig
new file mode 100644
index 0000000..2612e60
--- /dev/null
+++ b/arch/arm/configs/lp8x4x_defconfig
@@ -0,0 +1,235 @@
+CONFIG_CROSS_COMPILE="arm-linux-gnueabi-"
+# CONFIG_LOCALVERSION_AUTO is not set
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_RCU_BOOST=y
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_NAMESPACES=y
+# CONFIG_UTS_NS is not set
+# CONFIG_IPC_NS is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_UID16 is not set
+# CONFIG_SHMEM is not set
+CONFIG_EMBEDDED=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_SLOB=y
+CONFIG_JUMP_LABEL=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_LBDAF is not set
+CONFIG_BLK_CMDLINE_PARSER=y
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_LDM_PARTITION=y
+# CONFIG_EFI_PARTITION is not set
+# CONFIG_IOSCHED_DEADLINE is not set
+CONFIG_ARCH_PXA=y
+CONFIG_MACH_LP8X4X=y
+# CONFIG_ARM_THUMB is not set
+CONFIG_PREEMPT=y
+CONFIG_AEABI=y
+# CONFIG_COMPACTION is not set
+# CONFIG_CROSS_MEMORY_ATTACH is not set
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="init=/sbin/init root=/dev/mmcblk0p1 rw rootfstype=ext4 console=ttyS0,115200 mem=128M rootwait"
+# CONFIG_SUSPEND is not set
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_VLAN_FILTERING=y
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+# CONFIG_WIRELESS is not set
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_FW_LOADER is not set
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CFI=y
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_GEOMETRY=y
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_PXA2XX=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=2
+CONFIG_SCSI=y
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_BLK_DEV_SD=y
+# CONFIG_SCSI_LOWLEVEL is not set
+CONFIG_NETDEVICES=y
+CONFIG_BONDING=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_TUN=m
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_CADENCE is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CIRRUS is not set
+CONFIG_DM9000=y
+CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL=y
+# CONFIG_NET_VENDOR_FARADAY is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SMSC is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+# CONFIG_NET_VENDOR_VIA is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPPOE=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+# CONFIG_WLAN is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=800
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=600
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_SERIO is not set
+# CONFIG_DEVKMEM is not set
+CONFIG_SERIAL_8250=y
+# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=40
+CONFIG_SERIAL_8250_RUNTIME_UARTS=40
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_PXA=y
+CONFIG_HW_RANDOM=y
+CONFIG_I2C=m
+# CONFIG_I2C_COMPAT is not set
+CONFIG_I2C_PXA=m
+CONFIG_I2C_PXA_SLAVE=y
+# CONFIG_HWMON is not set
+CONFIG_WATCHDOG=y
+CONFIG_SA1100_WATCHDOG=m
+CONFIG_FB=y
+CONFIG_FB_PXA=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_LOGO=y
+CONFIG_HID_GENERIC=m
+CONFIG_HID_A4TECH=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_USB_HIDDEV=y
+CONFIG_I2C_HID=m
+CONFIG_USB=m
+CONFIG_USB_OHCI_HCD=m
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_STORAGE=m
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_SIMPLE=m
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SAFE_PADDED=y
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_XSENS_MT=m
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SERIAL_ZTE=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_QT2=m
+CONFIG_MMC=y
+CONFIG_MMC_PXA=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_PXA=m
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_EXT2_FS=m
+CONFIG_EXT3_FS=y
+CONFIG_EXT4_FS=y
+CONFIG_REISERFS_FS=m
+CONFIG_ISO9660_FS=m
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_NTFS_FS=m
+CONFIG_NTFS_RW=y
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V4=y
+CONFIG_ROOT_NFS=y
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+CONFIG_CODA_FS=m
+CONFIG_NLS_DEFAULT="cp1251"
+CONFIG_NLS_CODEPAGE_1251=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_UTF8=y
+CONFIG_PRINTK_TIME=y
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
index 96100db..efaf2d0 100644
--- a/arch/arm/mach-pxa/Kconfig
+++ b/arch/arm/mach-pxa/Kconfig
@@ -273,6 +273,22 @@ config MACH_VPAC270
comment "End-user Products (sorted by vendor name)"
+config MACH_LP8X4X
+ bool "ICP DAS LP-8X4X"
+ select IWMMXT
+ select PXA27x
+ help
+ Say Y here if you intend to run this kernel on an ICP DAS
+ LP-8x4x programmable automation controller.
+
+ LP-8x4x is ARM-based and built around PXA270 SoC. The device
+ has 128 MiB SDRAM, 48 or 96 MiB NOR flash, VGA port with
+ 800x600 resolution, MMC card slot, 2 Ethernet ports, 1 USB
+ port, 5 serial ports (1 on them is wired internally to
+ expansion slots). The device has a range of digital and
+ analog expansion IO modules which can be installed in 1, 4 or
+ 8 slots depending on the model.
+
config MACH_H4700
bool "HP iPAQ hx4700"
select HAVE_PWM
diff --git a/arch/arm/mach-pxa/Makefile b/arch/arm/mach-pxa/Makefile
index 648867a..b264325 100644
--- a/arch/arm/mach-pxa/Makefile
+++ b/arch/arm/mach-pxa/Makefile
@@ -63,6 +63,7 @@ obj-$(CONFIG_MACH_COLIBRI320) += colibri-pxa3xx.o colibri-pxa320.o
obj-$(CONFIG_MACH_VPAC270) += vpac270.o
# End-user Products
+obj-$(CONFIG_MACH_LP8X4X) += lp8x4x.o
obj-$(CONFIG_MACH_H4700) += hx4700.o
obj-$(CONFIG_MACH_H5000) += h5000.o
obj-$(CONFIG_MACH_HIMALAYA) += himalaya.o
diff --git a/arch/arm/mach-pxa/lp8x4x.c b/arch/arm/mach-pxa/lp8x4x.c
new file mode 100644
index 0000000..0d3d8c0
--- /dev/null
+++ b/arch/arm/mach-pxa/lp8x4x.c
@@ -0,0 +1,473 @@
+/*
+ * linux/arch/arm/mach-pxa/lp8x4x.c
+ *
+ * Support for ICP DAS LP-8x4x programmable automation controller
+ * Copyright (C) 2013 Sergei Ianovich <ynvich@gmail.com>
+ *
+ * borrowed heavily from
+ * Support for the Intel HCDDBBVA0 Development Platform.
+ *
+ * Author: Nicolas Pitre
+ * Created: Nov 05, 2002
+ * Copyright: MontaVista Software Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation or any later version.
+ */
+#include <linux/gpio.h>
+#include <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/syscore_ops.h>
+#include <linux/interrupt.h>
+#include <linux/sched.h>
+#include <linux/bitops.h>
+#include <linux/fb.h>
+#include <linux/ioport.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/partitions.h>
+#include <linux/input.h>
+#include <linux/dm9000.h>
+#include <linux/slab.h>
+#include <linux/leds.h>
+#include <linux/ktime.h>
+#include <linux/irqchip/chained_irq.h>
+
+#include <asm/types.h>
+#include <asm/setup.h>
+#include <asm/memory.h>
+#include <asm/mach-types.h>
+#include <mach/hardware.h>
+#include <asm/irq.h>
+#include <asm/sizes.h>
+
+#include <asm/mach/arch.h>
+#include <asm/mach/map.h>
+#include <asm/mach/irq.h>
+#include <asm/mach/flash.h>
+
+#include <mach/irqs.h>
+#include <mach/pxa27x.h>
+#include <linux/platform_data/video-pxafb.h>
+#include <linux/platform_data/mmc-pxamci.h>
+#include <linux/platform_data/usb-ohci-pxa27x.h>
+#include <mach/smemc.h>
+
+#include "generic.h"
+#include "devices.h"
+
+#define LP8X4X_ETH0_BASE 0x0c000000
+#define LP8X4X_ETH0_IO 0x0c004000
+#define LP8X4X_ETH0_IRQ PXA_GPIO_TO_IRQ(9)
+
+#define LP8X4X_ETH1_BASE 0x0d000000
+#define LP8X4X_ETH1_IO 0x0d004000
+#define LP8X4X_ETH1_IRQ PXA_GPIO_TO_IRQ(82)
+
+#define LP8X4X_FPGA_PHYS 0x17000000
+#define LP8X4X_FPGA_VIRT ((void *) 0xf1000000)
+#define LP8X4X_P2V(x) IOMEM((x) - LP8X4X_FPGA_PHYS + LP8X4X_FPGA_VIRT)
+#define LP8X4X_V2P(x) ((x) - LP8X4X_FPGA_VIRT + LP8X4X_FPGA_PHYS)
+
+/* board level registers in the FPGA */
+
+#define LP8X4X_EOI LP8X4X_P2V(0x17009006)
+#define LP8X4X_INSINT LP8X4X_P2V(0x17009008)
+#define LP8X4X_ENSYSINT LP8X4X_P2V(0x1700900A)
+#define LP8X4X_PRIMINT LP8X4X_P2V(0x1700900C)
+#define LP8X4X_SECOINT LP8X4X_P2V(0x1700900E)
+#define LP8X4X_ENRISEINT LP8X4X_P2V(0x17009010)
+#define LP8X4X_CLRRISEINT LP8X4X_P2V(0x17009012)
+#define LP8X4X_ENHILVINT LP8X4X_P2V(0x17009014)
+#define LP8X4X_CLRHILVINT LP8X4X_P2V(0x17009016)
+#define LP8X4X_ENFALLINT LP8X4X_P2V(0x17009018)
+#define LP8X4X_CLRFALLINT LP8X4X_P2V(0x1700901a)
+
+/* board specific IRQs */
+
+#define LP8X4X_IRQ(x) (IRQ_BOARD_START + (x))
+#define LP8X4X_SLOT1_IRQ LP8X4X_IRQ(0)
+#define LP8X4X_SLOT2_IRQ LP8X4X_IRQ(1)
+#define LP8X4X_SLOT3_IRQ LP8X4X_IRQ(2)
+#define LP8X4X_SLOT4_IRQ LP8X4X_IRQ(3)
+#define LP8X4X_SLOT5_IRQ LP8X4X_IRQ(4)
+#define LP8X4X_SLOT6_IRQ LP8X4X_IRQ(5)
+#define LP8X4X_SLOT7_IRQ LP8X4X_IRQ(6)
+#define LP8X4X_SLOT8_IRQ LP8X4X_IRQ(7)
+#define LP8X4X_TIMER1_IRQ LP8X4X_IRQ(8)
+#define LP8X4X_TIMER2_IRQ LP8X4X_IRQ(9)
+#define LP8X4X_TIMEROUT_IRQ LP8X4X_IRQ(10)
+#define LP8X4X_HOTPLUG_IRQ LP8X4X_IRQ(11)
+#define LP8X4X_BATLOW_IRQ LP8X4X_IRQ(12)
+#define LP8X4X_TTYS0_IRQ LP8X4X_IRQ(13)
+#define LP8X4X_TTYS1_IRQ LP8X4X_IRQ(14)
+#define LP8X4X_TTYS2_IRQ LP8X4X_IRQ(15)
+
+#define LP8X4X_NR_IRQS (IRQ_BOARD_START + 16)
+
+static unsigned char lp8x4x_irq_sys_enabled;
+static unsigned char lp8x4x_irq_high_enabled;
+
+static void lp8x4x_ack_irq(struct irq_data *d)
+{
+ unsigned mask;
+ int irq = d->irq - IRQ_BOARD_START;
+
+ if (irq < 0 || irq > 15) {
+ pr_err("lp8x4x: wrong irq handler for irq %i\n", d->irq);
+ return;
+ }
+
+ if (irq < 8) {
+ mask = ioread8(LP8X4X_CLRHILVINT);
+ mask |= 1 << irq;
+ iowrite8(mask, LP8X4X_CLRHILVINT);
+ } else if (irq < 13) {
+ irq -= 8;
+ mask = ioread8(LP8X4X_SECOINT);
+ mask |= 1 << irq;
+ iowrite8(mask, LP8X4X_SECOINT);
+ } else {
+ irq -= 8;
+ mask = ioread8(LP8X4X_PRIMINT);
+ mask |= 1 << irq;
+ iowrite8(mask, LP8X4X_PRIMINT);
+ }
+}
+
+static void lp8x4x_mask_irq(struct irq_data *d)
+{
+ int irq = d->irq - IRQ_BOARD_START;
+
+ if (irq < 0 || irq > 15) {
+ pr_err("lp8x4x: wrong irq handler for irq %i\n", d->irq);
+ return;
+ }
+
+ if (irq < 8) {
+ lp8x4x_irq_high_enabled &= ~(1 << irq);
+ iowrite8(lp8x4x_irq_high_enabled, LP8X4X_ENHILVINT);
+ } else {
+ irq -= 8;
+ lp8x4x_irq_sys_enabled &= ~(1 << irq);
+ iowrite8(lp8x4x_irq_sys_enabled, LP8X4X_ENSYSINT);
+ }
+}
+
+static void lp8x4x_unmask_irq(struct irq_data *d)
+{
+ unsigned mask;
+ int irq = d->irq - IRQ_BOARD_START;
+
+ if (irq < 0 || irq > 15) {
+ pr_err("wrong irq handler for irq %i\n", d->irq);
+ return;
+ }
+
+ if (irq < 8) {
+ lp8x4x_irq_high_enabled |= 1 << irq;
+ mask = ioread8(LP8X4X_CLRHILVINT);
+ mask |= 1 << irq;
+ iowrite8(mask, LP8X4X_CLRHILVINT);
+ iowrite8(lp8x4x_irq_high_enabled, LP8X4X_ENHILVINT);
+ } else if (irq < 13) {
+ irq -= 8;
+ lp8x4x_irq_sys_enabled |= 1 << irq;
+ mask = ioread8(LP8X4X_SECOINT);
+ mask |= 1 << irq;
+ iowrite8(mask, LP8X4X_SECOINT);
+ iowrite8(lp8x4x_irq_sys_enabled, LP8X4X_ENSYSINT);
+ } else {
+ irq -= 8;
+ lp8x4x_irq_sys_enabled |= 1 << irq;
+ mask = ioread8(LP8X4X_PRIMINT);
+ mask |= 1 << irq;
+ iowrite8(mask, LP8X4X_PRIMINT);
+ iowrite8(lp8x4x_irq_sys_enabled, LP8X4X_ENSYSINT);
+ }
+}
+
+static struct irq_chip lp8x4x_irq_chip = {
+ .name = "FPGA",
+ .irq_ack = lp8x4x_ack_irq,
+ .irq_mask = lp8x4x_mask_irq,
+ .irq_unmask = lp8x4x_unmask_irq,
+};
+
+static spinlock_t fpga_irq_lock;
+
+static void lp8x4x_irq_handler(unsigned int irq, struct irq_desc *desc)
+{
+ int loop, n;
+ unsigned long mask;
+ unsigned long flags;
+ struct irq_chip *chip = irq_desc_get_chip(desc);
+
+ spin_lock_irqsave(&fpga_irq_lock, flags);
+ chained_irq_enter(chip, desc);
+
+ do {
+ loop = 0;
+ mask = ioread8(LP8X4X_CLRHILVINT) & 0xff;
+ mask |= (ioread8(LP8X4X_SECOINT) & 0x1f) << 8;
+ mask |= (ioread8(LP8X4X_PRIMINT) & 0xe0) << 8;
+ mask &= (lp8x4x_irq_high_enabled
+ | (lp8x4x_irq_sys_enabled << 8));
+ for_each_set_bit(n, &mask, BITS_PER_LONG) {
+ loop = 1;
+
+ generic_handle_irq(IRQ_BOARD_START + n);
+ }
+ } while (loop);
+
+ chained_irq_exit(chip, desc);
+ iowrite8(0, LP8X4X_EOI);
+ spin_unlock_irqrestore(&fpga_irq_lock, flags);
+}
+
+static void __init lp8x4x_init_irq(void)
+{
+ int irq;
+ int err;
+
+ err = irq_set_irq_type(PXA_GPIO_TO_IRQ(3), IRQ_TYPE_EDGE_RISING);
+ if (err < 0) {
+ pr_err("lp8x4x: irq init failed\n");
+ return;
+ }
+
+ spin_lock_init(&fpga_irq_lock);
+ irq_set_chained_handler(PXA_GPIO_TO_IRQ(3), lp8x4x_irq_handler);
+
+ for (irq = IRQ_BOARD_START; irq < LP8X4X_NR_IRQS; irq++) {
+ irq_set_chip_and_handler(irq, &lp8x4x_irq_chip,
+ handle_level_irq);
+ set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
+ }
+
+ iowrite8(0, LP8X4X_CLRRISEINT);
+ iowrite8(0, LP8X4X_ENRISEINT);
+ iowrite8(0, LP8X4X_CLRFALLINT);
+ iowrite8(0, LP8X4X_ENFALLINT);
+ iowrite8(0, LP8X4X_CLRHILVINT);
+ iowrite8(0, LP8X4X_ENHILVINT);
+ iowrite8(0, LP8X4X_ENSYSINT);
+ iowrite8(0, LP8X4X_PRIMINT);
+ iowrite8(0, LP8X4X_SECOINT);
+
+ return;
+}
+
+static unsigned long lp8x4x_pin_config[] = {
+ /* MMC */
+ GPIO32_MMC_CLK,
+ GPIO112_MMC_CMD,
+ GPIO92_MMC_DAT_0,
+ GPIO109_MMC_DAT_1,
+ GPIO110_MMC_DAT_2,
+ GPIO111_MMC_DAT_3,
+
+ /* USB Host Port 1 */
+ GPIO88_USBH1_PWR,
+ GPIO89_USBH1_PEN,
+};
+
+static struct resource lp8x4x_flash_resources[] __initdata = {
+ [0] = {
+ .start = PXA_CS0_PHYS,
+ .end = PXA_CS0_PHYS + SZ_64M - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = PXA_CS1_PHYS,
+ .end = PXA_CS1_PHYS + SZ_32M - 1,
+ .flags = IORESOURCE_MEM,
+ },
+};
+
+static struct mtd_partition lp8x4x_flash0_partitions[] = {
+ {
+ .name = "Bootloader",
+ .size = 0x00040000,
+ .offset = 0,
+ }, {
+ .name = "Settings",
+ .size = 0x00040000,
+ .offset = 0x00040000,
+ }, {
+ .name = "Kernel",
+ .size = 0x00280000,
+ .offset = 0x00080000,
+ }, {
+ .name = "Filesystem",
+ .size = MTDPART_SIZ_FULL,
+ .offset = 0x00300000
+ }
+};
+
+static struct flash_platform_data lp8x4x_flash_data[] __initdata = {
+ {
+ .map_name = "cfi_probe",
+ .parts = lp8x4x_flash0_partitions,
+ .nr_parts = ARRAY_SIZE(lp8x4x_flash0_partitions),
+ .width = 4,
+ }, {
+ .map_name = "cfi_probe",
+ .parts = NULL,
+ .nr_parts = 0,
+ .width = 2,
+ }
+};
+
+static struct pxafb_mode_info lp8x4x_vga_60_mode = {
+ .pixclock = 38461,
+ .xres = 640,
+ .yres = 480,
+ .bpp = 16,
+ .hsync_len = 64,
+ .left_margin = 78,
+ .right_margin = 46,
+ .vsync_len = 12,
+ .upper_margin = 22,
+ .lower_margin = 10,
+ .sync = 0,
+};
+
+static struct pxafb_mach_info lp8x4x_pxafb_info = {
+ .num_modes = 1,
+ .lccr0 = LCCR0_Act,
+ .lccr3 = LCCR3_PCP,
+};
+
+static int lp8x4x_mci_init(struct device *dev,
+ irq_handler_t mstone_detect_int, void *data)
+{
+ return 0;
+}
+
+static int lp8x4x_mci_setpower(struct device *dev, unsigned int vdd)
+{
+ return 0;
+}
+
+static void lp8x4x_mci_exit(struct device *dev, void *data)
+{
+}
+
+static struct pxamci_platform_data lp8x4x_mci_platform_data = {
+ .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
+ .init = lp8x4x_mci_init,
+ .setpower = lp8x4x_mci_setpower,
+ .exit = lp8x4x_mci_exit,
+ .gpio_card_detect = -1,
+ .gpio_card_ro = -1,
+ .gpio_power = -1,
+};
+
+static struct resource lp8x4x_dm9000_resources[] __initdata = {
+ [0] = {
+ .start = LP8X4X_ETH0_BASE,
+ .end = LP8X4X_ETH0_BASE + 2 - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = LP8X4X_ETH0_IO,
+ .end = LP8X4X_ETH0_IO + 2 - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ [2] = {
+ .start = LP8X4X_ETH0_IRQ,
+ .end = LP8X4X_ETH0_IRQ,
+ .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
+ },
+ [3] = {
+ .start = LP8X4X_ETH1_BASE,
+ .end = LP8X4X_ETH1_BASE + 2 - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ [4] = {
+ .start = LP8X4X_ETH1_IO,
+ .end = LP8X4X_ETH1_IO + 2 - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ [5] = {
+ .start = LP8X4X_ETH1_IRQ,
+ .end = LP8X4X_ETH1_IRQ,
+ .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
+ },
+};
+
+static struct pxaohci_platform_data lp8x4x_ohci_platform_data = {
+ .port_mode = PMM_PERPORT_MODE,
+ .flags = ENABLE_PORT1 | OC_MODE_PERPORT,
+};
+
+static void lp8x4x_restart(enum reboot_mode mode, const char *cmd)
+{
+ /* Switch off fast-bus and turbo mode */
+ asm volatile("mcr p14, 0, %0, c6, c0, 0" : :
+ "r"(2));
+ /* SDRAM hangs on watchdog reset on Marvell PXA270 (erratum 71) */
+ pxa_restart(REBOOT_SOFT, cmd);
+}
+
+static void __init lp8x4x_init(void)
+{
+ pxa2xx_mfp_config(ARRAY_AND_SIZE(lp8x4x_pin_config));
+
+ pxa_set_ffuart_info(NULL);
+ pxa_set_btuart_info(NULL);
+ pxa_set_stuart_info(NULL);
+
+ /* system bus arbiter setting
+ * - Core_Park
+ * - LCD_wt:DMA_wt:CORE_Wt = 2:3:4
+ */
+ ARB_CNTRL = ARB_CORE_PARK | 0x234;
+
+ pxa_set_mci_info(&lp8x4x_mci_platform_data);
+ pxa_set_ohci_info(&lp8x4x_ohci_platform_data);
+
+ platform_device_register_resndata(NULL, "pxa2xx-flash", 0,
+ &lp8x4x_flash_resources[0], 1,
+ &lp8x4x_flash_data[0], sizeof(lp8x4x_flash_data[0]));
+ platform_device_register_resndata(NULL, "pxa2xx-flash", 1,
+ &lp8x4x_flash_resources[1], 1,
+ &lp8x4x_flash_data[1], sizeof(lp8x4x_flash_data[1]));
+ platform_device_register_simple("dm9000", 0,
+ &lp8x4x_dm9000_resources[0], 3);
+ platform_device_register_simple("dm9000", 1,
+ &lp8x4x_dm9000_resources[3], 3);
+
+ lp8x4x_pxafb_info.modes = &lp8x4x_vga_60_mode;
+ pxa_set_fb_info(NULL, &lp8x4x_pxafb_info);
+
+ /* Could not do this in MACHINE since GPIO is not ready then */
+ lp8x4x_init_irq();
+}
+
+static struct map_desc lp8x4x_io_desc[] __initdata = {
+ { /* CPLD */
+ .virtual = (unsigned long) LP8X4X_FPGA_VIRT,
+ .pfn = __phys_to_pfn(LP8X4X_FPGA_PHYS),
+ .length = 0x00100000,
+ .type = MT_DEVICE
+ }
+};
+
+static void __init lp8x4x_map_io(void)
+{
+ pxa27x_map_io();
+ iotable_init(lp8x4x_io_desc, ARRAY_SIZE(lp8x4x_io_desc));
+}
+
+MACHINE_START(LP8X4X, "ICP DAS LP-8x4x programmable automation controller")
+ .atag_offset = 0x100,
+ .map_io = lp8x4x_map_io,
+ .nr_irqs = LP8X4X_NR_IRQS,
+ .init_irq = pxa27x_init_irq,
+ .handle_irq = pxa27x_handle_irq,
+ .init_time = pxa_timer_init,
+ .init_machine = lp8x4x_init,
+ .restart = lp8x4x_restart,
+MACHINE_END
--
1.8.4.2
next prev parent reply other threads:[~2013-12-06 16:48 UTC|newest]
Thread overview: 679+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-01 6:26 [PATCH 00/11] ARM: support for ICP DAS LP-8x4x Sergei Ianovich
2013-12-01 6:26 ` Sergei Ianovich
2013-12-01 6:26 ` [PATCH 01/11] resolve PXA<->8250 serial device address conflict Sergei Ianovich
2013-12-01 6:26 ` Sergei Ianovich
2013-12-01 6:26 ` Sergei Ianovich
2013-12-02 9:02 ` Heikki Krogerus
2013-12-02 9:02 ` Heikki Krogerus
2013-12-02 9:23 ` Sergei Ianovich
2013-12-02 9:23 ` Sergei Ianovich
2013-12-02 9:49 ` Heikki Krogerus
2013-12-02 9:49 ` Heikki Krogerus
2013-12-02 10:26 ` Sergei Ianovich
2013-12-02 10:26 ` Sergei Ianovich
2013-12-02 14:10 ` Heikki Krogerus
2013-12-02 14:10 ` Heikki Krogerus
2013-12-05 4:12 ` Greg Kroah-Hartman
2013-12-05 4:12 ` Greg Kroah-Hartman
2013-12-05 4:31 ` Sergei Ianovich
2013-12-05 4:31 ` Sergei Ianovich
2013-12-05 4:35 ` Greg Kroah-Hartman
2013-12-05 4:35 ` Greg Kroah-Hartman
2013-12-05 4:36 ` Sergei Ianovich
2013-12-05 4:36 ` Sergei Ianovich
[not found] ` <20131205043544.GA28580-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2013-12-05 23:28 ` [PATCH] serial: rewrite pxa2xx-uart to use 8250_core Sergei Ianovich
2013-12-05 23:28 ` Sergei Ianovich
2013-12-05 23:28 ` Sergei Ianovich
[not found] ` <1386286149-2855-1-git-send-email-ynvich-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-12-06 0:02 ` Greg Kroah-Hartman
2013-12-06 0:02 ` Greg Kroah-Hartman
2013-12-06 0:02 ` Greg Kroah-Hartman
[not found] ` <20131206000253.GC21358-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2013-12-06 0:17 ` Russell King - ARM Linux
2013-12-06 0:17 ` Russell King - ARM Linux
2013-12-06 0:17 ` Russell King - ARM Linux
2013-12-06 9:28 ` Sergei Ianovich
2013-12-06 9:28 ` Sergei Ianovich
2013-12-06 9:53 ` James Cameron
2013-12-06 9:53 ` James Cameron
2013-12-06 10:34 ` Sergei Ianovich
2013-12-06 10:34 ` Sergei Ianovich
2013-12-06 11:05 ` James Cameron
2013-12-06 11:05 ` James Cameron
2013-12-06 0:38 ` James Cameron
2013-12-06 0:38 ` James Cameron
2013-12-06 0:38 ` James Cameron
2013-12-06 2:55 ` James Cameron
2013-12-06 2:55 ` James Cameron
2013-12-06 2:42 ` James Cameron
2013-12-06 2:42 ` James Cameron
2013-12-06 9:16 ` Sergei Ianovich
2013-12-06 9:16 ` Sergei Ianovich
2013-12-06 9:09 ` [PATCH v2] " Sergei Ianovich
2013-12-06 9:09 ` Sergei Ianovich
2013-12-06 9:09 ` Sergei Ianovich
2013-12-06 9:28 ` James Cameron
2013-12-06 9:28 ` James Cameron
2013-12-09 8:38 ` Heikki Krogerus
2013-12-09 8:38 ` Heikki Krogerus
2013-12-09 8:44 ` Sascha Hauer
2013-12-09 8:44 ` Sascha Hauer
2013-12-09 11:38 ` [PATCH v3] " Sergei Ianovich
2013-12-09 11:38 ` Sergei Ianovich
2013-12-09 11:38 ` Sergei Ianovich
2014-01-28 14:14 ` [PATCH 01/11] resolve PXA<->8250 serial device address conflict Pavel Machek
2014-01-28 14:14 ` Pavel Machek
2014-01-28 14:20 ` Sergei Ianovich
2014-01-28 14:20 ` Sergei Ianovich
2013-12-01 6:26 ` [PATCH 02/11] arm: pxa27x: support ICP DAS LP-8x4x Sergei Ianovich
2013-12-01 6:26 ` Sergei Ianovich
2013-12-06 0:40 ` Arnd Bergmann
2013-12-06 0:40 ` Arnd Bergmann
2013-12-06 16:38 ` Sergei Ianovich
2013-12-06 16:38 ` Sergei Ianovich
2013-12-06 17:14 ` Arnd Bergmann
2013-12-06 17:14 ` Arnd Bergmann
2013-12-10 12:33 ` Linus Walleij
2013-12-10 12:33 ` Linus Walleij
2013-12-10 20:20 ` Sergei Ianovich
2013-12-10 20:20 ` Sergei Ianovich
2013-12-10 21:57 ` Arnd Bergmann
2013-12-10 21:57 ` Arnd Bergmann
2013-12-11 4:30 ` Sergei Ianovich
2013-12-11 4:30 ` Sergei Ianovich
2013-12-11 5:11 ` Arnd Bergmann
2013-12-11 5:11 ` Arnd Bergmann
2013-12-11 5:41 ` Sergei Ianovich
2013-12-11 5:41 ` Sergei Ianovich
2013-12-11 14:53 ` Arnd Bergmann
2013-12-11 14:53 ` Arnd Bergmann
2013-12-06 16:48 ` Sergei Ianovich [this message]
2013-12-06 16:48 ` [PATCH v2 " Sergei Ianovich
2013-12-08 2:21 ` Arnd Bergmann
2013-12-08 2:21 ` Arnd Bergmann
2013-12-08 7:05 ` Sergei Ianovich
2013-12-08 7:05 ` Sergei Ianovich
2013-12-09 0:54 ` Arnd Bergmann
2013-12-09 0:54 ` Arnd Bergmann
2013-12-08 22:53 ` [PATCH 0/9] ARM: support for ICP DAS LP-8x4x (with dts) Sergei Ianovich
2013-12-08 22:53 ` Sergei Ianovich
2013-12-08 22:53 ` [PATCH 1/9] ARM: dts: pxa2xx fix compatible strings Sergei Ianovich
2013-12-08 22:53 ` Sergei Ianovich
2013-12-08 22:53 ` Sergei Ianovich
2013-12-08 22:53 ` [PATCH 2/9] ARM: dts: fix pxa27x-gpio interrupts Sergei Ianovich
2013-12-08 22:53 ` Sergei Ianovich
2013-12-08 22:53 ` Sergei Ianovich
2013-12-08 22:53 ` [PATCH 3/9] ARM: fix ohci-pxa27x build error with OF enabled Sergei Ianovich
2013-12-08 22:53 ` Sergei Ianovich
2013-12-09 14:26 ` Steve Cotton
2013-12-09 14:26 ` Steve Cotton
2013-12-09 14:42 ` Sergei Ianovich
2013-12-09 14:42 ` Sergei Ianovich
2013-12-08 22:53 ` [PATCH 4/9] ARM: pxa: remove unused variable Sergei Ianovich
2013-12-08 22:53 ` Sergei Ianovich
2013-12-09 8:56 ` Daniel Mack
2013-12-09 8:56 ` Daniel Mack
2013-12-09 9:42 ` Sergei Ianovich
2013-12-09 9:42 ` Sergei Ianovich
2013-12-09 9:49 ` Daniel Mack
2013-12-09 9:49 ` Daniel Mack
2013-12-08 22:53 ` [PATCH 5/9] ARM: dts: provide DMA config to pxamci Sergei Ianovich
2013-12-08 22:53 ` Sergei Ianovich
2013-12-08 22:53 ` Sergei Ianovich
2013-12-09 1:33 ` Arnd Bergmann
2013-12-09 1:33 ` Arnd Bergmann
2013-12-09 9:04 ` Daniel Mack
2013-12-09 9:04 ` Daniel Mack
2013-12-09 9:34 ` Sergei Ianovich
2013-12-09 9:34 ` Sergei Ianovich
2013-12-09 9:53 ` Sergei Ianovich
2013-12-09 9:53 ` Sergei Ianovich
2013-12-09 10:21 ` Daniel Mack
2013-12-09 10:21 ` Daniel Mack
2013-12-09 12:09 ` Sergei Ianovich
2013-12-09 12:09 ` Sergei Ianovich
2013-12-09 12:09 ` Sergei Ianovich
2013-12-10 0:25 ` Arnd Bergmann
2013-12-10 0:25 ` Arnd Bergmann
2013-12-10 4:25 ` Sergei Ianovich
2013-12-10 4:25 ` Sergei Ianovich
2013-12-09 13:16 ` Sergei Ianovich
2013-12-09 13:16 ` Sergei Ianovich
2013-12-11 8:19 ` Robert Jarzmik
2013-12-11 8:19 ` Robert Jarzmik
2013-12-11 8:19 ` Robert Jarzmik
2013-12-08 22:53 ` [PATCH 6/9] ARM: dts: pxa3xx: move declaration to header Sergei Ianovich
2013-12-08 22:53 ` Sergei Ianovich
2013-12-09 1:13 ` Arnd Bergmann
2013-12-09 1:13 ` Arnd Bergmann
2013-12-08 22:53 ` [PATCH 7/9] ARM: dts: pxa27x: skip static platform devices Sergei Ianovich
2013-12-08 22:53 ` Sergei Ianovich
2013-12-09 15:26 ` Dmitry Eremin-Solenikov
2013-12-08 22:53 ` [PATCH 8/9] ARM: dts: pxa27x: device tree irq init Sergei Ianovich
2013-12-08 22:53 ` Sergei Ianovich
2013-12-08 22:53 ` [PATCH 9/9] ARM: pxa27x: device tree support ICP DAS LP-8x4x Sergei Ianovich
2013-12-08 22:53 ` Sergei Ianovich
2013-12-08 22:53 ` Sergei Ianovich
2013-12-09 1:47 ` Arnd Bergmann
2013-12-09 1:47 ` Arnd Bergmann
2013-12-09 15:16 ` Sergei Ianovich
2013-12-09 15:16 ` Sergei Ianovich
2013-12-09 15:55 ` Sergei Ianovich
2013-12-09 15:55 ` Sergei Ianovich
2013-12-09 16:39 ` Arnd Bergmann
2013-12-09 16:39 ` Arnd Bergmann
2013-12-09 16:39 ` Arnd Bergmann
2013-12-09 16:25 ` Arnd Bergmann
2013-12-09 16:25 ` Arnd Bergmann
2013-12-09 1:51 ` [PATCH 0/9] ARM: support for ICP DAS LP-8x4x (with dts) Arnd Bergmann
2013-12-09 1:51 ` Arnd Bergmann
2013-12-09 18:44 ` Sergei Ianovich
2013-12-09 18:44 ` Sergei Ianovich
2013-12-13 2:27 ` [PATCH v2 00/16] " Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` [PATCH v2 01/16] ARM: dts: pxa2xx fix compatible strings Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` [PATCH v2 02/16] ARM: dts: fix pxa27x-gpio interrupts Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` [PATCH v2 03/16] ARM: dts: provide DMA config to pxamci Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-14 19:06 ` Arnd Bergmann
2013-12-14 19:06 ` Arnd Bergmann
2013-12-14 19:06 ` Arnd Bergmann
2013-12-14 19:34 ` Sergei Ianovich
2013-12-14 19:34 ` Sergei Ianovich
2013-12-14 23:39 ` Arnd Bergmann
2013-12-14 23:39 ` Arnd Bergmann
2013-12-16 9:58 ` Daniel Mack
2013-12-16 9:58 ` Daniel Mack
2013-12-16 11:47 ` Sergei Ianovich
2013-12-16 11:47 ` Sergei Ianovich
[not found] ` <1387194450.13062.134.camel-7ZSkjCHmnyFmet/iJI8ZvA@public.gmane.org>
2013-12-16 11:58 ` Lars-Peter Clausen
2013-12-16 11:58 ` Lars-Peter Clausen
2013-12-16 11:58 ` Lars-Peter Clausen
2013-12-16 12:03 ` Sergei Ianovich
2013-12-16 12:03 ` Sergei Ianovich
2013-12-13 2:27 ` [PATCH v2 04/16] ARM: dts: pxa3xx: move declaration to header Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` [PATCH v2 05/16] ARM: dts: pxa27x: irq init using device tree Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` [PATCH v2 06/16] ARM: pxa27x: device tree support ICP DAS LP-8x4x Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` [PATCH v2 07/16] rtc: support DS1302 RTC on " Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` [PATCH v2 08/16] mtd: support BB SRAM " Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` [PATCH v2 09/16] ARM: pxa: support ICP DAS LP-8x4x FPGA irq Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` [PATCH v2 10/16] serial: support for 16550A serial ports on LP-8x4x Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` [PATCH v2 11/16] misc: support for LP-8x4x custom parallel bus Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` [PATCH v2 12/16] misc: support for serial slots in LP-8x4x Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` [PATCH v2 13/16] misc: support for parallel " Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` [PATCH v2 14/16] misc: support for I-8041 " Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` [PATCH v2 15/16] misc: support for I-8042 " Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-13 2:27 ` [PATCH v2 16/16] misc: support for I-8024 " Sergei Ianovich
2013-12-13 2:27 ` Sergei Ianovich
2013-12-14 20:59 ` Arnd Bergmann
2013-12-14 20:59 ` Arnd Bergmann
2013-12-14 23:03 ` Sergei Ianovich
2013-12-14 23:03 ` Sergei Ianovich
2013-12-13 2:33 ` [PATCH v2 00/16] ARM: support for ICP DAS LP-8x4x (with dts) Sergei Ianovich
2013-12-13 2:33 ` Sergei Ianovich
2013-12-14 21:03 ` Arnd Bergmann
2013-12-14 21:03 ` Arnd Bergmann
2013-12-14 21:55 ` Sergei Ianovich
2013-12-14 21:55 ` Sergei Ianovich
2013-12-15 0:53 ` Arnd Bergmann
2013-12-15 0:53 ` Arnd Bergmann
2013-12-15 2:12 ` Sergei Ianovich
2013-12-15 2:12 ` Sergei Ianovich
2013-12-15 2:55 ` Arnd Bergmann
2013-12-15 2:55 ` Arnd Bergmann
2013-12-16 13:01 ` Sergei Ianovich
2013-12-16 13:01 ` Sergei Ianovich
2013-12-16 17:56 ` Arnd Bergmann
2013-12-16 17:56 ` Arnd Bergmann
2013-12-16 20:38 ` Sergei Ianovich
2013-12-16 20:38 ` Sergei Ianovich
2013-12-18 20:50 ` Arnd Bergmann
2013-12-18 20:50 ` Arnd Bergmann
2013-12-18 20:56 ` Sergei Ianovich
2013-12-18 20:56 ` Sergei Ianovich
2013-12-18 21:10 ` Arnd Bergmann
2013-12-18 21:10 ` Arnd Bergmann
2013-12-18 21:20 ` Sergei Ianovich
2013-12-18 21:20 ` Sergei Ianovich
2013-12-19 5:30 ` Arnd Bergmann
2013-12-19 5:30 ` Arnd Bergmann
2014-01-09 23:12 ` Sergei Ianovich
2014-01-09 23:12 ` Sergei Ianovich
2014-01-20 16:08 ` Sergei Ianovich
2014-01-20 16:08 ` Sergei Ianovich
2014-01-20 16:20 ` Daniel Mack
2014-01-20 16:20 ` Daniel Mack
2014-01-20 16:52 ` Sergei Ianovich
2014-01-20 16:52 ` Sergei Ianovich
2014-01-20 16:58 ` Daniel Mack
2014-01-20 16:58 ` Daniel Mack
2013-12-17 19:37 ` [PATCH v3 00/21] " Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` [PATCH v3 01/21 resend] serial: rewrite pxa2xx-uart to use 8250_core Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-18 23:55 ` Greg Kroah-Hartman
2013-12-18 23:55 ` Greg Kroah-Hartman
2013-12-19 8:51 ` Heikki Krogerus
2013-12-19 8:51 ` Heikki Krogerus
2013-12-19 9:35 ` Sergei Ianovich
2013-12-19 9:35 ` Sergei Ianovich
2013-12-19 10:01 ` Sergei Ianovich
2013-12-19 10:01 ` Sergei Ianovich
2013-12-19 11:05 ` Heikki Krogerus
2013-12-19 11:05 ` Heikki Krogerus
2013-12-17 19:37 ` [PATCH v3 02/21] ARM: dts: pxa2xx fix compatible strings Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` [PATCH v3 03/21] ARM: dts: fix pxa27x-gpio interrupts Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` [PATCH v3 04/21] ARM: dts: pxa3xx: move declaration to header Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` [PATCH v3 05/21] ARM: dts: pxa27x: irq init using device tree Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` [PATCH v3 06/21] ARM: dts: provide DMA config to pxamci on PXA27x Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` [PATCH v3 07/21] ARM: dts: parse DMA config in pxamci Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-19 0:50 ` Sergei Ianovich
2013-12-19 0:50 ` Sergei Ianovich
2013-12-17 19:37 ` [PATCH v3 08/21] ARM: pxa27x: device tree support ICP DAS LP-8x4x Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` [PATCH v3 09/21] rtc: support DS1302 RTC on " Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` [PATCH v3 10/21] mtd: support BB SRAM " Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2014-04-16 5:04 ` Brian Norris
2014-04-16 5:04 ` Brian Norris
2014-04-16 5:04 ` Brian Norris
2014-04-16 5:21 ` Sergei Ianovich
2014-04-16 5:21 ` Sergei Ianovich
2014-04-16 5:21 ` Sergei Ianovich
2013-12-17 19:37 ` [PATCH v3 11/21] ARM: pxa: support ICP DAS LP-8x4x FPGA irq Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2014-01-02 12:32 ` Linus Walleij
2014-01-02 12:32 ` Linus Walleij
2014-01-08 19:01 ` Sergei Ianovich
2014-01-08 19:01 ` Sergei Ianovich
2014-01-15 7:39 ` Linus Walleij
2014-01-15 7:39 ` Linus Walleij
2014-01-15 13:17 ` Sergei Ianovich
2014-01-15 13:17 ` Sergei Ianovich
2014-01-09 23:07 ` [PATCH v3.1 " Sergei Ianovich
2014-01-09 23:07 ` Sergei Ianovich
2014-01-09 23:07 ` Sergei Ianovich
2014-01-15 7:46 ` Linus Walleij
2014-01-15 7:46 ` Linus Walleij
2014-01-15 13:12 ` [PATCH v3.2 " Sergei Ianovich
2014-01-15 13:12 ` Sergei Ianovich
2014-01-15 13:12 ` Sergei Ianovich
2013-12-17 19:37 ` [PATCH v3 12/21] serial: support for 16550A serial ports on LP-8x4x Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-19 11:18 ` Heikki Krogerus
2013-12-19 11:18 ` Heikki Krogerus
2013-12-17 19:37 ` [PATCH v3 13/21] misc: support for LP-8x4x custom parallel bus Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` [PATCH v3 14/21] misc: support for LP-8x4x rotary switch Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` [PATCH v3 15/21] misc: support for LP-8x4x DIP switch Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` [PATCH v3 16/21] misc: support for writing to LP-8x4x EEPROM Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` [PATCH v3 17/21] misc: support for serial slots in LP-8x4x Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` [PATCH v3 18/21] misc: support for parallel " Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` [PATCH v3 19/21] misc: support for I-8041 " Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` [PATCH v3 20/21] misc: support for I-8042 " Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2013-12-17 19:37 ` [PATCH v3 21/21] misc: support for I-8024 " Sergei Ianovich
2013-12-17 19:37 ` Sergei Ianovich
2014-04-16 17:13 ` [PATCH v4 00/21] ARM: support for ICP DAS LP-8x4x (with dts) Sergei Ianovich
2014-04-16 17:13 ` Sergei Ianovich
2014-04-16 17:13 ` [PATCH v4 01/21] serial: rewrite pxa2xx-uart to use 8250_core Sergei Ianovich
2014-04-16 17:13 ` Sergei Ianovich
2014-04-16 17:13 ` Sergei Ianovich
2015-01-19 18:08 ` Rob Herring
2015-01-19 18:08 ` Rob Herring
2014-04-16 17:13 ` [PATCH v4 02/21] ARM: dts: pxa2xx fix compatible strings Sergei Ianovich
2014-04-16 17:13 ` Sergei Ianovich
2014-04-16 17:13 ` Sergei Ianovich
2014-04-16 17:13 ` [PATCH v4 03/21] ARM: dts: fix pxa27x-gpio interrupts Sergei Ianovich
2014-04-16 17:13 ` Sergei Ianovich
2014-04-16 17:13 ` Sergei Ianovich
2014-04-16 17:13 ` [PATCH v4 04/21] ARM: dts: pxa3xx: move declaration to header Sergei Ianovich
2014-04-16 17:13 ` Sergei Ianovich
2014-04-16 17:13 ` [PATCH v4 05/21] ARM: dts: pxa27x: irq init using device tree Sergei Ianovich
2014-04-16 17:13 ` Sergei Ianovich
2014-04-16 17:13 ` [PATCH v4 06/21] ARM: dts: provide DMA config to pxamci on PXA27x Sergei Ianovich
2014-04-16 17:13 ` Sergei Ianovich
2014-04-16 17:13 ` Sergei Ianovich
2014-04-16 17:17 ` [PATCH v4 07/21] ARM: dts: parse DMA config in pxamci Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 17:17 ` [PATCH v4 08/21] ARM: pxa27x: device tree support ICP DAS LP-8x4x Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-17 10:54 ` Daniel Mack
2014-04-16 17:17 ` [PATCH v4 10/21] mtd: support BB SRAM on " Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-30 17:21 ` Brian Norris
2014-04-30 17:21 ` Brian Norris
2014-04-30 17:21 ` Brian Norris
2014-04-30 17:35 ` ООО "ЭлектроПлюс"
2014-04-30 17:35 ` ООО "ЭлектроПлюс"
2014-04-30 17:35 ` ООО "ЭлектроПлюс"
2015-12-15 18:58 ` [PATCH v5] " Sergei Ianovich
2015-12-15 18:58 ` Sergei Ianovich
2015-12-20 3:38 ` Rob Herring
2015-12-20 10:43 ` Sergei Ianovich
2015-12-20 10:43 ` Sergei Ianovich
2016-01-06 23:25 ` Brian Norris
2016-01-06 23:25 ` Brian Norris
2016-02-23 18:58 ` [PATCH v6] " Sergei Ianovich
2016-02-23 18:58 ` Sergei Ianovich
2016-02-23 19:48 ` Rob Herring
2016-02-23 19:48 ` Rob Herring
2016-03-08 0:19 ` Brian Norris
2016-03-08 0:19 ` Brian Norris
2014-04-16 17:17 ` [PATCH v4 11/21] ARM: pxa: support ICP DAS LP-8x4x FPGA irq Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
[not found] ` <1397668667-27328-5-git-send-email-ynvich-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-12-15 19:26 ` [PATCH v5] arm: " Sergei Ianovich
2015-12-15 19:26 ` Sergei Ianovich
2015-12-16 11:54 ` Marc Zyngier
2015-12-19 4:20 ` Rob Herring
[not found] ` <20151219035802.GA28424@rob-hp-laptop>
2015-12-19 7:03 ` Sergei Ianovich
2015-12-19 7:03 ` Sergei Ianovich
2016-02-27 15:56 ` [PATCH v6] " Sergei Ianovich
2016-02-27 15:56 ` Sergei Ianovich
[not found] ` <1456588562-24715-1-git-send-email-ynvich-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-02-27 17:41 ` Jason Cooper
2016-02-27 17:41 ` Jason Cooper
[not found] ` <20160227174100.GG7219-fahSIxCzskDQ+YiMSub0/l6hYfS7NtTn@public.gmane.org>
2016-02-29 8:29 ` Marc Zyngier
2016-02-29 8:29 ` Marc Zyngier
2016-03-03 22:12 ` Rob Herring
2016-03-03 22:12 ` Rob Herring
2014-04-16 17:17 ` [PATCH v4 12/21] serial: support for 16550A serial ports on LP-8x4x Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 18:35 ` One Thousand Gnomes
2014-04-16 18:35 ` One Thousand Gnomes
2014-04-16 18:35 ` One Thousand Gnomes
2014-04-16 19:01 ` Sergei Ianovich
2014-04-16 19:01 ` Sergei Ianovich
2014-04-16 20:00 ` One Thousand Gnomes
2014-04-16 20:00 ` One Thousand Gnomes
[not found] ` <20140416210051.01bef49e-mUKnrFFms3BCCTY1wZZT65JpZx93mCW/@public.gmane.org>
2014-04-16 20:32 ` Sergei Ianovich
2014-04-16 20:32 ` Sergei Ianovich
2014-04-16 20:32 ` Sergei Ianovich
2014-04-16 17:17 ` [PATCH v4 13/21] misc: support for LP-8x4x custom parallel bus Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 18:41 ` One Thousand Gnomes
2014-04-16 18:41 ` One Thousand Gnomes
2014-04-16 18:41 ` One Thousand Gnomes
2014-04-16 18:42 ` Arnd Bergmann
2014-04-16 18:42 ` Arnd Bergmann
2014-04-16 20:29 ` One Thousand Gnomes
2014-04-16 20:29 ` One Thousand Gnomes
2014-04-16 19:53 ` Sergei Ianovich
2014-04-16 19:53 ` Sergei Ianovich
2014-04-16 17:17 ` [PATCH v4 14/21] misc: support for LP-8x4x rotary switch Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 17:17 ` [PATCH v4 15/21] misc: support for LP-8x4x DIP switch Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 17:17 ` [PATCH v4 16/21] misc: support for writing to LP-8x4x EEPROM Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 17:17 ` [PATCH v4 17/21] misc: support for serial slots in LP-8x4x Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 17:17 ` [PATCH v4 18/21] misc: support for parallel " Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 17:17 ` [PATCH v4 19/21] misc: support for I-8041 " Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 17:17 ` [PATCH v4 20/21] misc: support for I-8042 " Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 17:17 ` [PATCH v4 21/21] misc: support for I-8024 " Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 18:39 ` One Thousand Gnomes
2014-04-16 18:39 ` One Thousand Gnomes
2014-04-16 19:28 ` Sergei Ianovich
2014-04-16 19:28 ` Sergei Ianovich
2014-04-16 19:56 ` One Thousand Gnomes
2014-04-16 19:56 ` One Thousand Gnomes
2014-04-16 20:06 ` Sergei Ianovich
2014-04-16 20:06 ` Sergei Ianovich
[not found] ` <1397668667-27328-1-git-send-email-ynvich-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-12-15 21:04 ` [PATCH v5] serial: support for 16550A serial ports on LP-8x4x Sergei Ianovich
2015-12-15 21:04 ` Sergei Ianovich
2015-12-15 21:51 ` Arnd Bergmann
2015-12-15 21:51 ` Arnd Bergmann
2015-12-16 8:04 ` Sergei Ianovich
2015-12-16 8:04 ` Sergei Ianovich
2015-12-16 10:26 ` Arnd Bergmann
2015-12-16 10:26 ` Arnd Bergmann
2015-12-19 8:11 ` Sergei Ianovich
2015-12-19 8:11 ` Sergei Ianovich
2015-12-19 21:42 ` Sergei Ianovich
2015-12-19 21:42 ` Sergei Ianovich
2015-12-17 14:50 ` Andy Shevchenko
[not found] ` <1450213494-21884-1-git-send-email-ynvich-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-02-27 16:14 ` [PATCH v6] " Sergei Ianovich
2016-02-27 16:14 ` Sergei Ianovich
[not found] ` <1456589675-25377-1-git-send-email-ynvich-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-02-29 10:29 ` Andy Shevchenko
2016-02-29 10:29 ` Andy Shevchenko
2016-02-29 13:03 ` Sergei Ianovich
[not found] ` <1456750995.23036.87.camel-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-02-29 14:45 ` One Thousand Gnomes
2016-02-29 14:45 ` One Thousand Gnomes
2016-02-29 21:26 ` [PATCH v7] " Sergei Ianovich
2016-02-29 21:26 ` Sergei Ianovich
[not found] ` <1456781209-11390-1-git-send-email-ynvich-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-03-01 11:06 ` Andy Shevchenko
2016-03-01 11:06 ` Andy Shevchenko
[not found] ` <1456830401.13244.189.camel-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2016-03-01 16:25 ` Sergei Ianovich
2016-03-01 16:25 ` Sergei Ianovich
2016-03-01 16:46 ` Andy Shevchenko
[not found] ` <1456850782.13244.208.camel-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2016-03-01 17:14 ` Sergei Ianovich
2016-03-01 17:14 ` Sergei Ianovich
[not found] ` <1456852472.23036.124.camel-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-03-01 17:48 ` Andy Shevchenko
2016-03-01 17:48 ` Andy Shevchenko
2016-03-01 18:43 ` One Thousand Gnomes
2016-03-01 18:43 ` One Thousand Gnomes
[not found] ` <1456854532.13244.215.camel-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2016-03-01 19:28 ` Sergei Ianovich
2016-03-01 19:28 ` Sergei Ianovich
[not found] ` <1456860493.23036.133.camel-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-03-01 19:53 ` One Thousand Gnomes
2016-03-01 19:53 ` One Thousand Gnomes
2016-03-01 19:54 ` [PATCH v8] " Sergei Ianovich
2016-03-01 19:54 ` Sergei Ianovich
[not found] ` <1456862078-11795-1-git-send-email-ynvich-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-03-01 20:08 ` [PATCH v9] " Sergei Ianovich
2016-03-01 20:08 ` Sergei Ianovich
[not found] ` <1456862903-12392-1-git-send-email-ynvich-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-03-01 20:23 ` Andy Shevchenko
2016-03-01 20:23 ` Andy Shevchenko
2016-03-01 21:25 ` [PATCH v10] " Sergei Ianovich
2016-03-01 21:25 ` Sergei Ianovich
2016-03-05 4:26 ` Rob Herring
2016-03-05 4:26 ` Rob Herring
2014-04-16 17:39 ` [PATCH v4 00/21] ARM: support for ICP DAS LP-8x4x (with dts) Daniel Mack
2014-04-16 17:39 ` Daniel Mack
2014-04-16 20:59 ` Sergei Ianovich
2014-04-16 20:59 ` Sergei Ianovich
2014-04-17 10:38 ` Daniel Mack
2014-04-17 10:38 ` Daniel Mack
2014-04-17 12:12 ` Sergei Ianovich
2014-04-17 12:12 ` Sergei Ianovich
2014-04-17 12:34 ` Daniel Mack
2014-04-17 12:34 ` Daniel Mack
2014-04-19 11:59 ` Arnd Bergmann
2014-04-19 11:59 ` Arnd Bergmann
2015-12-09 22:28 ` [PATCH v4 0/2] series to support for ICP DAS LP-8x4x (ARM PXA270) Sergei Ianovich
2015-12-09 22:28 ` [PATCH v4 1/2] serial: rewrite pxa2xx-uart to use 8250_core Sergei Ianovich
2015-12-09 22:28 ` Sergei Ianovich
2015-12-09 22:28 ` Sergei Ianovich
2015-12-19 12:45 ` Robert Jarzmik
2015-12-19 12:45 ` Robert Jarzmik
2015-12-19 12:45 ` Robert Jarzmik
2015-12-19 13:26 ` Robert Jarzmik
2015-12-19 13:26 ` Robert Jarzmik
2015-12-19 13:26 ` Robert Jarzmik
2015-12-19 18:46 ` Sergei Ianovich
2015-12-19 18:46 ` Sergei Ianovich
2015-12-19 19:31 ` Robert Jarzmik
2015-12-19 19:31 ` Robert Jarzmik
2015-12-19 19:31 ` Robert Jarzmik
2015-12-19 20:12 ` Sergei Ianovich
2015-12-19 20:12 ` Sergei Ianovich
2015-12-19 23:12 ` Robert Jarzmik
2015-12-19 23:12 ` Robert Jarzmik
2015-12-19 23:12 ` Robert Jarzmik
2015-12-20 11:24 ` Sergei Ianovich
2015-12-20 11:24 ` Sergei Ianovich
2015-12-22 19:27 ` Robert Jarzmik
2015-12-22 19:27 ` Robert Jarzmik
2015-12-22 19:27 ` Robert Jarzmik
2015-12-23 18:59 ` [PATCH v5] " Sergei Ianovich
2015-12-23 18:59 ` Sergei Ianovich
2015-12-23 22:50 ` kbuild test robot
2015-12-23 22:50 ` kbuild test robot
2015-12-24 15:15 ` [PATCH v6] " Sergei Ianovich
2015-12-24 15:15 ` Sergei Ianovich
2015-12-29 11:06 ` Heikki Krogerus
2015-12-29 16:50 ` Robert Jarzmik
2015-12-29 16:50 ` Robert Jarzmik
2016-02-07 6:22 ` Greg Kroah-Hartman
2016-02-22 1:56 ` Sergei Ianovich
2016-02-22 7:17 ` Robert Jarzmik
2016-02-22 7:17 ` Robert Jarzmik
2016-09-27 15:47 ` Robert Jarzmik
2016-09-27 15:47 ` Robert Jarzmik
2016-09-27 16:12 ` Greg Kroah-Hartman
2016-09-27 16:24 ` Robert Jarzmik
2016-09-27 16:24 ` Robert Jarzmik
2015-12-09 22:28 ` [PATCH v4 2/2] arm: pxa27x: support for ICP DAS LP-8x4x w/ DT Sergei Ianovich
2015-12-09 22:28 ` Sergei Ianovich
2015-12-09 22:28 ` Sergei Ianovich
2015-12-11 2:53 ` Rob Herring
2015-12-11 2:53 ` Rob Herring
2015-12-15 16:27 ` [PATCH v5 " Sergei Ianovich
2015-12-15 16:27 ` Sergei Ianovich
2015-12-15 16:27 ` Sergei Ianovich
2015-12-15 16:32 ` Arnd Bergmann
2015-12-15 16:32 ` Arnd Bergmann
2015-12-15 16:42 ` Sergei Ianovich
2015-12-15 16:42 ` Sergei Ianovich
2015-12-15 17:02 ` Arnd Bergmann
2015-12-15 17:02 ` Arnd Bergmann
2015-12-15 17:24 ` Sergei Ianovich
2015-12-15 17:24 ` Sergei Ianovich
2015-12-15 17:24 ` Sergei Ianovich
2015-12-15 18:06 ` Robert Jarzmik
2015-12-15 18:06 ` Robert Jarzmik
2015-12-15 18:06 ` Robert Jarzmik
2015-12-15 18:50 ` Sergei Ianovich
2015-12-15 18:50 ` Sergei Ianovich
2015-12-15 19:21 ` Arnd Bergmann
2015-12-15 19:21 ` Arnd Bergmann
2015-12-15 19:21 ` Arnd Bergmann
2015-12-15 20:01 ` Robert Jarzmik
2015-12-15 20:01 ` Robert Jarzmik
2015-12-15 20:01 ` Robert Jarzmik
2015-12-15 20:40 ` Arnd Bergmann
2015-12-15 20:40 ` Arnd Bergmann
2015-12-19 12:27 ` Robert Jarzmik
2015-12-19 12:27 ` Robert Jarzmik
2015-12-19 12:27 ` Robert Jarzmik
2015-12-19 7:53 ` [PATCH] arm: pxa: create a unified defconfig for PXA27X-DT Sergei Ianovich
2015-12-19 7:53 ` Sergei Ianovich
2013-12-10 12:43 ` [PATCH v2 02/11] arm: pxa27x: support ICP DAS LP-8x4x Linus Walleij
2013-12-10 12:43 ` Linus Walleij
2013-12-10 12:47 ` Sergei Ianovich
2013-12-10 12:47 ` Sergei Ianovich
2013-12-12 19:58 ` Linus Walleij
2013-12-12 19:58 ` Linus Walleij
2013-12-10 12:54 ` Vasily Khoruzhick
2013-12-10 12:54 ` Vasily Khoruzhick
2013-12-12 20:07 ` Linus Walleij
2013-12-12 20:07 ` Linus Walleij
2013-12-10 22:24 ` Dmitry Eremin-Solenikov
2013-12-01 6:26 ` [PATCH 03/11] rtc: support DS1302 RTC on " Sergei Ianovich
2013-12-01 6:26 ` Sergei Ianovich
2013-12-01 6:26 ` [PATCH 04/11] mtd: support BB SRAM " Sergei Ianovich
2013-12-01 6:26 ` Sergei Ianovich
2013-12-01 6:26 ` Sergei Ianovich
2013-12-01 6:26 ` [PATCH 05/11] serial: support for 16550 serial ports on LP-8x4x Sergei Ianovich
2013-12-01 6:26 ` Sergei Ianovich
2013-12-01 6:26 ` Sergei Ianovich
2013-12-02 8:48 ` Heikki Krogerus
2013-12-02 8:48 ` Heikki Krogerus
2013-12-02 11:46 ` Sergei Ianovich
2013-12-02 11:46 ` Sergei Ianovich
2013-12-02 13:53 ` Heikki Krogerus
2013-12-02 13:53 ` Heikki Krogerus
2013-12-02 11:30 ` Russell King - ARM Linux
2013-12-02 11:30 ` Russell King - ARM Linux
2013-12-02 11:39 ` Sergei Ianovich
2013-12-02 11:39 ` Sergei Ianovich
2013-12-02 11:52 ` Russell King - ARM Linux
2013-12-02 11:52 ` Russell King - ARM Linux
2013-12-02 12:01 ` Sergei Ianovich
2013-12-02 12:01 ` Sergei Ianovich
2013-12-01 6:26 ` [PATCH 06/11] misc: support for LP-8x4x custom parallel bus Sergei Ianovich
2013-12-01 6:26 ` Sergei Ianovich
2013-12-01 6:26 ` [PATCH 07/11] misc: support for serial slots in LP-8x4x Sergei Ianovich
2013-12-01 6:26 ` Sergei Ianovich
2013-12-01 6:26 ` [PATCH 08/11] misc: support for parallel " Sergei Ianovich
2013-12-01 6:26 ` Sergei Ianovich
2013-12-01 6:26 ` [PATCH 09/11] misc: support for I-8041 " Sergei Ianovich
2013-12-01 6:26 ` Sergei Ianovich
2013-12-01 6:26 ` [PATCH 10/11] misc: support for I-8042 " Sergei Ianovich
2013-12-01 6:26 ` Sergei Ianovich
2013-12-01 6:26 ` [PATCH 11/11] misc: support for I-8024 " Sergei Ianovich
2013-12-01 6:26 ` Sergei Ianovich
-- strict thread matches above, loose matches on Subject: below --
2014-04-16 17:17 [v4,09/21] rtc: support DS1302 RTC on ICP DAS LP-8x4x Sergey Yanovich
2014-04-16 17:17 ` [PATCH v4 09/21] " Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2014-04-16 17:17 ` Sergei Ianovich
2015-06-08 12:07 ` [v4,09/21] " Alexandre Belloni
2015-06-08 12:07 ` Alexandre Belloni
2015-06-08 12:12 ` [rtc-linux] " Sergei Ianovich
2015-06-08 12:12 ` Sergei Ianovich
2015-06-08 12:12 ` Sergei Ianovich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1386348542-9584-1-git-send-email-ynvich@gmail.com \
--to=ynvich@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.