No subject
Subsystems (3)
Hello,
this is the next step in the project "clean up the imx port" targeting 2.6.36. The highlights this time are:
- Unification of mach-mx2 and mach-mx1 into mach-imx
- start allocating devices dynamically
This should reduce the memory footprint because (in the end) no unused struct platform_device, struct resource or struct $platformdatafordriverX are kept in memory. This also cleans up with naming conflicts.
This is intermixed with various fixes and simplifications.
I have to admit that some patches could have squashed but squashing them now would be more work that it's worth so I kept them as they are now.
The patches are based on 67a3e12b05e055c0415c556a315a3d3eb637e29e
Linux 2.6.35-rc1 (2010-05-30 13:21:02 -0700)
and are available in the git repository at:
git://git.pengutronix.de/git/ukl/linux-2.6.git imx/for-2.6.36
plus sent as a reply to this mail. Shortlog and diffstat are to be found below.
Have fun
Uwe
Uwe Kleine-K?nig (61):
ARM: mx3: rename mach-mx35pdk.c to mach-mx35_3ds.c matching its arch number
ARM: mx25: rename mach-mx25pdk.c to mach-mx25_3ds.c matching its arch number
ARM: mx1: don't use deprecated symbol names
ARM: mx1/scb9328: fix type of uart1_mxc_exit to make compiler happy
ARM: mx2/mx27_3ds: document alternative names and remove empty header
ARM: imx: remove empty and unused board headers
ARM: mx3/kzm_arm11_01: fold board header in its only user
ARM: mx2/mx21ads: fold board header in its only user
ARM: mx2/mx27ads: fold board header in its only user
ARM: mx3/qong: get rid of nearly empty header
ARM: mx3/mx31_3ds: fold board header in its only user
ARM: mx3/mx31ads: fold board header in its only user
ARM: mxc: grammar fix
ARM: imx: rename mach dir for mx21 and mx27 to mach-imx
ARM: imx/mx1: fold crm_regs.h into its only consumer
ARM: imx: get rid of mxc_gpio_init
ARM: imx: fold serial.c into devices.c
ARM: imx1: rename imx_csi_device to match its .name
ARM: imx1: rename imx_i2c_device to follow a common naming scheme
ARM: imx1: rename imx_uart[12]_device to follow a common naming scheme
ARM: mx3: mx31lilly: fix build error for !CONFIG_USB_ULPI
ARM: imx: rename mxc_uart_devicex to follow a common naming scheme
ARM: imx: move mx1 support to mach-imx
ARM: imx: Kconfig: use an if block instead of a depend for many symbols
ARM: imx: prepare deprecating ARCH_MX1, MACH_MX2, MACH_MX21 and MACH_MX27
ARM: imx: prepare deprecating ARCH_MX1, MACH_MX2, MACH_MX21 and MACH_MX27
ARM: imx: new Kconfig symbol and feature test macro for DMA on mx1 and mx2
ARM: imx: new helper function imx_add_platform_device
MTD: mxc_nand: make bit fields unsigned to please sparse
ARM: imx: remove paragraphs with old address of the FSF
ARM: mx25: remove paragraphs with old address of the FSF
ARM: mx3: remove paragraphs with old address of the FSF
ARM: mxc91231: remove paragraphs with old address of the FSF
ARM: mxc: remove paragraphs with old address of the FSF
ARM: imx: Change the way nand devices are registered (generic part)
ARM: imx: Change the way nand devices are registered (imx21)
ARM: imx: Change the way nand devices are registered (imx25)
ARM: imx: Change the way nand devices are registered (imx27)
ARM: imx: Change the way nand devices are registered (imx31)
ARM: imx: Change the way nand devices are registered (imx35)
ARM: imx: dynamically register imx-i2c devices (generic part)
ARM: imx: dynamically register imx-i2c devices (imx1)
ARM: imx: dynamically register imx-i2c devices (imx21)
ARM: imx: dynamically register imx-i2c devices (imx25)
ARM: imx: dynamically register imx-i2c devices (imx27)
ARM: imx: dynamically register imx-i2c devices (imx31)
ARM: imx: dynamically register imx-i2c devices (imx35)
ARM: imx: dynamically register spi_imx devices (generic part)
ARM: imx: dynamically register spi_imx devices (imx21)
ARM: imx: dynamically register spi_imx devices (imx25)
ARM: imx: dynamically register spi_imx devices (imx27)
ARM: imx: dynamically register spi_imx devices (imx31)
ARM: imx: dynamically register spi_imx devices (imx35)
ARM: imx: dynamically register imx-uart devices (generic part)
ARM: imx: dynamically register imx-uart devices (imx1)
ARM: imx: dynamically register imx-uart devices (imx21)
ARM: imx: dynamically register imx-uart devices (imx25)
ARM: imx: dynamically register imx-uart devices (imx27)
ARM: imx: dynamically register imx-uart devices (imx31)
ARM: imx: dynamically register imx-uart devices (imx35)
ARM: mx3: complement uart init routine with an exit routine
arch/arm/Makefile | 4 +-
arch/arm/mach-imx/Kconfig | 186 +++++++++++
arch/arm/{mach-mx2 => mach-imx}/Makefile | 18 +-
arch/arm/{mach-mx2 => mach-imx}/Makefile.boot | 4 +
.../{mach-mx1/clock.c => mach-imx/clock-imx1.c} | 50 +++-
.../clock_imx21.c => mach-imx/clock-imx21.c} | 0
.../clock_imx27.c => mach-imx/clock-imx27.c} | 0
.../{mach-mx2/cpu_imx27.c => mach-imx/cpu-imx27.c} | 0
arch/arm/mach-imx/devices-imx1.h | 18 +
arch/arm/mach-imx/devices-imx21.h | 30 ++
arch/arm/mach-imx/devices-imx27.h | 38 +++
arch/arm/{mach-mx2 => mach-imx}/devices.c | 250 +++++++++------
arch/arm/{mach-mx2 => mach-imx}/devices.h | 30 +--
.../{plat-mxc/dma-mx1-mx2.c => mach-imx/dma-v1.c} | 4 +-
.../eukrea_mbimx27-baseboard.c | 19 +-
arch/arm/mach-imx/include/mach/dma-mx1-mx2.h | 10 +
.../include/mach/dma-v1.h} | 10 +-
arch/arm/{mach-mx2 => mach-imx}/mach-cpuimx27.c | 25 +-
arch/arm/{mach-mx2 => mach-imx}/mach-imx27lite.c | 11 +-
arch/arm/{mach-mx1 => mach-imx}/mach-mx1ads.c | 34 +-
arch/arm/{mach-mx2 => mach-imx}/mach-mx21ads.c | 58 +++-
arch/arm/{mach-mx2 => mach-imx}/mach-mx27_3ds.c | 17 +-
arch/arm/{mach-mx2 => mach-imx}/mach-mx27ads.c | 76 +++--
arch/arm/{mach-mx2 => mach-imx}/mach-mxt_td60.c | 36 +--
arch/arm/{mach-mx2 => mach-imx}/mach-pca100.c | 23 +-
arch/arm/{mach-mx2 => mach-imx}/mach-pcm038.c | 33 +--
arch/arm/{mach-mx1 => mach-imx}/mach-scb9328.c | 21 +-
.../arm/{mach-mx1/generic.c => mach-imx/mm-imx1.c} | 23 +-
arch/arm/{mach-mx2 => mach-imx}/mm-imx21.c | 5 +-
arch/arm/{mach-mx2 => mach-imx}/mm-imx27.c | 5 +-
.../ksym_mx1.c => mach-imx/mx1-camera-fiq-ksym.c} | 0
.../mx1_camera_fiq.S => mach-imx/mx1-camera-fiq.S} | 0
arch/arm/{mach-mx2 => mach-imx}/pcm970-baseboard.c | 0
arch/arm/mach-mx1/Kconfig | 19 -
arch/arm/mach-mx1/Makefile | 15 -
arch/arm/mach-mx1/Makefile.boot | 4 -
arch/arm/mach-mx1/crm_regs.h | 55 ---
arch/arm/mach-mx1/devices.c | 242 --------------
arch/arm/mach-mx1/devices.h | 7 -
arch/arm/mach-mx2/Kconfig | 116 -------
arch/arm/mach-mx2/serial.c | 141 --------
arch/arm/mach-mx25/Kconfig | 2 +
arch/arm/mach-mx25/Makefile | 2 +-
arch/arm/mach-mx25/devices-imx25.h | 38 +++
arch/arm/mach-mx25/devices.c | 231 +-------------
arch/arm/mach-mx25/devices.h | 12 -
.../mach-mx25/{mach-mx25pdk.c => mach-mx25_3ds.c} | 21 +-
arch/arm/mach-mx25/mm.c | 7 +-
arch/arm/mach-mx3/Kconfig | 26 ++
arch/arm/mach-mx3/Makefile | 2 +-
arch/arm/mach-mx3/devices-imx31.h | 38 +++
arch/arm/mach-mx3/devices-imx35.h | 32 ++
arch/arm/mach-mx3/devices.c | 247 +--------------
arch/arm/mach-mx3/devices.h | 13 -
arch/arm/mach-mx3/mach-armadillo5x0.c | 17 +-
arch/arm/mach-mx3/mach-kzm_arm11_01.c | 31 ++-
arch/arm/mach-mx3/mach-mx31_3ds.c | 64 +++--
arch/arm/mach-mx3/mach-mx31ads.c | 55 +++-
arch/arm/mach-mx3/mach-mx31lilly.c | 47 ++--
arch/arm/mach-mx3/mach-mx31lite.c | 17 +-
arch/arm/mach-mx3/mach-mx31moboard.c | 50 ++--
.../mach-mx3/{mach-mx35pdk.c => mach-mx35_3ds.c} | 16 +-
arch/arm/mach-mx3/mach-pcm037.c | 31 +-
arch/arm/mach-mx3/mach-pcm037_eet.c | 7 +-
arch/arm/mach-mx3/mach-pcm043.c | 25 +-
arch/arm/mach-mx3/mach-qong.c | 16 +-
arch/arm/mach-mx3/mm.c | 7 +-
arch/arm/mach-mx3/mx31lilly-db.c | 14 +-
arch/arm/mach-mx3/mx31lite-db.c | 15 +-
arch/arm/mach-mx3/mx31moboard-devboard.c | 10 +-
arch/arm/mach-mx3/mx31moboard-marxbot.c | 4 -
arch/arm/mach-mx3/mx31moboard-smartbot.c | 11 +-
arch/arm/mach-mx5/devices.c | 2 +-
arch/arm/mach-mx5/mm.c | 3 +
arch/arm/mach-mxc91231/crm_regs.h | 5 -
arch/arm/mach-mxc91231/devices.c | 2 +-
arch/arm/mach-mxc91231/mm.c | 8 +-
arch/arm/plat-mxc/Kconfig | 10 +-
arch/arm/plat-mxc/Makefile | 4 +-
arch/arm/plat-mxc/audmux-v1.c | 4 -
arch/arm/plat-mxc/audmux-v2.c | 4 -
arch/arm/plat-mxc/devices.c | 33 ++
arch/arm/plat-mxc/devices/Kconfig | 11 +
arch/arm/plat-mxc/devices/Makefile | 4 +
arch/arm/plat-mxc/devices/platform-imx-i2c.c | 29 ++
arch/arm/plat-mxc/devices/platform-imx-uart.c | 60 ++++
arch/arm/plat-mxc/devices/platform-mxc_nand.c | 44 +++
arch/arm/plat-mxc/devices/platform-spi_imx.c | 30 ++
arch/arm/plat-mxc/ehci.c | 4 -
.../arm/plat-mxc/include/mach/board-armadillo5x0.h | 15 -
.../plat-mxc/include/mach/board-eukrea_cpuimx27.h | 2 +-
arch/arm/plat-mxc/include/mach/board-kzmarm11.h | 39 ---
arch/arm/plat-mxc/include/mach/board-mx21ads.h | 52 ---
arch/arm/plat-mxc/include/mach/board-mx27ads.h | 344 --------------------
arch/arm/plat-mxc/include/mach/board-mx27lite.h | 14 -
arch/arm/plat-mxc/include/mach/board-mx27pdk.h | 14 -
arch/arm/plat-mxc/include/mach/board-mx31_3ds.h | 59 ----
arch/arm/plat-mxc/include/mach/board-mx31ads.h | 117 -------
arch/arm/plat-mxc/include/mach/board-mx31lilly.h | 2 +-
arch/arm/plat-mxc/include/mach/board-mx31lite.h | 2 +-
arch/arm/plat-mxc/include/mach/board-mx31moboard.h | 2 +-
arch/arm/plat-mxc/include/mach/board-mx35pdk.h | 22 --
arch/arm/plat-mxc/include/mach/board-pcm037.h | 22 --
arch/arm/plat-mxc/include/mach/board-pcm038.h | 2 +-
arch/arm/plat-mxc/include/mach/board-pcm043.h | 22 --
arch/arm/plat-mxc/include/mach/board-qong.h | 17 -
arch/arm/plat-mxc/include/mach/devices-common.h | 42 +++
arch/arm/plat-mxc/include/mach/iomux-mxc91231.h | 4 -
arch/arm/plat-mxc/include/mach/mx1.h | 28 +-
arch/arm/plat-mxc/include/mach/mx25.h | 28 ++-
arch/arm/plat-mxc/include/mach/mx27.h | 4 +-
arch/arm/plat-mxc/include/mach/mx31.h | 4 +-
arch/arm/plat-mxc/include/mach/mx35.h | 4 +-
arch/arm/plat-mxc/include/mach/mx3_camera.h | 4 -
arch/arm/plat-mxc/include/mach/mxc91231.h | 4 -
arch/arm/plat-mxc/include/mach/mxc_nand.h | 6 +-
arch/arm/plat-mxc/include/mach/system.h | 4 -
arch/arm/plat-mxc/include/mach/timex.h | 4 -
arch/arm/plat-mxc/include/mach/uncompress.h | 4 -
arch/arm/plat-mxc/include/mach/vmalloc.h | 4 -
arch/arm/plat-mxc/irq.c | 3 -
arch/arm/plat-mxc/system.c | 4 -
arch/arm/plat-mxc/tzic.c | 2 -
123 files changed, 1424 insertions(+), 2478 deletions(-)
create mode 100644 arch/arm/mach-imx/Kconfig
rename arch/arm/{mach-mx2 => mach-imx}/Makefile (55%)
rename arch/arm/{mach-mx2 => mach-imx}/Makefile.boot (67%)
rename arch/arm/{mach-mx1/clock.c => mach-imx/clock-imx1.c} (90%)
rename arch/arm/{mach-mx2/clock_imx21.c => mach-imx/clock-imx21.c} (100%)
rename arch/arm/{mach-mx2/clock_imx27.c => mach-imx/clock-imx27.c} (100%)
rename arch/arm/{mach-mx2/cpu_imx27.c => mach-imx/cpu-imx27.c} (100%)
create mode 100644 arch/arm/mach-imx/devices-imx1.h
create mode 100644 arch/arm/mach-imx/devices-imx21.h
create mode 100644 arch/arm/mach-imx/devices-imx27.h
rename arch/arm/{mach-mx2 => mach-imx}/devices.c (73%)
rename arch/arm/{mach-mx2 => mach-imx}/devices.h (54%)
rename arch/arm/{plat-mxc/dma-mx1-mx2.c => mach-imx/dma-v1.c} (99%)
rename arch/arm/{mach-mx2 => mach-imx}/eukrea_mbimx27-baseboard.c (93%)
create mode 100644 arch/arm/mach-imx/include/mach/dma-mx1-mx2.h
rename arch/arm/{plat-mxc/include/mach/dma-mx1-mx2.h => mach-imx/include/mach/dma-v1.h} (93%)
rename arch/arm/{mach-mx2 => mach-imx}/mach-cpuimx27.c (90%)
rename arch/arm/{mach-mx2 => mach-imx}/mach-imx27lite.c (86%)
rename arch/arm/{mach-mx1 => mach-imx}/mach-mx1ads.c (81%)
rename arch/arm/{mach-mx2 => mach-imx}/mach-mx21ads.c (77%)
rename arch/arm/{mach-mx2 => mach-imx}/mach-mx27_3ds.c (85%)
rename arch/arm/{mach-mx2 => mach-imx}/mach-mx27ads.c (82%)
rename arch/arm/{mach-mx2 => mach-imx}/mach-mxt_td60.c (86%)
rename arch/arm/{mach-mx2 => mach-imx}/mach-pca100.c (93%)
rename arch/arm/{mach-mx2 => mach-imx}/mach-pcm038.c (91%)
rename arch/arm/{mach-mx1 => mach-imx}/mach-scb9328.c (89%)
rename arch/arm/{mach-mx1/generic.c => mach-imx/mm-imx1.c} (68%)
rename arch/arm/{mach-mx2 => mach-imx}/mm-imx21.c (95%)
rename arch/arm/{mach-mx2 => mach-imx}/mm-imx27.c (95%)
rename arch/arm/{mach-mx1/ksym_mx1.c => mach-imx/mx1-camera-fiq-ksym.c} (100%)
rename arch/arm/{mach-mx1/mx1_camera_fiq.S => mach-imx/mx1-camera-fiq.S} (100%)
rename arch/arm/{mach-mx2 => mach-imx}/pcm970-baseboard.c (100%)
delete mode 100644 arch/arm/mach-mx1/Kconfig
delete mode 100644 arch/arm/mach-mx1/Makefile
delete mode 100644 arch/arm/mach-mx1/Makefile.boot
delete mode 100644 arch/arm/mach-mx1/crm_regs.h
delete mode 100644 arch/arm/mach-mx1/devices.c
delete mode 100644 arch/arm/mach-mx1/devices.h
delete mode 100644 arch/arm/mach-mx2/Kconfig
delete mode 100644 arch/arm/mach-mx2/serial.c
create mode 100644 arch/arm/mach-mx25/devices-imx25.h
rename arch/arm/mach-mx25/{mach-mx25pdk.c => mach-mx25_3ds.c} (91%)
create mode 100644 arch/arm/mach-mx3/devices-imx31.h
create mode 100644 arch/arm/mach-mx3/devices-imx35.h
rename arch/arm/mach-mx3/{mach-mx35pdk.c => mach-mx35_3ds.c} (89%)
create mode 100644 arch/arm/plat-mxc/devices/Kconfig
create mode 100644 arch/arm/plat-mxc/devices/Makefile
create mode 100644 arch/arm/plat-mxc/devices/platform-imx-i2c.c
create mode 100644 arch/arm/plat-mxc/devices/platform-imx-uart.c
create mode 100644 arch/arm/plat-mxc/devices/platform-mxc_nand.c
create mode 100644 arch/arm/plat-mxc/devices/platform-spi_imx.c
delete mode 100644 arch/arm/plat-mxc/include/mach/board-armadillo5x0.h
delete mode 100644 arch/arm/plat-mxc/include/mach/board-kzmarm11.h
delete mode 100644 arch/arm/plat-mxc/include/mach/board-mx21ads.h
delete mode 100644 arch/arm/plat-mxc/include/mach/board-mx27ads.h
delete mode 100644 arch/arm/plat-mxc/include/mach/board-mx27lite.h
delete mode 100644 arch/arm/plat-mxc/include/mach/board-mx27pdk.h
delete mode 100644 arch/arm/plat-mxc/include/mach/board-mx31_3ds.h
delete mode 100644 arch/arm/plat-mxc/include/mach/board-mx31ads.h
delete mode 100644 arch/arm/plat-mxc/include/mach/board-mx35pdk.h
delete mode 100644 arch/arm/plat-mxc/include/mach/board-pcm037.h
delete mode 100644 arch/arm/plat-mxc/include/mach/board-pcm043.h
delete mode 100644 arch/arm/plat-mxc/include/mach/board-qong.h
create mode 100644 arch/arm/plat-mxc/include/mach/devices-common.hPATCH 1/61 ARM: mx3: rename mach-mx35pdk.c to mach-mx35_3ds.c matching its arch number
Additional document all known names of that machine.
--- arch/arm/mach-mx3/Makefile | 2 +- arch/arm/mach-mx3/mach-mx35_3ds.c | 122 +++++++++++++++++++++++++++++++++++++ arch/arm/mach-mx3/mach-mx35pdk.c | 116 ----------------------------------- 3 files changed, 123 insertions(+), 117 deletions(-) create mode 100644 arch/arm/mach-mx3/mach-mx35_3ds.c delete mode 100644 arch/arm/mach-mx3/mach-mx35pdk.c
arch/arm/mach-mx3/Makefile +1 -1
@@ -22,5 +22,5 @@ obj-$(CONFIG_MACH_MX31MOBOARD) += mach-mx31moboard.o mx31moboard-devboard.o \ obj-$(CONFIG_MACH_QONG) += mach-qong.o obj-$(CONFIG_MACH_PCM043) += mach-pcm043.o obj-$(CONFIG_MACH_ARMADILLO5X0) += mach-armadillo5x0.o -obj-$(CONFIG_MACH_MX35_3DS) += mach-mx35pdk.o +obj-$(CONFIG_MACH_MX35_3DS) += mach-mx35_3ds.o obj-$(CONFIG_MACH_KZM_ARM11_01) += mach-kzm_arm11_01.o
arch/arm/mach-mx3/mach-mx35_3ds.c new file +122 -0
122 lines not on this page · raw message
arch/arm/mach-mx3/mach-mx35pdk.c deleted +0 -116
116 lines not on this page · raw message
Signature · 1 line
1.7.1
PATCH 2/61 ARM: mx25: rename mach-mx25pdk.c to mach-mx25_3ds.c matching its arch number
In reply to Uwe Kleine-KönigAdditionally document all known names of that machine.
--- arch/arm/mach-mx25/Makefile | 2 +- arch/arm/mach-mx25/mach-mx25_3ds.c | 180 ++++++++++++++++++++++++++++++++++++ arch/arm/mach-mx25/mach-mx25pdk.c | 174 ---------------------------------- 3 files changed, 181 insertions(+), 175 deletions(-) create mode 100644 arch/arm/mach-mx25/mach-mx25_3ds.c delete mode 100644 arch/arm/mach-mx25/mach-mx25pdk.c
arch/arm/mach-mx25/Makefile +1 -1
@@ -1,3 +1,3 @@ obj-y := mm.o devices.o obj-$(CONFIG_ARCH_MX25) += clock.o -obj-$(CONFIG_MACH_MX25_3DS) += mach-mx25pdk.o +obj-$(CONFIG_MACH_MX25_3DS) += mach-mx25_3ds.o
arch/arm/mach-mx25/mach-mx25_3ds.c new file +180 -0
180 lines not on this page · raw message
arch/arm/mach-mx25/mach-mx25pdk.c deleted +0 -174
174 lines not on this page · raw message
Signature · 1 line
1.7.1
PATCH 3/61 ARM: mx1: don't use deprecated symbol names
In reply to Uwe Kleine-König--- arch/arm/mach-mx1/Makefile | 1 - arch/arm/mach-mx1/clock.c | 3 +- arch/arm/mach-mx1/crm_regs.h | 4 +- arch/arm/mach-mx1/devices.c | 117 +++++++++++++++++++------------------- arch/arm/mach-mx1/generic.c | 13 ++-- arch/arm/mach-mx1/mach-mx1ads.c | 12 ++-- arch/arm/mach-mx1/mach-scb9328.c | 12 ++-- 7 files changed, 81 insertions(+), 81 deletions(-)
arch/arm/mach-mx1/Makefile +0 -1
@@ -4,7 +4,6 @@ # Object file lists. -EXTRA_CFLAGS += -DIMX_NEEDS_DEPRECATED_SYMBOLS obj-y += generic.o clock.o devices.o # Support for CMOS sensor interface
arch/arm/mach-mx1/clock.c +2 -1
@@ -596,7 +596,8 @@ int __init mx1_clocks_init(unsigned long fref)clk_enable (&hclk);clk_enable (&fclk); -mxc_timer_init (&gpt_clk,IO_ADDRESS (TIM1_BASE_ADDR ),TIM1_INT ); +mxc_timer_init (&gpt_clk,MX1_IO_ADDRESS (MX1_TIM1_BASE_ADDR ), +MX1_TIM1_INT );return 0 ; }
arch/arm/mach-mx1/crm_regs.h +2 -2
@@ -9,8 +9,8 @@#ifndef __ARCH_ARM_MACH_MX1_CRM_REGS_H__#define __ARCH_ARM_MACH_MX1_CRM_REGS_H__ -#define CCM_BASE IO_ADDRESS(CCM_BASE_ADDR) -#define SCM_BASE IO_ADDRESS(SCM_BASE_ADDR) +#define CCM_BASE MX1_IO_ADDRESS(MX1_CCM_BASE_ADDR) +#define SCM_BASE MX1_IO_ADDRESS(MX1_SCM_BASE_ADDR)/* CCM register addresses */ #define CCM_CSCR (CCM_BASE + 0x0)
arch/arm/mach-mx1/devices.c +59 -58
210 lines not on this page · raw message
arch/arm/mach-mx1/generic.c +6 -7
@@ -31,23 +31,22 @@static struct map_desc imx_io_desc[]__initdata = { { - .virtual =IMX_IO_BASE , - .pfn =__phys_to_pfn (IMX_IO_PHYS ), - .length =IMX_IO_SIZE , - .type =MT_DEVICE + .virtual =MX1_IO_BASE_ADDR_VIRT , + .pfn =__phys_to_pfn (MX1_IO_BASE_ADDR ), + .length =MX1_IO_SIZE , + .type =MT_DEVICE } };void __init mx1_map_io (void ) {mxc_set_cpu_type (MXC_CPU_MX1 ); -mxc_arch_reset_init (IO_ADDRESS (WDT_BASE_ADDR )); +mxc_arch_reset_init (MX1_IO_ADDRESS (MX1_WDT_BASE_ADDR ));iotable_init (imx_io_desc,ARRAY_SIZE (imx_io_desc)); }void __init mx1_init_irq (void ) { -mxc_init_irq (IO_ADDRESS (AVIC_BASE_ADDR )); +mxc_init_irq (MX1_IO_ADDRESS (MX1_AVIC_BASE_ADDR )); } -
arch/arm/mach-mx1/mach-mx1ads.c +6 -6
@@ -75,8 +75,8 @@ static struct physmap_flash_data mx1ads_flash_data = { };static struct resource flash_resource = { - .start =IMX_CS0_PHYS , - .end =IMX_CS0_PHYS +SZ_32M -1 , + .start =MX1_CS0_PHYS , + .end =MX1_CS0_PHYS +SZ_32M -1 , .flags =IORESOURCE_MEM , };
@@ -145,8 +145,8 @@ struct sys_timer mx1ads_timer = {MACHINE_START (MX1ADS ,"Freescale MX1ADS" )/* Maintainer: Sascha Hauer, Pengutronix */ - .phys_io = IMX_IO_PHYS, - .io_pg_offst = (IMX_IO_BASE >> 18) & 0xfffc, + .phys_io = MX1_IO_BASE_ADDR, + .io_pg_offst = (MX1_IO_BASE_ADDR_VIRT >> 18) & 0xfffc, .boot_params = MX1_PHYS_OFFSET + 0x100, .map_io = mx1_map_io, .init_irq = mx1_init_irq,
@@ -155,8 +155,8 @@ MACHINE_START(MX1ADS, "Freescale MX1ADS") MACHINE_END MACHINE_START(MXLADS, "Freescale MXLADS") - .phys_io = IMX_IO_PHYS, - .io_pg_offst = (IMX_IO_BASE >> 18) & 0xfffc, + .phys_io = MX1_IO_BASE_ADDR, + .io_pg_offst = (MX1_IO_BASE_ADDR_VIRT >> 18) & 0xfffc, .boot_params = MX1_PHYS_OFFSET + 0x100, .map_io = mx1_map_io, .init_irq = mx1_init_irq,
arch/arm/mach-mx1/mach-scb9328.c +6 -6
@@ -31,8 +31,8 @@* This scb9328 has a 32MiB flash */ static struct resource flash_resource = { - .start =IMX_CS0_PHYS , - .end =IMX_CS0_PHYS + (32 *1024 *1024 ) -1 , + .start =MX1_CS0_PHYS , + .end =MX1_CS0_PHYS + (32 *1024 *1024 ) -1 , .flags =IORESOURCE_MEM , };
@@ -70,13 +70,13 @@ static struct dm9000_plat_data dm9000_platdata = {static struct resource dm9000x_resources[] = { { .name ="address area" , - .start =IMX_CS5_PHYS , - .end =IMX_CS5_PHYS +1 , + .start =MX1_CS5_PHYS , + .end =MX1_CS5_PHYS +1 , .flags =IORESOURCE_MEM ,/* address access */ }, { .name ="data area" , - .start =IMX_CS5_PHYS +4 , - .end =IMX_CS5_PHYS +5 , + .start =MX1_CS5_PHYS +4 , + .end =MX1_CS5_PHYS +5 , .flags =IORESOURCE_MEM ,/* data access */ }, { .start =IRQ_GPIOC (3 ),
Signature · 1 line
1.7.1
PATCH 4/61 ARM: mx1/scb9328: fix type of uart1_mxc_exit to make compiler happy
In reply to Uwe Kleine-KönigThis fixes:
arch/arm/mach-mx1/mach-scb9328.c:120: warning: initialization from incompatible pointer type
--- arch/arm/mach-mx1/mach-scb9328.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-)
arch/arm/mach-mx1/mach-scb9328.c +1 -2
@@ -108,11 +108,10 @@ static int uart1_mxc_init(struct platform_device *pdev) ARRAY_SIZE(mxc_uart1_pins), "UART1"); } -static int uart1_mxc_exit (struct platform_device *pdev) +static void uart1_mxc_exit (struct platform_device *pdev) {mxc_gpio_release_multiple_pins (mxc_uart1_pins,ARRAY_SIZE (mxc_uart1_pins)); -return 0 ; }static struct imxuart_platform_data uart_pdata = {
Signature · 1 line
1.7.1
PATCH 5/61 ARM: mx2/mx27_3ds: document alternative names and remove empty header
In reply to Uwe Kleine-König--- arch/arm/mach-mx2/mach-mx27_3ds.c | 7 ++++++- arch/arm/plat-mxc/include/mach/board-mx27pdk.h | 14 -------------- 2 files changed, 6 insertions(+), 15 deletions(-) delete mode 100644 arch/arm/plat-mxc/include/mach/board-mx27pdk.h
arch/arm/mach-mx2/mach-mx27_3ds.c +6 -1
@@ -18,6 +18,12 @@* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/* +* This machine is known as: +* - i.MX27 3-Stack Development System +* - i.MX27 Platform Development Kit (i.MX27 PDK) +*/ +#include <linux/platform_device.h> #include <linux/gpio.h> #include <asm/mach-types.h>
@@ -27,7 +33,6 @@#include <mach/common.h> #include <mach/imx-uart.h> #include <mach/iomux-mx27.h> -#include <mach/board-mx27pdk.h> #include "devices.h"
arch/arm/plat-mxc/include/mach/board-mx27pdk.h deleted +0 -14
@@ -1,14 +0,0 @@ -/* -* Copyright 2009 Freescale Semiconductor, Inc. All Rights Reserved. -*/ - -/* -* 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. -*/ - -#ifndef __ASM_ARCH_MXC_BOARD_MX27PDK_H__ -#define __ASM_ARCH_MXC_BOARD_MX27PDK_H__ - -#endif /* __ASM_ARCH_MXC_BOARD_MX27PDK_H__ */
Signature · 1 line
1.7.1
PATCH 6/61 ARM: imx: remove empty and unused board headers
In reply to Uwe Kleine-König--- arch/arm/mach-mx2/mach-imx27lite.c | 1 - arch/arm/mach-mx3/mach-armadillo5x0.c | 1 - arch/arm/mach-mx3/mach-pcm037.c | 1 - .../arm/plat-mxc/include/mach/board-armadillo5x0.h | 15 ------------- arch/arm/plat-mxc/include/mach/board-mx27lite.h | 14 ------------ arch/arm/plat-mxc/include/mach/board-mx35pdk.h | 22 -------------------- arch/arm/plat-mxc/include/mach/board-pcm037.h | 22 -------------------- arch/arm/plat-mxc/include/mach/board-pcm043.h | 22 -------------------- 8 files changed, 0 insertions(+), 98 deletions(-) delete mode 100644 arch/arm/plat-mxc/include/mach/board-armadillo5x0.h delete mode 100644 arch/arm/plat-mxc/include/mach/board-mx27lite.h delete mode 100644 arch/arm/plat-mxc/include/mach/board-mx35pdk.h delete mode 100644 arch/arm/plat-mxc/include/mach/board-pcm037.h delete mode 100644 arch/arm/plat-mxc/include/mach/board-pcm043.h
arch/arm/mach-mx2/mach-imx27lite.c +0 -1
@@ -28,7 +28,6 @@#include <mach/common.h> #include <mach/imx-uart.h> #include <mach/iomux-mx27.h> -#include <mach/board-mx27lite.h> #include "devices.h"
arch/arm/mach-mx3/mach-armadillo5x0.c +0 -1
@@ -50,7 +50,6 @@#include <mach/common.h> #include <mach/imx-uart.h> #include <mach/iomux-mx3.h> -#include <mach/board-armadillo5x0.h> #include <mach/mmc.h> #include <mach/ipu.h> #include <mach/mx3fb.h>
arch/arm/mach-mx3/mach-pcm037.c +0 -1
@@ -43,7 +43,6 @@#include <asm/mach/arch.h> #include <asm/mach/time.h> #include <asm/mach/map.h> -#include <mach/board-pcm037.h> #include <mach/common.h> #include <mach/hardware.h> #include <mach/i2c.h>
arch/arm/plat-mxc/include/mach/board-armadillo5x0.h deleted +0 -15
@@ -1,15 +0,0 @@ -/* -* Copyright 2009 Alberto Panizzo <[email protected]>. -* All Rights Reserved. -*/ - -/* -* 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. -*/ - -#ifndef __ASM_ARCH_MXC_BOARD_ARMADILLO5X0_H__ -#define __ASM_ARCH_MXC_BOARD_ARMADILLO5X0_H__ - -#endif
arch/arm/plat-mxc/include/mach/board-mx27lite.h deleted +0 -14
@@ -1,14 +0,0 @@ -/* -* Copyright 2009 Freescale Semiconductor, Inc. All Rights Reserved. -*/ - -/* -* 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. -*/ - -#ifndef __ASM_ARCH_MXC_BOARD_MX27LITE_H__ -#define __ASM_ARCH_MXC_BOARD_MX27LITE_H__ - -#endif /* __ASM_ARCH_MXC_BOARD_MX27LITE_H__ */
arch/arm/plat-mxc/include/mach/board-mx35pdk.h deleted +0 -22
@@ -1,22 +0,0 @@ -/* -* Copyright 2009 Freescale Semiconductor, Inc. All Rights Reserved -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#ifndef __ASM_ARCH_MXC_BOARD_MX35PDK_H__ -#define __ASM_ARCH_MXC_BOARD_MX35PDK_H__ - -#endif /* __ASM_ARCH_MXC_BOARD_MX35PDK_H__ */
arch/arm/plat-mxc/include/mach/board-pcm037.h deleted +0 -22
@@ -1,22 +0,0 @@ -/* -* Copyright (C) 2008 Sascha Hauer, Pengutronix -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#ifndef __ASM_ARCH_MXC_BOARD_PCM037_H__ -#define __ASM_ARCH_MXC_BOARD_PCM037_H__ - -#endif /* __ASM_ARCH_MXC_BOARD_PCM037_H__ */
arch/arm/plat-mxc/include/mach/board-pcm043.h deleted +0 -22
@@ -1,22 +0,0 @@ -/* -* Copyright (C) 2008 Sascha Hauer, Pengutronix -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#ifndef __ASM_ARCH_MXC_BOARD_PCM043_H__ -#define __ASM_ARCH_MXC_BOARD_PCM043_H__ - -#endif /* __ASM_ARCH_MXC_BOARD_PCM043_H__ */
Signature · 1 line
1.7.1
PATCH 7/61 ARM: mx3/kzm_arm11_01: fold board header in its only user
In reply to Uwe Kleine-König--- arch/arm/mach-mx3/mach-kzm_arm11_01.c | 18 ++++++++++- arch/arm/plat-mxc/include/mach/board-kzmarm11.h | 39 ----------------------- 2 files changed, 17 insertions(+), 40 deletions(-) delete mode 100644 arch/arm/plat-mxc/include/mach/board-kzmarm11.h
arch/arm/mach-mx3/mach-kzm_arm11_01.c +17 -1
@@ -37,7 +37,6 @@#include <asm/mach/map.h> #include <asm/mach/time.h> -#include <mach/board-kzmarm11.h> #include <mach/clock.h> #include <mach/common.h> #include <mach/imx-uart.h>
@@ -51,6 +50,23 @@ IMX_IO_ADDRESS(x, MX31_CS5) ?: \ MX31_IO_ADDRESS(x)) +/* +* KZM-ARM11-01 Board Control Registers on FPGA +*/ +#define KZM_ARM11_CTL1 (MX31_CS4_BASE_ADDR + 0x1000) +#define KZM_ARM11_CTL2 (MX31_CS4_BASE_ADDR + 0x1001) +#define KZM_ARM11_RSW1 (MX31_CS4_BASE_ADDR + 0x1002) +#define KZM_ARM11_BACK_LIGHT (MX31_CS4_BASE_ADDR + 0x1004) +#define KZM_ARM11_FPGA_REV (MX31_CS4_BASE_ADDR + 0x1008) +#define KZM_ARM11_7SEG_LED (MX31_CS4_BASE_ADDR + 0x1010) +#define KZM_ARM11_LEDS (MX31_CS4_BASE_ADDR + 0x1020) +#define KZM_ARM11_DIPSW2 (MX31_CS4_BASE_ADDR + 0x1003) + +/* +* External UART for touch panel on FPGA +*/ +#define KZM_ARM11_16550 (MX31_CS4_BASE_ADDR + 0x1050) +#if defined(CONFIG_SERIAL_8250 ) || defined(CONFIG_SERIAL_8250_MODULE )/* * KZM-ARM11-01 has an external UART on FPGA
arch/arm/plat-mxc/include/mach/board-kzmarm11.h deleted +0 -39
@@ -1,39 +0,0 @@ -/* -* Copyright (C) 2009 Yoichi Yuasa <[email protected]> -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -*/ -#ifndef __ARM_ARCH_BOARD_KZM_ARM11_H -#define __ARM_ARCH_BOARD_KZM_ARM11_H - -/* -* KZM-ARM11-01 Board Control Registers on FPGA -*/ -#define KZM_ARM11_CTL1 (MX31_CS4_BASE_ADDR + 0x1000) -#define KZM_ARM11_CTL2 (MX31_CS4_BASE_ADDR + 0x1001) -#define KZM_ARM11_RSW1 (MX31_CS4_BASE_ADDR + 0x1002) -#define KZM_ARM11_BACK_LIGHT (MX31_CS4_BASE_ADDR + 0x1004) -#define KZM_ARM11_FPGA_REV (MX31_CS4_BASE_ADDR + 0x1008) -#define KZM_ARM11_7SEG_LED (MX31_CS4_BASE_ADDR + 0x1010) -#define KZM_ARM11_LEDS (MX31_CS4_BASE_ADDR + 0x1020) -#define KZM_ARM11_DIPSW2 (MX31_CS4_BASE_ADDR + 0x1003) - -/* -* External UART for touch panel on FPGA -*/ -#define KZM_ARM11_16550 (MX31_CS4_BASE_ADDR + 0x1050) - -#endif /* __ARM_ARCH_BOARD_KZM_ARM11_H */ -
Signature · 1 line
1.7.1
PATCH 8/61 ARM: mx2/mx21ads: fold board header in its only user
In reply to Uwe Kleine-König--- arch/arm/mach-mx2/mach-mx21ads.c | 36 ++++++++++++++++- arch/arm/plat-mxc/include/mach/board-mx21ads.h | 52 ------------------------ 2 files changed, 35 insertions(+), 53 deletions(-) delete mode 100644 arch/arm/plat-mxc/include/mach/board-mx21ads.h
arch/arm/mach-mx2/mach-mx21ads.c +35 -1
@@ -33,10 +33,44 @@#include <mach/iomux-mx21.h> #include <mach/mxc_nand.h> #include <mach/mmc.h> -#include <mach/board-mx21ads.h> #include "devices.h" +/* +* Memory-mapped I/O on MX21ADS base board +*/ +#define MX21ADS_MMIO_BASE_ADDR 0xf5000000 +#define MX21ADS_MMIO_SIZE SZ_16M + +#define MX21ADS_REG_ADDR (offset) (void __force __iomem *) \ + (MX21ADS_MMIO_BASE_ADDR + (offset)) + +#define MX21ADS_CS8900A_IRQ IRQ_GPIOE(11) +#define MX21ADS_CS8900A_IOBASE_REG MX21ADS_REG_ADDR(0x000000) +#define MX21ADS_ST16C255_IOBASE_REG MX21ADS_REG_ADDR(0x200000) +#define MX21ADS_VERSION_REG MX21ADS_REG_ADDR(0x400000) +#define MX21ADS_IO_REG MX21ADS_REG_ADDR(0x800000) + +/* MX21ADS_IO_REG bit definitions */ +#define MX21ADS_IO_SD_WP 0x0001/* read */ +#define MX21ADS_IO_TP6 0x0001/* write */ +#define MX21ADS_IO_SW_SEL 0x0002/* read */ +#define MX21ADS_IO_TP7 0x0002/* write */ +#define MX21ADS_IO_RESET_E_UART 0x0004 +#define MX21ADS_IO_RESET_BASE 0x0008 +#define MX21ADS_IO_CSI_CTL2 0x0010 +#define MX21ADS_IO_CSI_CTL1 0x0020 +#define MX21ADS_IO_CSI_CTL0 0x0040 +#define MX21ADS_IO_UART1_EN 0x0080 +#define MX21ADS_IO_UART4_EN 0x0100 +#define MX21ADS_IO_LCDON 0x0200 +#define MX21ADS_IO_IRDA_EN 0x0400 +#define MX21ADS_IO_IRDA_FIR_SEL 0x0800 +#define MX21ADS_IO_IRDA_MD0_B 0x1000 +#define MX21ADS_IO_IRDA_MD1 0x2000 +#define MX21ADS_IO_LED4_ON 0x4000 +#define MX21ADS_IO_LED3_ON 0x8000 +static unsigned int mx21ads_pins[] = {/* CS8900A */
arch/arm/plat-mxc/include/mach/board-mx21ads.h deleted +0 -52
52 lines not on this page · raw message
Signature · 1 line
1.7.1
PATCH 9/61 ARM: mx2/mx27ads: fold board header in its only user
In reply to Uwe Kleine-KönigMoreover remove unused definitions.
--- arch/arm/mach-mx2/mach-mx27ads.c | 32 ++- arch/arm/plat-mxc/include/mach/board-mx27ads.h | 344 ------------------------ 2 files changed, 30 insertions(+), 346 deletions(-) delete mode 100644 arch/arm/plat-mxc/include/mach/board-mx27ads.h
arch/arm/mach-mx2/mach-mx27ads.c +30 -2
@@ -34,7 +34,6 @@#include <mach/gpio.h> #include <mach/imx-uart.h> #include <mach/iomux-mx27.h> -#include <mach/board-mx27ads.h> #include <mach/mxc_nand.h> #include <mach/i2c.h> #include <mach/imxfb.h>
@@ -42,6 +41,36 @@#include "devices.h" +/* +* Base address of PBC controller, CS4 +*/ +#define PBC_BASE_ADDRESS 0xf4300000 +#define PBC_REG_ADDR (offset) (void __force __iomem *) \ + (PBC_BASE_ADDRESS + (offset)) + +/* When the PBC address connection is fixed in h/w, defined as 1 */ +#define PBC_ADDR_SH 0 + +/* Offsets for the PBC Controller register */ +/* +* PBC Board version register offset +*/ +#define PBC_VERSION_REG PBC_REG_ADDR(0x00000 >> PBC_ADDR_SH) +/* +* PBC Board control register 1 set address. +*/ +#define PBC_BCTRL1_SET_REG PBC_REG_ADDR(0x00008 >> PBC_ADDR_SH) +/* +* PBC Board control register 1 clear address. +*/ +#define PBC_BCTRL1_CLEAR_REG PBC_REG_ADDR(0x0000C >> PBC_ADDR_SH) + +/* PBC Board Control Register 1 bit definitions */ +#define PBC_BCTRL1_LCDON 0x0800/* Enable the LCD */ + +/* to determine the correct external crystal reference */ +#define CKIH_27MHZ_BIT_SET (1 << 3) +static unsigned int mx27ads_pins[] = {/* UART0 */ PE12_PF_UART1_TXD ,
@@ -342,4 +371,3 @@ MACHINE_START(MX27ADS, "Freescale i.MX27ADS") .init_machine = mx27ads_board_init, .timer = &mx27ads_timer,MACHINE_END -
arch/arm/plat-mxc/include/mach/board-mx27ads.h deleted +0 -344
344 lines not on this page · raw message
Signature · 1 line
1.7.1
PATCH 10/61 ARM: mx3/qong: get rid of nearly empty header
In reply to Uwe Kleine-Königboard-qong.h only defined a single symbol that was used only once.
--- arch/arm/mach-mx3/mach-qong.c | 3 +-- arch/arm/plat-mxc/include/mach/board-qong.h | 17 ----------------- 2 files changed, 1 insertions(+), 19 deletions(-) delete mode 100644 arch/arm/plat-mxc/include/mach/board-qong.h
arch/arm/mach-mx3/mach-qong.c +1 -2
@@ -34,7 +34,6 @@#include <mach/common.h> #include <asm/page.h> #include <asm/setup.h> -#include <mach/board-qong.h> #include <mach/imx-uart.h> #include <mach/iomux-mx3.h> #include "devices.h"
@@ -116,7 +115,7 @@ static struct physmap_flash_data qong_flash_data = {static struct resource qong_flash_resource = { .start =MX31_CS0_BASE_ADDR , - .end =MX31_CS0_BASE_ADDR +QONG_NOR_SIZE -1 , + .end =MX31_CS0_BASE_ADDR +SZ_128M -1 , .flags =IORESOURCE_MEM , };
arch/arm/plat-mxc/include/mach/board-qong.h deleted +0 -17
@@ -1,17 +0,0 @@ -/* -* Copyright 2009 Ilya Yanok, Emcraft Systems Ltd, <[email protected]> -*/ - -/* -* 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. -*/ - -#ifndef __ASM_ARCH_MXC_BOARD_QONG_H__ -#define __ASM_ARCH_MXC_BOARD_QONG_H__ - -/* NOR FLASH */ -#define QONG_NOR_SIZE (128*1024*1024) - -#endif /* __ASM_ARCH_MXC_BOARD_QONG_H__ */
Signature · 1 line
1.7.1
PATCH 11/61 ARM: mx3/mx31_3ds: fold board header in its only user
In reply to Uwe Kleine-KönigMoreover remove unused definitions.
--- arch/arm/mach-mx3/mach-mx31_3ds.c | 42 +++++++++++++--- arch/arm/plat-mxc/include/mach/board-mx31_3ds.h | 59 ----------------------- 2 files changed, 35 insertions(+), 66 deletions(-) delete mode 100644 arch/arm/plat-mxc/include/mach/board-mx31_3ds.h
arch/arm/mach-mx3/mach-mx31_3ds.c +35 -7
@@ -37,19 +37,47 @@#include <asm/memory.h> #include <asm/mach/map.h> #include <mach/common.h> -#include <mach/board-mx31_3ds.h> #include <mach/imx-uart.h> #include <mach/iomux-mx3.h> #include <mach/mxc_nand.h> #include <mach/spi.h> #include "devices.h" -/*! -* @file mx31_3ds.c -* -* @brief This file contains the board-specific initialization routines. -* -* @ingroup System +/* Definitions for components on the Debug board */ + +/* Base address of CPLD controller on the Debug board */ +#define DEBUG_BASE_ADDRESS CS5_IO_ADDRESS(MX3x_CS5_BASE_ADDR) + +/* LAN9217 ethernet base address */ +#define LAN9217_BASE_ADDR MX3x_CS5_BASE_ADDR + +/* CPLD config and interrupt base address */ +#define CPLD_ADDR (DEBUG_BASE_ADDRESS + 0x20000) + +/* status, interrupt */ +#define CPLD_INT_STATUS_REG (CPLD_ADDR + 0x10) +#define CPLD_INT_MASK_REG (CPLD_ADDR + 0x38) +#define CPLD_INT_RESET_REG (CPLD_ADDR + 0x20) +/* magic word for debug CPLD */ +#define CPLD_MAGIC_NUMBER1_REG (CPLD_ADDR + 0x40) +#define CPLD_MAGIC_NUMBER2_REG (CPLD_ADDR + 0x48) +/* CPLD code version */ +#define CPLD_CODE_VER_REG (CPLD_ADDR + 0x50) +/* magic word for debug CPLD */ +#define CPLD_MAGIC_NUMBER3_REG (CPLD_ADDR + 0x58) + +/* CPLD IRQ line for external uart, external ethernet etc */ +#define EXPIO_PARENT_INT IOMUX_TO_IRQ(MX31_PIN_GPIO1_1) + +#define MXC_EXP_IO_BASE (MXC_BOARD_IRQ_START) +#define MXC_IRQ_TO_EXPIO (irq) ((irq) - MXC_EXP_IO_BASE) + +#define EXPIO_INT_ENET (MXC_EXP_IO_BASE + 0) + +#define MXC_MAX_EXP_IO_LINES 16 + +/* +* This file contains the board-specific initialization routines. */ static int mx31_3ds_pins[] = {
arch/arm/plat-mxc/include/mach/board-mx31_3ds.h deleted +0 -59
59 lines not on this page · raw message
Signature · 1 line
1.7.1
PATCH 12/61 ARM: mx3/mx31ads: fold board header in its only user
In reply to Uwe Kleine-KönigMoreover remove unused definitions.
--- arch/arm/mach-mx3/mach-mx31ads.c | 43 +++++++-- arch/arm/plat-mxc/include/mach/board-mx31ads.h | 117 ------------------------ 2 files changed, 36 insertions(+), 124 deletions(-) delete mode 100644 arch/arm/plat-mxc/include/mach/board-mx31ads.h
arch/arm/mach-mx3/mach-mx31ads.c +36 -7
@@ -33,7 +33,6 @@#include <asm/memory.h> #include <asm/mach/map.h> #include <mach/common.h> -#include <mach/board-mx31ads.h> #include <mach/imx-uart.h> #include <mach/iomux-mx3.h>
@@ -45,12 +44,42 @@#include "devices.h" -/*! -* @file mx31ads.c -* -* @brief This file contains the board-specific initialization routines. -* -* @ingroup System +/* Base address of PBC controller */ +#define PBC_BASE_ADDRESS MX31_CS4_BASE_ADDR_VIRT +/* Offsets for the PBC Controller register */ + +/* PBC Board interrupt status register */ +#define PBC_INTSTATUS 0x000016 + +/* PBC Board interrupt current status register */ +#define PBC_INTCURR_STATUS 0x000018 + +/* PBC Interrupt mask register set address */ +#define PBC_INTMASK_SET 0x00001A + +/* PBC Interrupt mask register clear address */ +#define PBC_INTMASK_CLEAR 0x00001C + +/* External UART A */ +#define PBC_SC16C652_UARTA 0x010000 + +/* External UART B */ +#define PBC_SC16C652_UARTB 0x010010 + +#define PBC_INTSTATUS_REG (PBC_INTSTATUS + PBC_BASE_ADDRESS) +#define PBC_INTMASK_SET_REG (PBC_INTMASK_SET + PBC_BASE_ADDRESS) +#define PBC_INTMASK_CLEAR_REG (PBC_INTMASK_CLEAR + PBC_BASE_ADDRESS) +#define EXPIO_PARENT_INT IOMUX_TO_IRQ(MX31_PIN_GPIO1_4) + +#define MXC_EXP_IO_BASE (MXC_BOARD_IRQ_START) +#define MXC_IRQ_TO_EXPIO (irq) ((irq) - MXC_EXP_IO_BASE) + +#define EXPIO_INT_XUART_INTA (MXC_EXP_IO_BASE + 10) +#define EXPIO_INT_XUART_INTB (MXC_EXP_IO_BASE + 11) + +#define MXC_MAX_EXP_IO_LINES 16 +/* +* This file contains the board-specific initialization routines. */ #if defined(CONFIG_SERIAL_8250 ) || defined(CONFIG_SERIAL_8250_MODULE )
arch/arm/plat-mxc/include/mach/board-mx31ads.h deleted +0 -117
117 lines not on this page · raw message
Signature · 1 line
1.7.1
PATCH 13/61 ARM: mxc: grammar fix
In reply to Uwe Kleine-König--- .../plat-mxc/include/mach/board-eukrea_cpuimx27.h | 2 +- arch/arm/plat-mxc/include/mach/board-mx31lilly.h | 2 +- arch/arm/plat-mxc/include/mach/board-mx31lite.h | 2 +- arch/arm/plat-mxc/include/mach/board-mx31moboard.h | 2 +- arch/arm/plat-mxc/include/mach/board-pcm038.h | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-)
arch/arm/plat-mxc/include/mach/board-eukrea_cpuimx27.h +1 -1
@@ -25,7 +25,7 @@#ifndef __ASSEMBLY__/* * This CPU module needs a baseboard to work. After basic initializing -* its own devices, it calls baseboard's init function. +* its own devices, it calls the baseboard's init function. * TODO: Add your own baseboard init function and call it from * inside eukrea_cpuimx27_init(). *
arch/arm/plat-mxc/include/mach/board-mx31lilly.h +1 -1
@@ -31,7 +31,7 @@ enum mx31lilly_boards {/* * This CPU module needs a baseboard to work. After basic initializing -* its own devices, it calls baseboard's init function. +* its own devices, it calls the baseboard's init function. */ extern void mx31lilly_db_init (void );
arch/arm/plat-mxc/include/mach/board-mx31lite.h +1 -1
@@ -32,7 +32,7 @@ enum mx31lite_boards {/* * This CPU module needs a baseboard to work. After basic initializing -* its own devices, it calls baseboard's init function. +* its own devices, it calls the baseboard's init function. */ extern void mx31lite_db_init (void );
arch/arm/plat-mxc/include/mach/board-mx31moboard.h +1 -1
@@ -31,7 +31,7 @@ enum mx31moboard_boards {/* * This CPU module needs a baseboard to work. After basic initializing -* its own devices, it calls baseboard's init function. +* its own devices, it calls the baseboard's init function. */ extern void mx31moboard_devboard_init (void );
arch/arm/plat-mxc/include/mach/board-pcm038.h +1 -1
@@ -22,7 +22,7 @@#ifndef __ASSEMBLY__/* * This CPU module needs a baseboard to work. After basic initializing -* its own devices, it calls baseboard's init function. +* its own devices, it calls the baseboard's init function. * TODO: Add your own baseboard init function and call it from * inside pcm038_init(). *
Signature · 1 line
1.7.1
PATCH 14/61 ARM: imx: rename mach dir for mx21 and mx27 to mach-imx
In reply to Uwe Kleine-KönigFinally all imx code should end up there, start with mach-mx2. While touching all files rename some files to use a hyphen instead of an underscore.
---
arch/arm/Makefile | 2 +-
arch/arm/{mach-mx2 => mach-imx}/Kconfig | 0
arch/arm/{mach-mx2 => mach-imx}/Makefile | 6 +++---
arch/arm/{mach-mx2 => mach-imx}/Makefile.boot | 0
.../clock_imx21.c => mach-imx/clock-imx21.c} | 0
.../clock_imx27.c => mach-imx/clock-imx27.c} | 0
.../{mach-mx2/cpu_imx27.c => mach-imx/cpu-imx27.c} | 0
arch/arm/{mach-mx2 => mach-imx}/devices.c | 0
arch/arm/{mach-mx2 => mach-imx}/devices.h | 0
.../eukrea_mbimx27-baseboard.c | 0
arch/arm/{mach-mx2 => mach-imx}/mach-cpuimx27.c | 0
arch/arm/{mach-mx2 => mach-imx}/mach-imx27lite.c | 0
arch/arm/{mach-mx2 => mach-imx}/mach-mx21ads.c | 0
arch/arm/{mach-mx2 => mach-imx}/mach-mx27_3ds.c | 0
arch/arm/{mach-mx2 => mach-imx}/mach-mx27ads.c | 0
arch/arm/{mach-mx2 => mach-imx}/mach-mxt_td60.c | 0
arch/arm/{mach-mx2 => mach-imx}/mach-pca100.c | 0
arch/arm/{mach-mx2 => mach-imx}/mach-pcm038.c | 0
arch/arm/{mach-mx2 => mach-imx}/mm-imx21.c | 2 +-
arch/arm/{mach-mx2 => mach-imx}/mm-imx27.c | 2 +-
arch/arm/{mach-mx2 => mach-imx}/pcm970-baseboard.c | 0
arch/arm/{mach-mx2 => mach-imx}/serial.c | 0
arch/arm/plat-mxc/Kconfig | 2 +-
23 files changed, 7 insertions(+), 7 deletions(-)
rename arch/arm/{mach-mx2 => mach-imx}/Kconfig (100%)
rename arch/arm/{mach-mx2 => mach-imx}/Makefile (80%)
rename arch/arm/{mach-mx2 => mach-imx}/Makefile.boot (100%)
rename arch/arm/{mach-mx2/clock_imx21.c => mach-imx/clock-imx21.c} (100%)
rename arch/arm/{mach-mx2/clock_imx27.c => mach-imx/clock-imx27.c} (100%)
rename arch/arm/{mach-mx2/cpu_imx27.c => mach-imx/cpu-imx27.c} (100%)
rename arch/arm/{mach-mx2 => mach-imx}/devices.c (100%)
rename arch/arm/{mach-mx2 => mach-imx}/devices.h (100%)
rename arch/arm/{mach-mx2 => mach-imx}/eukrea_mbimx27-baseboard.c (100%)
rename arch/arm/{mach-mx2 => mach-imx}/mach-cpuimx27.c (100%)
rename arch/arm/{mach-mx2 => mach-imx}/mach-imx27lite.c (100%)
rename arch/arm/{mach-mx2 => mach-imx}/mach-mx21ads.c (100%)
rename arch/arm/{mach-mx2 => mach-imx}/mach-mx27_3ds.c (100%)
rename arch/arm/{mach-mx2 => mach-imx}/mach-mx27ads.c (100%)
rename arch/arm/{mach-mx2 => mach-imx}/mach-mxt_td60.c (100%)
rename arch/arm/{mach-mx2 => mach-imx}/mach-pca100.c (100%)
rename arch/arm/{mach-mx2 => mach-imx}/mach-pcm038.c (100%)
rename arch/arm/{mach-mx2 => mach-imx}/mm-imx21.c (98%)
rename arch/arm/{mach-mx2 => mach-imx}/mm-imx27.c (98%)
rename arch/arm/{mach-mx2 => mach-imx}/pcm970-baseboard.c (100%)
rename arch/arm/{mach-mx2 => mach-imx}/serial.c (100%)arch/arm/Makefile +1 -1
@@ -146,7 +146,7 @@ machine-$(CONFIG_ARCH_MMP) := mmp machine-$(CONFIG_ARCH_MSM) := msm machine-$(CONFIG_ARCH_MV78XX0) := mv78xx0 machine-$(CONFIG_ARCH_MX1) := mx1 -machine-$(CONFIG_ARCH_MX2) := mx2 +machine-$(CONFIG_ARCH_MX2) := imx machine-$(CONFIG_ARCH_MX25) := mx25 machine-$(CONFIG_ARCH_MX3) := mx3 machine-$(CONFIG_ARCH_MX5) := mx5
arch/arm/mach-imx/Kconfig renamed from arch/arm/mach-mx2/Kconfig +0 -0
arch/arm/mach-imx/Makefile renamed from arch/arm/mach-mx2/Makefile +3 -3
@@ -6,10 +6,10 @@ obj-y := devices.o serial.o -obj-$(CONFIG_MACH_MX21) += clock_imx21.o mm-imx21.o +obj-$(CONFIG_MACH_MX21) += clock-imx21.o mm-imx21.o -obj-$(CONFIG_MACH_MX27) += cpu_imx27.o -obj-$(CONFIG_MACH_MX27) += clock_imx27.o mm-imx27.o +obj-$(CONFIG_MACH_MX27) += cpu-imx27.o +obj-$(CONFIG_MACH_MX27) += clock-imx27.o mm-imx27.o obj-$(CONFIG_MACH_MX21ADS) += mach-mx21ads.o obj-$(CONFIG_MACH_MX27ADS) += mach-mx27ads.o
arch/arm/mach-imx/Makefile.boot renamed from arch/arm/mach-mx2/Makefile.boot +0 -0
arch/arm/mach-imx/clock-imx21.c renamed from arch/arm/mach-mx2/clock_imx21.c +0 -0
arch/arm/mach-imx/clock-imx27.c renamed from arch/arm/mach-mx2/clock_imx27.c +0 -0
arch/arm/mach-imx/cpu-imx27.c renamed from arch/arm/mach-mx2/cpu_imx27.c +0 -0
arch/arm/mach-imx/devices.c renamed from arch/arm/mach-mx2/devices.c +0 -0
arch/arm/mach-imx/devices.h renamed from arch/arm/mach-mx2/devices.h +0 -0
arch/arm/mach-imx/eukrea_mbimx27-baseboard.c renamed from arch/arm/mach-mx2/eukrea_mbimx27-baseboard.c +0 -0
arch/arm/mach-imx/mach-cpuimx27.c renamed from arch/arm/mach-mx2/mach-cpuimx27.c +0 -0
arch/arm/mach-imx/mach-imx27lite.c renamed from arch/arm/mach-mx2/mach-imx27lite.c +0 -0
arch/arm/mach-imx/mach-mx21ads.c renamed from arch/arm/mach-mx2/mach-mx21ads.c +0 -0
arch/arm/mach-imx/mach-mx27_3ds.c renamed from arch/arm/mach-mx2/mach-mx27_3ds.c +0 -0
arch/arm/mach-imx/mach-mx27ads.c renamed from arch/arm/mach-mx2/mach-mx27ads.c +0 -0
arch/arm/mach-imx/mach-mxt_td60.c renamed from arch/arm/mach-mx2/mach-mxt_td60.c +0 -0
arch/arm/mach-imx/mach-pca100.c renamed from arch/arm/mach-mx2/mach-pca100.c +0 -0
arch/arm/mach-imx/mach-pcm038.c renamed from arch/arm/mach-mx2/mach-pcm038.c +0 -0
arch/arm/mach-imx/mm-imx21.c renamed from arch/arm/mach-mx2/mm-imx21.c +1 -1
@@ -1,5 +1,5 @@/* -* arch/arm/mach-mx2/mm-imx21.c +* arch/arm/mach-imx/mm-imx21.c * * Copyright (C) 2008 Juergen Beisert (kernel at pengutronix.de) *
arch/arm/mach-imx/mm-imx27.c renamed from arch/arm/mach-mx2/mm-imx27.c +1 -1
@@ -1,5 +1,5 @@/* -* arch/arm/mach-mx2/mm-imx27.c +* arch/arm/mach-imx/mm-imx27.c * * Copyright (C) 2008 Juergen Beisert (kernel at pengutronix.de) *
arch/arm/mach-imx/pcm970-baseboard.c renamed from arch/arm/mach-mx2/pcm970-baseboard.c +0 -0
arch/arm/mach-imx/serial.c renamed from arch/arm/mach-mx2/serial.c +0 -0
arch/arm/plat-mxc/Kconfig +1 -1
@@ -49,7 +49,7 @@ config ARCH_MX5 endchoice source "arch/arm/mach-mx1/Kconfig" -source "arch/arm/mach-mx2/Kconfig" +source "arch/arm/mach-imx/Kconfig" source "arch/arm/mach-mx3/Kconfig" source "arch/arm/mach-mx25/Kconfig" source "arch/arm/mach-mxc91231/Kconfig"
Signature · 1 line
1.7.1
PATCH 15/61 ARM: imx/mx1: fold crm_regs.h into its only consumer
In reply to Uwe Kleine-KönigAs crm_regs.h is GPL-v2 only don't allow "(at your option) any later version" for clock.c any more.
--- arch/arm/mach-mx1/clock.c | 47 ++++++++++++++++++++++++++++++----- arch/arm/mach-mx1/crm_regs.h | 55 ------------------------------------------ 2 files changed, 40 insertions(+), 62 deletions(-) delete mode 100644 arch/arm/mach-mx1/crm_regs.h
arch/arm/mach-mx1/clock.c +40 -7
@@ -2,18 +2,17 @@* Copyright (C) 2008 Sascha Hauer <[email protected]>, Pengutronix * * This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +* You should have received a copy of the GNU General Public License along +* with this program; if not, write to the Free Software Foundation, Inc., +* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */ #include <linux/kernel.h>
@@ -29,7 +28,41 @@#include <mach/clock.h> #include <mach/hardware.h> #include <mach/common.h> -#include "crm_regs.h" + +#define IO_ADDR_CCM (off) (MX1_IO_ADDRESS(MX1_CCM_BASE_ADDR + (off))) + +/* CCM register addresses */ +#define CCM_CSCR IO_ADDR_CCM(0x0) +#define CCM_MPCTL0 IO_ADDR_CCM(0x4) +#define CCM_SPCTL0 IO_ADDR_CCM(0xc) +#define CCM_PCDR IO_ADDR_CCM(0x20) + +#define CCM_CSCR_CLKO_OFFSET 29 +#define CCM_CSCR_CLKO_MASK (0x7 << 29) +#define CCM_CSCR_USB_OFFSET 26 +#define CCM_CSCR_USB_MASK (0x7 << 26) +#define CCM_CSCR_OSC_EN_SHIFT 17 +#define CCM_CSCR_SYSTEM_SEL (1 << 16) +#define CCM_CSCR_BCLK_OFFSET 10 +#define CCM_CSCR_BCLK_MASK (0xf << 10) +#define CCM_CSCR_PRESC (1 << 15) + +#define CCM_PCDR_PCLK3_OFFSET 16 +#define CCM_PCDR_PCLK3_MASK (0x7f << 16) +#define CCM_PCDR_PCLK2_OFFSET 4 +#define CCM_PCDR_PCLK2_MASK (0xf << 4) +#define CCM_PCDR_PCLK1_OFFSET 0 +#define CCM_PCDR_PCLK1_MASK 0xf + +#define IO_ADDR_SCM (off) (MX1_IO_ADDRESS(MX1_SCM_BASE_ADDR + (off))) + +/* SCM register addresses */ +#define SCM_GCCR IO_ADDR_SCM(0xc) + +#define SCM_GCCR_DMA_CLK_EN_OFFSET 3 +#define SCM_GCCR_CSI_CLK_EN_OFFSET 2 +#define SCM_GCCR_MMA_CLK_EN_OFFSET 1 +#define SCM_GCCR_USBD_CLK_EN_OFFSET 0static int _clk_enable (struct clk *clk) {
arch/arm/mach-mx1/crm_regs.h deleted +0 -55
55 lines not on this page · raw message
Signature · 1 line
1.7.1
PATCH 16/61 ARM: imx: get rid of mxc_gpio_init
In reply to Uwe Kleine-KönigThis function is defined once for each imx family and so is in the way when compiling a kernel for more than one SoC.
--- arch/arm/mach-imx/devices.c | 22 ++++++++-------------- arch/arm/mach-imx/mm-imx21.c | 3 +++ arch/arm/mach-imx/mm-imx27.c | 3 +++ arch/arm/mach-mx1/devices.c | 2 +- arch/arm/mach-mx1/generic.c | 3 +++ arch/arm/mach-mx25/devices.c | 2 +- arch/arm/mach-mx25/mm.c | 3 +++ arch/arm/mach-mx3/devices.c | 2 +- arch/arm/mach-mx3/mm.c | 3 +++ arch/arm/mach-mx5/devices.c | 2 +- arch/arm/mach-mx5/mm.c | 3 +++ arch/arm/mach-mxc91231/devices.c | 2 +- arch/arm/mach-mxc91231/mm.c | 3 +++ arch/arm/plat-mxc/irq.c | 3 --- arch/arm/plat-mxc/tzic.c | 2 -- 15 files changed, 34 insertions(+), 24 deletions(-)
arch/arm/mach-imx/devices.c +8 -14
@@ -454,26 +454,21 @@ DEFINE_IMX_SSI_DEVICE(1, 2, MX2x_SSI1_BASE_ADDR, MX2x_INT_SSI1);#ifdef CONFIG_MACH_MX21 DEFINE_MXC_GPIO_PORTS (MX21 , imx21); + +int __init imx21_register_gpios (void ) +{ +return mxc_gpio_init (imx21_gpio_ports,ARRAY_SIZE (imx21_gpio_ports)); +}#endif #ifdef CONFIG_MACH_MX27 DEFINE_MXC_GPIO_PORTS (MX27 , imx27); -#endif -int __init mxc_register_gpios (void ) +int __init imx27_register_gpios (void ) { -#ifdef CONFIG_MACH_MX21 -if (cpu_is_mx21 ()) -return mxc_gpio_init (imx21_gpio_ports,ARRAY_SIZE (imx21_gpio_ports)); - else -#endif -#ifdef CONFIG_MACH_MX27 -if (cpu_is_mx27 ()) -return mxc_gpio_init (imx27_gpio_ports,ARRAY_SIZE (imx27_gpio_ports)); - else -#endif -return 0 ; +return mxc_gpio_init (imx27_gpio_ports,ARRAY_SIZE (imx27_gpio_ports)); } +#endif #ifdef CONFIG_MACH_MX21 static struct resource mx21_usbhc_resources[] = {
@@ -500,4 +495,3 @@ struct platform_device mx21_usbhc_device = { .resource = mx21_usbhc_resources, };#endif -
arch/arm/mach-imx/mm-imx21.c +3 -0
@@ -77,7 +77,10 @@ void __init mx21_map_io(void)iotable_init (imx21_io_desc,ARRAY_SIZE (imx21_io_desc)); } +int imx21_register_gpios (void ); +void __init mx21_init_irq (void ) { +imx21_register_gpios ();mxc_init_irq (MX21_IO_ADDRESS (MX21_AVIC_BASE_ADDR )); }
arch/arm/mach-imx/mm-imx27.c +3 -0
@@ -77,7 +77,10 @@ void __init mx27_map_io(void)iotable_init (imx27_io_desc,ARRAY_SIZE (imx27_io_desc)); } +int imx27_register_gpios (void ); +void __init mx27_init_irq (void ) { +imx27_register_gpios ();mxc_init_irq (MX27_IO_ADDRESS (MX27_AVIC_BASE_ADDR )); }
arch/arm/mach-mx1/devices.c +1 -1
@@ -237,7 +237,7 @@ static struct mxc_gpio_port imx_gpio_ports[] = { } }; -int __init mxc_register_gpios (void ) +int __init imx1_register_gpios (void ) {return mxc_gpio_init (imx_gpio_ports,ARRAY_SIZE (imx_gpio_ports)); }
arch/arm/mach-mx1/generic.c +3 -0
@@ -46,7 +46,10 @@ void __init mx1_map_io(void)iotable_init (imx_io_desc,ARRAY_SIZE (imx_io_desc)); } +int imx1_register_gpios (void ); +void __init mx1_init_irq (void ) { +imx1_register_gpios ();mxc_init_irq (MX1_IO_ADDRESS (MX1_AVIC_BASE_ADDR )); }
arch/arm/mach-mx25/devices.c +1 -1
@@ -414,7 +414,7 @@ static struct mxc_gpio_port imx_gpio_ports[] = { } }; -int __init mxc_register_gpios (void ) +int __init imx25_register_gpios (void ) {return mxc_gpio_init (imx_gpio_ports,ARRAY_SIZE (imx_gpio_ports)); }
arch/arm/mach-mx25/mm.c +3 -0
@@ -69,8 +69,11 @@ void __init mx25_map_io(void)iotable_init (mxc_io_desc,ARRAY_SIZE (mxc_io_desc)); } +int imx25_register_gpios (void ); +void __init mx25_init_irq (void ) { +imx25_register_gpios ();mxc_init_irq ((void __iomem *)MX25_AVIC_BASE_ADDR_VIRT ); }
arch/arm/mach-mx3/devices.c +1 -1
@@ -147,7 +147,7 @@ static struct mxc_gpio_port imx_gpio_ports[] = { } }; -int __init mxc_register_gpios (void ) +int __init imx3x_register_gpios (void ) {return mxc_gpio_init (imx_gpio_ports,ARRAY_SIZE (imx_gpio_ports)); }
arch/arm/mach-mx3/mm.c +3 -0
@@ -97,8 +97,11 @@ void __init mx35_map_io(void) }#endif +int imx3x_register_gpios (void ); +void __init mx31_init_irq (void ) { +imx3x_register_gpios ();mxc_init_irq (IO_ADDRESS (AVIC_BASE_ADDR)); }
arch/arm/mach-mx5/devices.c +1 -1
@@ -195,7 +195,7 @@ static struct mxc_gpio_port mxc_gpio_ports[] = { }, }; -int __init mxc_register_gpios (void ) +int __init imx51_register_gpios (void ) {return mxc_gpio_init (mxc_gpio_ports,ARRAY_SIZE (mxc_gpio_ports)); }
arch/arm/mach-mx5/mm.c +3 -0
@@ -65,6 +65,8 @@ void __init mx51_map_io(void)iotable_init (mxc_io_desc,ARRAY_SIZE (mxc_io_desc)); } +int imx51_register_gpios (void ); +void __init mx51_init_irq (void ) {unsigned long tzic_addr;
@@ -79,5 +81,6 @@ void __init mx51_init_irq(void)if (!tzic_virt)panic ("unable to map TZIC interrupt controller\n" ); +imx51_register_gpios ();tzic_init_irq (tzic_virt); }
arch/arm/mach-mxc91231/devices.c +1 -1
@@ -135,7 +135,7 @@ static struct mxc_gpio_port mxc_gpio_ports[] = { }, }; -int __init mxc_register_gpios (void ) +int __init mxc91231_register_gpios (void ) {return mxc_gpio_init (mxc_gpio_ports,ARRAY_SIZE (mxc_gpio_ports)); }
arch/arm/mach-mxc91231/mm.c +3 -0
@@ -88,7 +88,10 @@ void __init mxc91231_map_io(void)iotable_init (mxc_io_desc,ARRAY_SIZE (mxc_io_desc)); } +int mxc91231_register_gpios (void ); +void __init mxc91231_init_irq (void ) { +mxc91231_register_gpios ();mxc_init_irq (MXC91231_IO_ADDRESS (MXC91231_AVIC_BASE_ADDR )); }
arch/arm/plat-mxc/irq.c +0 -3
@@ -142,9 +142,6 @@ void __init mxc_init_irq(void __iomem *irqbase)for (i =0 ; i <8 ; i++)__raw_writel (0 , avic_base +AVIC_NIPRIORITY (i)); -/* init architectures chained interrupt handler */ -mxc_register_gpios (); -#ifdef CONFIG_FIQ /* Initialize FIQ */ init_FIQ ();
arch/arm/plat-mxc/tzic.c +0 -2
@@ -145,8 +145,6 @@ void __init tzic_init_irq(void __iomem *irqbase)set_irq_handler (i, handle_level_irq);set_irq_flags (i,IRQF_VALID ); } -mxc_register_gpios (); -pr_info ("TrustZone Interrupt Controller (TZIC) initialized\n" ); }
Signature · 1 line
1.7.1
PATCH 17/61 ARM: imx: fold serial.c into devices.c
In reply to Uwe Kleine-König... and use cpp magic to reduce repetition.
--- arch/arm/mach-imx/Makefile | 2 +- arch/arm/mach-imx/devices.c | 32 ++++++++++ arch/arm/mach-imx/serial.c | 141 ------------------------------------------- 3 files changed, 33 insertions(+), 142 deletions(-) delete mode 100644 arch/arm/mach-imx/serial.c
arch/arm/mach-imx/Makefile +1 -1
@@ -4,7 +4,7 @@ # Object file lists. -obj-y := devices.o serial.o +obj-y := devices.o obj-$(CONFIG_MACH_MX21) += clock-imx21.o mm-imx21.o
arch/arm/mach-imx/devices.c +32 -0
@@ -32,11 +32,13 @@#include <linux/platform_device.h> #include <linux/gpio.h> #include <linux/dma-mapping.h> +#include <linux/serial.h> #include <mach/irqs.h> #include <mach/hardware.h> #include <mach/common.h> #include <mach/mmc.h> +#include <mach/imx-uart.h> #include "devices.h"
@@ -424,6 +426,36 @@ struct platform_device mxc_usbh2 = {DEFINE_IMX_SSI_DEVICE (0 ,1 , MX2x_SSI1_BASE_ADDR, MX2x_INT_SSI1);DEFINE_IMX_SSI_DEVICE (1 ,2 , MX2x_SSI1_BASE_ADDR, MX2x_INT_SSI1); +#define DEFINE_IMX_UART_DEVICE (n, baseaddr, irq) \ + static struct resource imx2x_uart_resources ## n[] = { \ + { \ + .start = baseaddr, \ + .end = baseaddr + 0xb5, \ + .flags = IORESOURCE_MEM, \ + }, { \ + .start = irq, \ + .end = irq, \ + .flags = IORESOURCE_IRQ, \ + }, \ + }; \ + \ + struct platform_device mxc_uart_device ## n = { \ + .name = "imx-uart", \ + .id = n, \ + .num_resources = ARRAY_SIZE(imx2x_uart_resources ## n), \ + .resource = imx2x_uart_resources ## n, \ + } + +DEFINE_IMX_UART_DEVICE (0 , MX2x_UART1_BASE_ADDR, MX2x_INT_UART1); +DEFINE_IMX_UART_DEVICE (1 , MX2x_UART2_BASE_ADDR, MX2x_INT_UART2); +DEFINE_IMX_UART_DEVICE (2 , MX2x_UART3_BASE_ADDR, MX2x_INT_UART3); +DEFINE_IMX_UART_DEVICE (3 , MX2x_UART4_BASE_ADDR, MX2x_INT_UART4); + +#ifdef CONFIG_MACH_MX27 +DEFINE_IMX_UART_DEVICE (4 ,MX27_UART5_BASE_ADDR ,MX27_INT_UART5 ); +DEFINE_IMX_UART_DEVICE (5 ,MX27_UART6_BASE_ADDR ,MX27_INT_UART6 ); +#endif +/* GPIO port description */ #define DEFINE_MXC_GPIO_PORT_IRQ (SOC , n, _irq) \ { \
arch/arm/mach-imx/serial.c deleted +0 -141
141 lines not on this page · raw message
Signature · 1 line
1.7.1
PATCH 18/61 ARM: imx1: rename imx_csi_device to match its .name
In reply to Uwe Kleine-König--- arch/arm/mach-mx1/devices.c | 12 ++++++------ arch/arm/mach-mx1/devices.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-)
arch/arm/mach-mx1/devices.c +6 -6
@@ -29,7 +29,7 @@#include "devices.h" -static struct resource imx_csi_resources[] = { +static struct resource imx1_camera_resources[] = { { .start =0x00224000 , .end =0x00224010 ,
@@ -41,17 +41,17 @@ static struct resource imx_csi_resources[] = { }, }; -static u64 imx_csi_dmamask =DMA_BIT_MASK (32 ); +static u64 imx1_camera_dmamask =DMA_BIT_MASK (32 ); -struct platform_device imx_csi_device = { +struct platform_device imx1_camera_device = { .name ="mx1-camera" , .id =0 ,/* This is used to put cameras on this interface */ .dev = { - .dma_mask = &imx_csi_dmamask, + .dma_mask = &imx1_camera_dmamask, .coherent_dma_mask =DMA_BIT_MASK (32 ), }, - .resource = imx_csi_resources, - .num_resources =ARRAY_SIZE (imx_csi_resources), + .resource = imx1_camera_resources, + .num_resources =ARRAY_SIZE (imx1_camera_resources), };static struct resource imx_i2c_resources[] = {
arch/arm/mach-mx1/devices.h +1 -1
@@ -1,4 +1,4 @@ -extern struct platform_device imx_csi_device; +extern struct platform_device imx1_camera_device;extern struct platform_device imx_i2c_device;extern struct platform_device imx_uart1_device;extern struct platform_device imx_uart2_device;
Signature · 1 line
1.7.1
PATCH 19/61 ARM: imx1: rename imx_i2c_device to follow a common naming scheme
In reply to Uwe Kleine-König--- arch/arm/mach-mx1/devices.c | 2 +- arch/arm/mach-mx1/devices.h | 2 +- arch/arm/mach-mx1/mach-mx1ads.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
arch/arm/mach-mx1/devices.c +1 -1
@@ -66,7 +66,7 @@ static struct resource imx_i2c_resources[] = { }, }; -struct platform_device imx_i2c_device = { +struct platform_device imx_i2c_device0 = { .name ="imx-i2c" , .id =0 , .resource = imx_i2c_resources,
arch/arm/mach-mx1/devices.h +1 -1
@@ -1,5 +1,5 @@extern struct platform_device imx1_camera_device; -extern struct platform_device imx_i2c_device; +extern struct platform_device imx_i2c_device0;extern struct platform_device imx_uart1_device;extern struct platform_device imx_uart2_device;extern struct platform_device imx_rtc_device;
arch/arm/mach-mx1/mach-mx1ads.c +1 -1
@@ -131,7 +131,7 @@ static void __init mx1ads_init(void)i2c_register_board_info (0 , mx1ads_i2c_devices,ARRAY_SIZE (mx1ads_i2c_devices)); -mxc_register_device (&imx_i2c_device, &mx1ads_i2c_data); +mxc_register_device (&imx_i2c_device0, &mx1ads_i2c_data); }static void __init mx1ads_timer_init (void )
Signature · 1 line
1.7.1
PATCH 20/61 ARM: imx1: rename imx_uart[12]_device to follow a common naming scheme
In reply to Uwe Kleine-KönigNote that these devices are specific for imx1 as only here three irqs are used.
--- arch/arm/mach-mx1/devices.c | 81 +++++++++++++------------------------ arch/arm/mach-mx1/devices.h | 4 +- arch/arm/mach-mx1/mach-mx1ads.c | 4 +- arch/arm/mach-mx1/mach-scb9328.c | 2 +- 4 files changed, 34 insertions(+), 57 deletions(-)
arch/arm/mach-mx1/devices.c +29 -52
@@ -73,59 +73,36 @@ struct platform_device imx_i2c_device0 = { .num_resources = ARRAY_SIZE(imx_i2c_resources), }; -static struct resource imx_uart1_resources[] = { - { - .start =MX1_UART1_BASE_ADDR , - .end =MX1_UART1_BASE_ADDR +0xD0 , - .flags =IORESOURCE_MEM , - }, { - .start =MX1_UART1_MINT_RX , - .end =MX1_UART1_MINT_RX , - .flags =IORESOURCE_IRQ , - }, { - .start =MX1_UART1_MINT_TX , - .end =MX1_UART1_MINT_TX , - .flags =IORESOURCE_IRQ , - }, { - .start =MX1_UART1_MINT_RTS , - .end =MX1_UART1_MINT_RTS , - .flags =IORESOURCE_IRQ , - }, -}; - -struct platform_device imx_uart1_device = { - .name ="imx-uart" , - .id =0 , - .num_resources =ARRAY_SIZE (imx_uart1_resources), - .resource = imx_uart1_resources, -}; - -static struct resource imx_uart2_resources[] = { - { - .start =MX1_UART2_BASE_ADDR , - .end =MX1_UART2_BASE_ADDR +0xD0 , - .flags =IORESOURCE_MEM , - }, { - .start =MX1_UART2_MINT_RX , - .end =MX1_UART2_MINT_RX , - .flags =IORESOURCE_IRQ , - }, { - .start =MX1_UART2_MINT_TX , - .end =MX1_UART2_MINT_TX , - .flags =IORESOURCE_IRQ , - }, { - .start =MX1_UART2_MINT_RTS , - .end =MX1_UART2_MINT_RTS , - .flags =IORESOURCE_IRQ , - }, -}; +#define DEFINE_IMX1_UART_DEVICE (n, baseaddr, irqrx, irqtx, irqrts) \ + static struct resource imx1_uart_resources ## n[] = { \ + { \ + .start = baseaddr, \ + .end = baseaddr + 0xd0, \ + .flags = IORESOURCE_MEM, \ + }, { \ + .start = irqrx, \ + .end = irqrx, \ + .flags = IORESOURCE_IRQ, \ + }, { \ + .start = irqtx, \ + .end = irqtx, \ + .flags = IORESOURCE_IRQ, \ + }, { \ + .start = irqrts, \ + .end = irqrts, \ + .flags = IORESOURCE_IRQ, \ + }, \ + }; \ + \ + struct platform_device imx1_uart_device ## n = { \ + .name = "imx-uart", \ + .id = n, \ + .num_resources = ARRAY_SIZE(imx1_uart_resources ## n), \ + .resource = imx1_uart_resources ## n, \ + } -struct platform_device imx_uart2_device = { - .name ="imx-uart" , - .id =1 , - .num_resources =ARRAY_SIZE (imx_uart2_resources), - .resource = imx_uart2_resources, -}; +DEFINE_IMX1_UART_DEVICE (0 ,MX1_UART1_BASE_ADDR ,MX1_UART1_MINT_RX ,MX1_UART1_MINT_TX ,MX1_UART1_MINT_RTS ); +DEFINE_IMX1_UART_DEVICE (1 ,MX1_UART2_BASE_ADDR ,MX1_UART2_MINT_RX ,MX1_UART2_MINT_TX ,MX1_UART2_MINT_RTS );static struct resource imx_rtc_resources[] = { {
arch/arm/mach-mx1/devices.h +2 -2
@@ -1,7 +1,7 @@extern struct platform_device imx1_camera_device;extern struct platform_device imx_i2c_device0; -extern struct platform_device imx_uart1_device; -extern struct platform_device imx_uart2_device; +extern struct platform_device imx1_uart_device0; +extern struct platform_device imx1_uart_device1;extern struct platform_device imx_rtc_device;extern struct platform_device imx_wdt_device;extern struct platform_device imx_usb_device;
arch/arm/mach-mx1/mach-mx1ads.c +2 -2
@@ -121,8 +121,8 @@ static void __init mx1ads_init(void) ARRAY_SIZE(mx1ads_pins), "mx1ads");/* UART */ -mxc_register_device (&imx_uart1_device, &uart_pdata[0 ]); -mxc_register_device (&imx_uart2_device, &uart_pdata[1 ]); +mxc_register_device (&imx1_uart_device0, &uart_pdata[0 ]); +mxc_register_device (&imx1_uart_device1, &uart_pdata[1 ]);/* Physmap flash */ mxc_register_device (&flash_device, &mx1ads_flash_data);
arch/arm/mach-mx1/mach-scb9328.c +1 -1
@@ -130,7 +130,7 @@ static struct platform_device *devices[] __initdata = {*/ static void __init scb9328_init (void ) { -mxc_register_device (&imx_uart1_device, &uart_pdata); +mxc_register_device (&imx1_uart_device0, &uart_pdata);printk (KERN_INFO "Scb9328: Adding devices\n" );platform_add_devices (devices,ARRAY_SIZE (devices));
Signature · 1 line
1.7.1
PATCH 21/61 ARM: mx3: mx31lilly: fix build error for !CONFIG_USB_ULPI
In reply to Uwe Kleine-Königarch/arm/mach-mx3/built-in.o: In function `mx31lilly_board_init':
mach-kzm_arm11_01.c:(.init.text+0x674): undefined reference to otg_ulpi_create' mach-kzm_arm11_01.c:(.init.text+0x68c): undefined reference to otg_ulpi_create' mach-kzm_arm11_01.c:(.init.text+0x744): undefined reference to `mxc_ulpi_access_ops'
make: *** [.tmp_vmlinux1] Error 1
--- arch/arm/mach-mx3/mach-mx31lilly.c | 33 ++++++++++++++++++++++----------- 1 files changed, 22 insertions(+), 11 deletions(-)
arch/arm/mach-mx3/mach-mx31lilly.c +22 -11
@@ -115,6 +115,8 @@ static struct platform_device physmap_flash_device = {/* USB */ +#if defined(CONFIG_USB_ULPI ) +#define USB_PAD_CFG (PAD_CTL_DRV_MAX | PAD_CTL_SRE_FAST | PAD_CTL_HYS_CMOS | \ PAD_CTL_ODE_CMOS | PAD_CTL_100K_PU)
@@ -244,10 +246,20 @@ static struct mxc_usbh_platform_data usbh2_pdata = { .flags = MXC_EHCI_POWER_PINS_ENABLED, }; -static struct platform_device *devices[]__initdata = { - &smsc91x_device, - &physmap_flash_device, -}; +static void lilly1131_usb_init (void ) +{ + usbotg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, +USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); + usbh2_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, +USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); + +mxc_register_device (&mxc_usbh1, &usbh1_pdata); +mxc_register_device (&mxc_usbh2, &usbh2_pdata); +} + +#else +static inline void lilly1131_usb_init (void ) {} +#endif /* CONFIG_USB_ULPI */ /* SPI */
@@ -279,6 +291,11 @@ static struct spi_board_info mc13783_dev __initdata = { .platform_data = &mc13783_pdata, }; +static struct platform_device *devices[]__initdata = { + &smsc91x_device, + &physmap_flash_device, +}; +static int mx31lilly_baseboard;core_param (mx31lilly_baseboard, mx31lilly_baseboard, int,0444 );
@@ -321,13 +338,7 @@ static void __init mx31lilly_board_init(void)platform_add_devices (devices,ARRAY_SIZE (devices));/* USB */ - usbotg_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); - usbh2_pdata.otg =otg_ulpi_create (&mxc_ulpi_access_ops, -USB_OTG_DRV_VBUS |USB_OTG_DRV_VBUS_EXT ); - -mxc_register_device (&mxc_usbh1, &usbh1_pdata); -mxc_register_device (&mxc_usbh2, &usbh2_pdata); +lilly1131_usb_init (); }static void __init mx31lilly_timer_init (void )
Signature · 1 line
1.7.1
PATCH 21/61 ARM: mx3: mx31lilly: fix build error for !CONFIG_USB_ULPI
Quoted 9 lines · Uwe Kleine-K?nig
arch/arm/mach-mx3/built-in.o: In function `mx31lilly_board_init':
mach-kzm_arm11_01.c:(.init.text+0x674): undefined reference tootg_ulpi_create' mach-kzm_arm11_01.c:(.init.text+0x68c): undefined reference tootg_ulpi_create' mach-kzm_arm11_01.c:(.init.text+0x744): undefined reference to `mxc_ulpi_access_ops'
make: *** [.tmp_vmlinux1] Error 1Signed-off-by Daniel Mack <[email protected]>Cc Sascha Hauer <[email protected]>Signed-off-by Sascha Hauer <[email protected]>
I dropped this from my series as it's only cherry-picked from Sascha's tree for my build tests.
Best regards
Uwe
Signature · 2 lines
Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ |
PATCH 22/61 ARM: imx: rename mxc_uart_devicex to follow a common naming scheme
In reply to Uwe Kleine-KönigAddionally remove an unneeded include.
--- arch/arm/mach-imx/devices.c | 17 ++++++++--------- arch/arm/mach-imx/devices.h | 14 ++++++++------ arch/arm/mach-imx/eukrea_mbimx27-baseboard.c | 4 ++-- arch/arm/mach-imx/mach-cpuimx27.c | 4 ++-- arch/arm/mach-imx/mach-imx27lite.c | 2 +- arch/arm/mach-imx/mach-mx21ads.c | 6 +++--- arch/arm/mach-imx/mach-mx27_3ds.c | 2 +- arch/arm/mach-imx/mach-mx27ads.c | 12 ++++++------ arch/arm/mach-imx/mach-mxt_td60.c | 6 +++--- arch/arm/mach-imx/mach-pca100.c | 2 +- arch/arm/mach-imx/mach-pcm038.c | 6 +++--- 11 files changed, 38 insertions(+), 37 deletions(-)
arch/arm/mach-imx/devices.c +8 -9
@@ -38,7 +38,6 @@#include <mach/hardware.h> #include <mach/common.h> #include <mach/mmc.h> -#include <mach/imx-uart.h> #include "devices.h"
@@ -426,7 +425,7 @@ struct platform_device mxc_usbh2 = {DEFINE_IMX_SSI_DEVICE (0 ,1 , MX2x_SSI1_BASE_ADDR, MX2x_INT_SSI1);DEFINE_IMX_SSI_DEVICE (1 ,2 , MX2x_SSI1_BASE_ADDR, MX2x_INT_SSI1); -#define DEFINE_IMX_UART_DEVICE (n, baseaddr, irq) \ +#define DEFINE_IMX2x_UART_DEVICE (n, baseaddr, irq) \ static struct resource imx2x_uart_resources ## n[] = { \ { \ .start = baseaddr, \
@@ -439,21 +438,21 @@ DEFINE_IMX_SSI_DEVICE(1, 2, MX2x_SSI1_BASE_ADDR, MX2x_INT_SSI1); }, \ }; \ \ - struct platform_device mxc_uart_device ## n = { \ + struct platform_device imx2x_uart_device ## n = { \ .name = "imx-uart", \ .id = n, \ .num_resources = ARRAY_SIZE(imx2x_uart_resources ## n), \ .resource = imx2x_uart_resources ## n, \ } -DEFINE_IMX_UART_DEVICE (0 , MX2x_UART1_BASE_ADDR, MX2x_INT_UART1); -DEFINE_IMX_UART_DEVICE (1 , MX2x_UART2_BASE_ADDR, MX2x_INT_UART2); -DEFINE_IMX_UART_DEVICE (2 , MX2x_UART3_BASE_ADDR, MX2x_INT_UART3); -DEFINE_IMX_UART_DEVICE (3 , MX2x_UART4_BASE_ADDR, MX2x_INT_UART4); +DEFINE_IMX2x_UART_DEVICE (0 , MX2x_UART1_BASE_ADDR, MX2x_INT_UART1); +DEFINE_IMX2x_UART_DEVICE (1 , MX2x_UART2_BASE_ADDR, MX2x_INT_UART2); +DEFINE_IMX2x_UART_DEVICE (2 , MX2x_UART3_BASE_ADDR, MX2x_INT_UART3); +DEFINE_IMX2x_UART_DEVICE (3 , MX2x_UART4_BASE_ADDR, MX2x_INT_UART4);#ifdef CONFIG_MACH_MX27 -DEFINE_IMX_UART_DEVICE (4 ,MX27_UART5_BASE_ADDR ,MX27_INT_UART5 ); -DEFINE_IMX_UART_DEVICE (5 ,MX27_UART6_BASE_ADDR ,MX27_INT_UART6 ); +DEFINE_IMX2x_UART_DEVICE (4 ,MX27_UART5_BASE_ADDR ,MX27_INT_UART5 ); +DEFINE_IMX2x_UART_DEVICE (5 ,MX27_UART6_BASE_ADDR ,MX27_INT_UART6 );#endif /* GPIO port description */
arch/arm/mach-imx/devices.h +8 -6
@@ -6,12 +6,14 @@ extern struct platform_device mxc_gpt4;extern struct platform_device mxc_gpt5;#endif extern struct platform_device mxc_wdt; -extern struct platform_device mxc_uart_device0; -extern struct platform_device mxc_uart_device1; -extern struct platform_device mxc_uart_device2; -extern struct platform_device mxc_uart_device3; -extern struct platform_device mxc_uart_device4; -extern struct platform_device mxc_uart_device5; +extern struct platform_device imx2x_uart_device0; +extern struct platform_device imx2x_uart_device1; +extern struct platform_device imx2x_uart_device2; +extern struct platform_device imx2x_uart_device3; +#ifdef CONFIG_MACH_MX27 +extern struct platform_device imx2x_uart_device4; +extern struct platform_device imx2x_uart_device5; +#endif extern struct platform_device mxc_w1_master_device;#ifdef CONFIG_MACH_MX21 extern struct platform_device imx21_nand_device;
arch/arm/mach-imx/eukrea_mbimx27-baseboard.c +2 -2
@@ -222,8 +222,8 @@ void __init eukrea_mbimx27_baseboard_init(void)mxc_gpio_setup_multiple_pins (eukrea_mbimx27_pins,ARRAY_SIZE (eukrea_mbimx27_pins),"MBIMX27" ); -mxc_register_device (&mxc_uart_device1, &uart_pdata[0 ]); -mxc_register_device (&mxc_uart_device2, &uart_pdata[1 ]); +mxc_register_device (&imx2x_uart_device1, &uart_pdata[0 ]); +mxc_register_device (&imx2x_uart_device2, &uart_pdata[1 ]);mxc_register_device (&mxc_fb_device, &eukrea_mbimx27_fb_data);mxc_register_device (&mxc_sdhc_device0,NULL );
arch/arm/mach-imx/mach-cpuimx27.c +2 -2
@@ -187,7 +187,7 @@ static void __init eukrea_cpuimx27_init(void)mxc_gpio_setup_multiple_pins (eukrea_cpuimx27_pins,ARRAY_SIZE (eukrea_cpuimx27_pins),"CPUIMX27" ); -mxc_register_device (&mxc_uart_device0, &uart_pdata[0 ]); +mxc_register_device (&imx2x_uart_device0, &uart_pdata[0 ]);mxc_register_device (&imx27_nand_device, &eukrea_cpuimx27_nand_board_info);
@@ -203,7 +203,7 @@ static void __init eukrea_cpuimx27_init(void)/* SDHC2 can be used for Wifi */ mxc_register_device (&mxc_sdhc_device1,NULL );/* in which case UART4 is also used for Bluetooth */ -mxc_register_device (&mxc_uart_device3, &uart_pdata[1 ]); +mxc_register_device (&imx2x_uart_device3, &uart_pdata[1 ]);#endif #if defined(CONFIG_SERIAL_8250 ) || defined(CONFIG_SERIAL_8250_MODULE )
arch/arm/mach-imx/mach-imx27lite.c +1 -1
@@ -70,7 +70,7 @@ static void __init mx27lite_init(void) {mxc_gpio_setup_multiple_pins (mx27lite_pins,ARRAY_SIZE (mx27lite_pins),"imx27lite" ); -mxc_register_device (&mxc_uart_device0, &uart_pdata); +mxc_register_device (&imx2x_uart_device0, &uart_pdata);platform_add_devices (platform_devices,ARRAY_SIZE (platform_devices)); }
arch/arm/mach-imx/mach-mx21ads.c +3 -3
@@ -297,9 +297,9 @@ static void __init mx21ads_board_init(void)mxc_gpio_setup_multiple_pins (mx21ads_pins,ARRAY_SIZE (mx21ads_pins),"mx21ads" ); -mxc_register_device (&mxc_uart_device0, &uart_pdata); -mxc_register_device (&mxc_uart_device2, &uart_norts_pdata); -mxc_register_device (&mxc_uart_device3, &uart_pdata); +mxc_register_device (&imx2x_uart_device0, &uart_pdata); +mxc_register_device (&imx2x_uart_device2, &uart_norts_pdata); +mxc_register_device (&imx2x_uart_device3, &uart_pdata);mxc_register_device (&mxc_fb_device, &mx21ads_fb_data);mxc_register_device (&mxc_sdhc_device0, &mx21ads_sdhc_pdata);mxc_register_device (&imx21_nand_device, &mx21ads_nand_board_info);
arch/arm/mach-imx/mach-mx27_3ds.c +1 -1
@@ -75,7 +75,7 @@ static void __init mx27pdk_init(void) {mxc_gpio_setup_multiple_pins (mx27pdk_pins,ARRAY_SIZE (mx27pdk_pins),"mx27pdk" ); -mxc_register_device (&mxc_uart_device0, &uart_pdata); +mxc_register_device (&imx2x_uart_device0, &uart_pdata);platform_add_devices (platform_devices,ARRAY_SIZE (platform_devices)); }
arch/arm/mach-imx/mach-mx27ads.c +6 -6
@@ -313,12 +313,12 @@ static void __init mx27ads_board_init(void)mxc_gpio_setup_multiple_pins (mx27ads_pins,ARRAY_SIZE (mx27ads_pins),"mx27ads" ); -mxc_register_device (&mxc_uart_device0, &uart_pdata[0 ]); -mxc_register_device (&mxc_uart_device1, &uart_pdata[1 ]); -mxc_register_device (&mxc_uart_device2, &uart_pdata[2 ]); -mxc_register_device (&mxc_uart_device3, &uart_pdata[3 ]); -mxc_register_device (&mxc_uart_device4, &uart_pdata[4 ]); -mxc_register_device (&mxc_uart_device5, &uart_pdata[5 ]); +mxc_register_device (&imx2x_uart_device0, &uart_pdata[0 ]); +mxc_register_device (&imx2x_uart_device1, &uart_pdata[1 ]); +mxc_register_device (&imx2x_uart_device2, &uart_pdata[2 ]); +mxc_register_device (&imx2x_uart_device3, &uart_pdata[3 ]); +mxc_register_device (&imx2x_uart_device4, &uart_pdata[4 ]); +mxc_register_device (&imx2x_uart_device5, &uart_pdata[5 ]);mxc_register_device (&imx27_nand_device, &mx27ads_nand_board_info);/* only the i2c master 1 is used on this CPU card */
arch/arm/mach-imx/mach-mxt_td60.c +3 -3
@@ -254,9 +254,9 @@ static void __init mxt_td60_board_init(void)mxc_gpio_setup_multiple_pins (mxt_td60_pins,ARRAY_SIZE (mxt_td60_pins),"MXT_TD60" ); -mxc_register_device (&mxc_uart_device0, &uart_pdata[0 ]); -mxc_register_device (&mxc_uart_device1, &uart_pdata[1 ]); -mxc_register_device (&mxc_uart_device2, &uart_pdata[2 ]); +mxc_register_device (&imx2x_uart_device0, &uart_pdata[0 ]); +mxc_register_device (&imx2x_uart_device1, &uart_pdata[1 ]); +mxc_register_device (&imx2x_uart_device2, &uart_pdata[2 ]);mxc_register_device (&imx27_nand_device, &mxt_td60_nand_board_info); i2c_register_board_info(0, mxt_td60_i2c_devices,
arch/arm/mach-imx/mach-pca100.c +1 -1
@@ -320,7 +320,7 @@ static void __init pca100_init(void)mxc_register_device (&imx_ssi_device0, &pca100_ssi_pdata); -mxc_register_device (&mxc_uart_device0, &uart_pdata); +mxc_register_device (&imx2x_uart_device0, &uart_pdata);mxc_gpio_mode (GPIO_PORTC |29 |GPIO_GPIO |GPIO_IN );mxc_register_device (&mxc_sdhc_device1, &sdhc_pdata);
arch/arm/mach-imx/mach-pcm038.c +3 -3
@@ -305,9 +305,9 @@ static void __init pcm038_init(void)pcm038_init_sram (); -mxc_register_device (&mxc_uart_device0, &uart_pdata[0 ]); -mxc_register_device (&mxc_uart_device1, &uart_pdata[1 ]); -mxc_register_device (&mxc_uart_device2, &uart_pdata[2 ]); +mxc_register_device (&imx2x_uart_device0, &uart_pdata[0 ]); +mxc_register_device (&imx2x_uart_device1, &uart_pdata[1 ]); +mxc_register_device (&imx2x_uart_device2, &uart_pdata[2 ]);mxc_gpio_mode (PE16_AF_OWIRE );mxc_register_device (&imx27_nand_device, &pcm038_nand_board_info);
Signature · 1 line
1.7.1
PATCH 23/61 ARM: imx: move mx1 support to mach-imx
In reply to Uwe Kleine-König--- arch/arm/Makefile | 2 +- arch/arm/mach-imx/Kconfig | 19 + arch/arm/mach-imx/Makefile | 8 + arch/arm/mach-imx/Makefile.boot | 4 + arch/arm/mach-imx/clock-imx1.c | 636 +++++++++++++++++++++++++++++++ arch/arm/mach-imx/devices.c | 197 ++++++++++ arch/arm/mach-imx/devices.h | 12 + arch/arm/mach-imx/mach-mx1ads.c | 165 ++++++++ arch/arm/mach-imx/mach-scb9328.c | 157 ++++++++ arch/arm/mach-imx/mm-imx1.c | 55 +++ arch/arm/mach-imx/mx1-camera-fiq-ksym.c | 18 + arch/arm/mach-imx/mx1-camera-fiq.S | 35 ++ arch/arm/mach-mx1/Kconfig | 19 - arch/arm/mach-mx1/Makefile | 14 - arch/arm/mach-mx1/Makefile.boot | 4 - arch/arm/mach-mx1/clock.c | 636 ------------------------------- arch/arm/mach-mx1/devices.c | 220 ----------- arch/arm/mach-mx1/devices.h | 7 - arch/arm/mach-mx1/generic.c | 55 --- arch/arm/mach-mx1/ksym_mx1.c | 18 - arch/arm/mach-mx1/mach-mx1ads.c | 165 -------- arch/arm/mach-mx1/mach-scb9328.c | 157 -------- arch/arm/mach-mx1/mx1_camera_fiq.S | 35 -- arch/arm/plat-mxc/Kconfig | 1 - 24 files changed, 1307 insertions(+), 1332 deletions(-) create mode 100644 arch/arm/mach-imx/clock-imx1.c create mode 100644 arch/arm/mach-imx/mach-mx1ads.c create mode 100644 arch/arm/mach-imx/mach-scb9328.c create mode 100644 arch/arm/mach-imx/mm-imx1.c create mode 100644 arch/arm/mach-imx/mx1-camera-fiq-ksym.c create mode 100644 arch/arm/mach-imx/mx1-camera-fiq.S delete mode 100644 arch/arm/mach-mx1/Kconfig delete mode 100644 arch/arm/mach-mx1/Makefile delete mode 100644 arch/arm/mach-mx1/Makefile.boot delete mode 100644 arch/arm/mach-mx1/clock.c delete mode 100644 arch/arm/mach-mx1/devices.c delete mode 100644 arch/arm/mach-mx1/devices.h delete mode 100644 arch/arm/mach-mx1/generic.c delete mode 100644 arch/arm/mach-mx1/ksym_mx1.c delete mode 100644 arch/arm/mach-mx1/mach-mx1ads.c delete mode 100644 arch/arm/mach-mx1/mach-scb9328.c delete mode 100644 arch/arm/mach-mx1/mx1_camera_fiq.S
arch/arm/Makefile +1 -1
@@ -145,7 +145,7 @@ machine-$(CONFIG_ARCH_LOKI) := loki machine-$(CONFIG_ARCH_MMP) := mmp machine-$(CONFIG_ARCH_MSM) := msm machine-$(CONFIG_ARCH_MV78XX0) := mv78xx0 -machine-$(CONFIG_ARCH_MX1) := mx1 +machine-$(CONFIG_ARCH_MX1) := imx machine-$(CONFIG_ARCH_MX2) := imx machine-$(CONFIG_ARCH_MX25) := mx25 machine-$(CONFIG_ARCH_MX3) := mx3
arch/arm/mach-imx/Kconfig +19 -0
@@ -1,3 +1,22 @@ +if ARCH_MX1 + +comment "MX1 platforms:" +config MACH_MXLADS + bool + +config ARCH_MX1ADS + bool "MX1ADS platform" + select MACH_MXLADS + help + Say Y here if you are using Motorola MX1ADS/MXLADS boards + +config MACH_SCB9328 + bool "Synertronixx scb9328" + help + Say Y here if you are using a Synertronixx scb9328 board + +endif + if ARCH_MX2 choice
arch/arm/mach-imx/Makefile +8 -0
@@ -6,12 +6,20 @@ obj-y := devices.o +obj-$(CONFIG_ARCH_MX1) += clock-imx1.o mm-imx1.o obj-$(CONFIG_MACH_MX21) += clock-imx21.o mm-imx21.o obj-$(CONFIG_MACH_MX27) += cpu-imx27.o obj-$(CONFIG_MACH_MX27) += clock-imx27.o mm-imx27.o +# Support for CMOS sensor interface +obj-$(CONFIG_MX1_VIDEO) += mx1-camera-fiq.o mx1-camera-fiq-ksym.o + +obj-$(CONFIG_ARCH_MX1ADS) += mach-mx1ads.o +obj-$(CONFIG_MACH_SCB9328) += mach-scb9328.o + obj-$(CONFIG_MACH_MX21ADS) += mach-mx21ads.o + obj-$(CONFIG_MACH_MX27ADS) += mach-mx27ads.o obj-$(CONFIG_MACH_PCM038) += mach-pcm038.o obj-$(CONFIG_MACH_PCM970_BASEBOARD) += pcm970-baseboard.o
arch/arm/mach-imx/Makefile.boot +4 -0
@@ -1,3 +1,7 @@ +zreladdr-$(CONFIG_ARCH_MX1) := 0x08008000 +params_phys-$(CONFIG_ARCH_MX1) := 0x08000100 +initrd_phys-$(CONFIG_ARCH_MX1) := 0x08800000 + zreladdr-$(CONFIG_MACH_MX21) := 0xC0008000 params_phys-$(CONFIG_MACH_MX21) := 0xC0000100 initrd_phys-$(CONFIG_MACH_MX21) := 0xC0800000
arch/arm/mach-imx/clock-imx1.c new file +636 -0
636 lines not on this page · raw message
arch/arm/mach-imx/devices.c +197 -0
212 lines not on this page · raw message
arch/arm/mach-imx/devices.h +12 -0
@@ -1,3 +1,14 @@ +#ifdef CONFIG_ARCH_MX1 +extern struct platform_device imx1_camera_device; +extern struct platform_device imx_i2c_device0; +extern struct platform_device imx1_uart_device0; +extern struct platform_device imx1_uart_device1; +extern struct platform_device imx_rtc_device; +extern struct platform_device imx_wdt_device; +extern struct platform_device imx_usb_device; +#endif + +#if defined(CONFIG_MACH_MX21 ) || defined(CONFIG_MACH_MX27 )extern struct platform_device mxc_gpt1;extern struct platform_device mxc_gpt2;#ifdef CONFIG_MACH_MX27
@@ -42,3 +53,4 @@ extern struct platform_device mxc_spi_device2;extern struct platform_device mx21_usbhc_device;extern struct platform_device imx_ssi_device0;extern struct platform_device imx_ssi_device1; +#endif
arch/arm/mach-imx/mach-mx1ads.c new file +165 -0
165 lines not on this page · raw message
arch/arm/mach-imx/mach-scb9328.c new file +157 -0
157 lines not on this page · raw message
arch/arm/mach-imx/mm-imx1.c new file +55 -0
55 lines not on this page · raw message
arch/arm/mach-imx/mx1-camera-fiq-ksym.c new file +18 -0
@@ -0,0 +1,18 @@ +/* +* Exported ksyms of ARCH_MX1 +* +* Copyright (C) 2008, Darius Augulis <[email protected]> +* +* 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. +*/ + +#include <linux/platform_device.h> +#include <linux/module.h> + +#include <mach/mx1_camera.h> + +/* IMX camera FIQ handler */ +EXPORT_SYMBOL (mx1_camera_sof_fiq_start); +EXPORT_SYMBOL (mx1_camera_sof_fiq_end);
arch/arm/mach-imx/mx1-camera-fiq.S new file +35 -0
@@ -0,0 +1,35 @@ +/* + * Copyright (C) 2008 Paulius Zaleckas <[email protected]> + * + * Based on linux/arch/arm/lib/floppydma.S + * Copyright (C) 1995, 1996 Russell King + * + * 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. + */ +#include <linux/linkage.h> +#include <asm/assembler.h> + + .text + .global mx1_camera_sof_fiq_end + .global mx1_camera_sof_fiq_start +mx1_camera_sof_fiq_start: + @ enable dma + ldr r12, [r9] + orr r12, r12, #0x00000001 + str r12, [r9] + @ unmask DMA interrupt + ldr r12, [r8] + bic r12, r12, r13 + str r12, [r8] + @ disable SOF interrupt + ldr r12, [r10] + bic r12, r12, #0x00010000 + str r12, [r10] + @ clear SOF flag + mov r12, #0x00010000 + str r12, [r11] + @ return from FIQ + subs pc, lr, #4 +mx1_camera_sof_fiq_end:
arch/arm/mach-mx1/Kconfig deleted +0 -19
@@ -1,19 +0,0 @@ -if ARCH_MX1 - -comment "MX1 platforms:" - -config MACH_MXLADS - bool - -config ARCH_MX1ADS - bool "MX1ADS platform" - select MACH_MXLADS - help - Say Y here if you are using Motorola MX1ADS/MXLADS boards - -config MACH_SCB9328 - bool "Synertronixx scb9328" - help - Say Y here if you are using a Synertronixx scb9328 board - -endif
arch/arm/mach-mx1/Makefile deleted +0 -14
@@ -1,14 +0,0 @@ -# -# Makefile for the linux kernel. -# - -# Object file lists. - -obj-y += generic.o clock.o devices.o - -# Support for CMOS sensor interface -obj-$(CONFIG_MX1_VIDEO) += ksym_mx1.o mx1_camera_fiq.o - -# Specific board support -obj-$(CONFIG_ARCH_MX1ADS) += mach-mx1ads.o -obj-$(CONFIG_MACH_SCB9328) += mach-scb9328.o
arch/arm/mach-mx1/Makefile.boot deleted +0 -4
@@ -1,4 +0,0 @@ - zreladdr-y := 0x08008000 -params_phys-y := 0x08000100 -initrd_phys-y := 0x08800000 -
arch/arm/mach-mx1/clock.c deleted +0 -636
636 lines not on this page · raw message
arch/arm/mach-mx1/devices.c deleted +0 -220
220 lines not on this page · raw message
arch/arm/mach-mx1/devices.h deleted +0 -7
@@ -1,7 +0,0 @@ -extern struct platform_device imx1_camera_device; -extern struct platform_device imx_i2c_device0; -extern struct platform_device imx1_uart_device0; -extern struct platform_device imx1_uart_device1; -extern struct platform_device imx_rtc_device; -extern struct platform_device imx_wdt_device; -extern struct platform_device imx_usb_device;
arch/arm/mach-mx1/generic.c deleted +0 -55
55 lines not on this page · raw message
arch/arm/mach-mx1/ksym_mx1.c deleted +0 -18
@@ -1,18 +0,0 @@ -/* -* Exported ksyms of ARCH_MX1 -* -* Copyright (C) 2008, Darius Augulis <[email protected]> -* -* 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. -*/ - -#include <linux/platform_device.h> -#include <linux/module.h> - -#include <mach/mx1_camera.h> - -/* IMX camera FIQ handler */ -EXPORT_SYMBOL (mx1_camera_sof_fiq_start); -EXPORT_SYMBOL (mx1_camera_sof_fiq_end);
arch/arm/mach-mx1/mach-mx1ads.c deleted +0 -165
165 lines not on this page · raw message
arch/arm/mach-mx1/mach-scb9328.c deleted +0 -157
157 lines not on this page · raw message
arch/arm/mach-mx1/mx1_camera_fiq.S deleted +0 -35
@@ -1,35 +0,0 @@ -/* - * Copyright (C) 2008 Paulius Zaleckas <[email protected]> - * - * Based on linux/arch/arm/lib/floppydma.S - * Copyright (C) 1995, 1996 Russell King - * - * 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. - */ -#include <linux/linkage.h> -#include <asm/assembler.h> - - .text - .global mx1_camera_sof_fiq_end - .global mx1_camera_sof_fiq_start -mx1_camera_sof_fiq_start: - @ enable dma - ldr r12, [r9] - orr r12, r12, #0x00000001 - str r12, [r9] - @ unmask DMA interrupt - ldr r12, [r8] - bic r12, r12, r13 - str r12, [r8] - @ disable SOF interrupt - ldr r12, [r10] - bic r12, r12, #0x00010000 - str r12, [r10] - @ clear SOF flag - mov r12, #0x00010000 - str r12, [r11] - @ return from FIQ - subs pc, lr, #4 -mx1_camera_sof_fiq_end:
arch/arm/plat-mxc/Kconfig +0 -1
@@ -48,7 +48,6 @@ config ARCH_MX5 endchoice -source "arch/arm/mach-mx1/Kconfig" source "arch/arm/mach-imx/Kconfig" source "arch/arm/mach-mx3/Kconfig" source "arch/arm/mach-mx25/Kconfig"
Signature · 1 line
1.7.1
PATCH 24/61 ARM: imx: Kconfig: use an if block instead of a depend for many symbols
In reply to Uwe Kleine-König--- arch/arm/mach-imx/Kconfig | 20 +++++++++++--------- 1 files changed, 11 insertions(+), 9 deletions(-)
arch/arm/mach-imx/Kconfig +11 -9
@@ -37,25 +37,32 @@ config MACH_MX27 endchoice -comment "MX2 platforms:" +endif + +if MACH_MX21 + +comment "MX21 platforms:" config MACH_MX21ADS bool "MX21ADS platform" - depends on MACH_MX21 help Include support for MX21ADS platform. This includes specific configurations for the board and its peripherals. +endif + +if MACH_MX27 + +comment "MX27 platforms:" + config MACH_MX27ADS bool "MX27ADS platform" - depends on MACH_MX27 help Include support for MX27ADS platform. This includes specific configurations for the board and its peripherals. config MACH_PCM038 bool "Phytec phyCORE-i.MX27 CPU module (pcm038)" - depends on MACH_MX27 select MXC_ULPI if USB_ULPI help Include support for phyCORE-i.MX27 (aka pcm038) platform. This
@@ -77,7 +84,6 @@ endchoice config MACH_CPUIMX27 bool "Eukrea CPUIMX27 module" - depends on MACH_MX27 help Include support for Eukrea CPUIMX27 platform. This includes specific configurations for the module and its peripherals.
@@ -105,21 +111,18 @@ endchoice config MACH_MX27_3DS bool "MX27PDK platform" - depends on MACH_MX27 help Include support for MX27PDK platform. This includes specific configurations for the board and its peripherals. config MACH_IMX27LITE bool "LogicPD MX27 LITEKIT platform" - depends on MACH_MX27 help Include support for MX27 LITEKIT platform. This includes specific configurations for the board and its peripherals. config MACH_PCA100 bool "Phytec phyCARD-s (pca100)" - depends on MACH_MX27 select MXC_ULPI if USB_ULPI help Include support for phyCARD-s (aka pca100) platform. This
@@ -127,7 +130,6 @@ config MACH_PCA100 config MACH_MXT_TD60 bool "Maxtrack i-MXT TD60" - depends on MACH_MX27 help Include support for i-MXT (aka td60) platform. This includes specific configurations for the module and its peripherals.
Signature · 1 line
1.7.1
PATCH 25/61 ARM: imx: prepare deprecating ARCH_MX1, MACH_MX2, MACH_MX21 and MACH_MX27
In reply to Uwe Kleine-KönigMACH_... is reserved for machine support, so use SOC as prefix, not MACH.
This introduces new symbols SOC_IMX1, SOC_IMX21 and SOC_IMX27. They are selected by the old symbols for now. There is no substitute for MACH_MX2 as most usages of MX2 only means MX21 + MX27 but not MX25.
Later the choice about CPU and CPU family should go away and the individual machines should select the right SOC symbol. This is a precondition to support more than one SOC in a single kernel image.
--- arch/arm/mach-imx/Kconfig | 24 ++++++++++++++++++++++-- arch/arm/plat-mxc/Kconfig | 5 +---- 2 files changed, 23 insertions(+), 6 deletions(-)
arch/arm/mach-imx/Kconfig +22 -2
@@ -1,5 +1,11 @@ if ARCH_MX1 +config SOC_IMX1 + select CPU_ARM920T + select IMX_HAVE_DMA_V1 + select IMX_HAVE_IOMUX_V1 + bool + comment "MX1 platforms:" config MACH_MXLADS bool
@@ -19,19 +25,33 @@ endif if ARCH_MX2 +config SOC_IMX21 + select CPU_ARM926T + select ARCH_MXC_AUDMUX_V1 + select IMX_HAVE_DMA_V1 + select IMX_HAVE_IOMUX_V1 + bool + +config SOC_IMX27 + select CPU_ARM926T + select ARCH_MXC_AUDMUX_V1 + select IMX_HAVE_DMA_V1 + select IMX_HAVE_IOMUX_V1 + bool + choice prompt "CPUs:" default MACH_MX21 config MACH_MX21 bool "i.MX21 support" - select ARCH_MXC_AUDMUX_V1 + select SOC_IMX21 help This enables support for Freescale's MX2 based i.MX21 processor. config MACH_MX27 bool "i.MX27 support" - select ARCH_MXC_AUDMUX_V1 + select SOC_IMX27 help This enables support for Freescale's MX2 based i.MX27 processor.
arch/arm/plat-mxc/Kconfig +1 -4
@@ -8,15 +8,12 @@ choice config ARCH_MX1 bool "MX1-based" - select CPU_ARM920T - select IMX_HAVE_IOMUX_V1 + select SOC_IMX1 help This enables support for systems based on the Freescale i.MX1 family config ARCH_MX2 bool "MX2-based" - select CPU_ARM926T - select IMX_HAVE_IOMUX_V1 help This enables support for systems based on the Freescale i.MX2 family
Signature · 1 line
1.7.1
PATCH 26/61 ARM: imx: prepare deprecating ARCH_MX1, MACH_MX2, MACH_MX21 and MACH_MX27
In reply to Uwe Kleine-KönigMACH_... is reserved for machine support, so use SOC as prefix, not MACH.
This introduces new symbols SOC_IMX1, SOC_IMX21 and SOC_IMX27. They are selected by the old symbols for now. There is no substitute for MACH_MX2 as most usages of MX2 only means MX21 + MX27 but not MX25.
Later the choice about CPU and CPU family should go away and the individual machines should select the right SOC symbol. This is a precondition to support more than one SOC in a single kernel image.
--- arch/arm/mach-imx/Kconfig | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-)
arch/arm/mach-imx/Kconfig +0 -3
@@ -2,7 +2,6 @@ if ARCH_MX1 config SOC_IMX1 select CPU_ARM920T - select IMX_HAVE_DMA_V1 select IMX_HAVE_IOMUX_V1 bool
@@ -28,14 +27,12 @@ if ARCH_MX2 config SOC_IMX21 select CPU_ARM926T select ARCH_MXC_AUDMUX_V1 - select IMX_HAVE_DMA_V1 select IMX_HAVE_IOMUX_V1 bool config SOC_IMX27 select CPU_ARM926T select ARCH_MXC_AUDMUX_V1 - select IMX_HAVE_DMA_V1 select IMX_HAVE_IOMUX_V1 bool
Signature · 1 line
1.7.1
PATCH 26/61 ARM: imx: prepare deprecating ARCH_MX1, MACH_MX2, MACH_MX21 and MACH_MX27
Quoted 11 lines · Uwe Kleine-K?nig
MACH_... is reserved for machine support, so use SOC as prefix, not MACH.This introduces new symbols
SOC_IMX1,SOC_IMX21andSOC_IMX27. They are selected by the old symbols for now. There is no substitute forMACH_MX2as most usages of MX2 only means MX21 + MX27 but not MX25.Later the choice about CPU and CPU family should go away and the individual machines should select the right SOC symbol. This is a precondition to support more than one SOC in a single kernel image.
Signed-off-by Uwe Kleine-K?nig <[email protected]>
I squash this into patch 25 as it reverts changes that currently are in that patch but belong (only) into patch 27.
Uwe
Quoted 33 lines
--- arch/arm/mach-imx/Kconfig | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-)arch/arm/mach-imx/Kconfig +0
-3@@ -2,7 +2,6 @@ if ARCH_MX1 config SOC_IMX1 select CPU_ARM920T - select IMX_HAVE_DMA_V1 select IMX_HAVE_IOMUX_V1 bool@@ -28,14 +27,12 @@ if ARCH_MX2 config SOC_IMX21 select CPU_ARM926T select ARCH_MXC_AUDMUX_V1 - select IMX_HAVE_DMA_V1 select IMX_HAVE_IOMUX_V1 bool config SOC_IMX27 select CPU_ARM926T select ARCH_MXC_AUDMUX_V1 - select IMX_HAVE_DMA_V1 select IMX_HAVE_IOMUX_V1 boolSignature · 1 line
1.7.1
Signature · 2 lines
Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ |
PATCH 27/61 ARM: imx: new Kconfig symbol and feature test macro for DMA on mx1 and mx2
In reply to Uwe Kleine-KönigThis should be used instead of hard coding the corresponding platforms. The feature test macro is needed to support different SOCs in a single kernel image. While at it rename dma-mx1-mx2 to dma-v1 as mx25 doesn't use it and so the mx2 part is wrong and move the header to arch/arm/mach-imx.
--- arch/arm/mach-imx/Kconfig | 6 + arch/arm/mach-imx/Makefile | 2 + arch/arm/mach-imx/dma-v1.c | 863 ++++++++++++++++++++++++++ arch/arm/mach-imx/include/mach/dma-mx1-mx2.h | 10 + arch/arm/mach-imx/include/mach/dma-v1.h | 107 ++++ arch/arm/plat-mxc/Makefile | 2 - arch/arm/plat-mxc/dma-mx1-mx2.c | 863 -------------------------- arch/arm/plat-mxc/include/mach/dma-mx1-mx2.h | 105 ---- 8 files changed, 988 insertions(+), 970 deletions(-) create mode 100644 arch/arm/mach-imx/dma-v1.c create mode 100644 arch/arm/mach-imx/include/mach/dma-mx1-mx2.h create mode 100644 arch/arm/mach-imx/include/mach/dma-v1.h delete mode 100644 arch/arm/plat-mxc/dma-mx1-mx2.c delete mode 100644 arch/arm/plat-mxc/include/mach/dma-mx1-mx2.h
arch/arm/mach-imx/Kconfig +6 -0
@@ -1,7 +1,11 @@ +config IMX_HAVE_DMA_V1 + bool + if ARCH_MX1 config SOC_IMX1 select CPU_ARM920T + select IMX_HAVE_DMA_V1 select IMX_HAVE_IOMUX_V1 bool
@@ -27,12 +31,14 @@ if ARCH_MX2 config SOC_IMX21 select CPU_ARM926T select ARCH_MXC_AUDMUX_V1 + select IMX_HAVE_DMA_V1 select IMX_HAVE_IOMUX_V1 bool config SOC_IMX27 select CPU_ARM926T select ARCH_MXC_AUDMUX_V1 + select IMX_HAVE_DMA_V1 select IMX_HAVE_IOMUX_V1 bool
arch/arm/mach-imx/Makefile +2 -0
@@ -6,6 +6,8 @@ obj-y := devices.o +obj-$(CONFIG_IMX_HAVE_DMA_V1) += dma-v1.o + obj-$(CONFIG_ARCH_MX1) += clock-imx1.o mm-imx1.o obj-$(CONFIG_MACH_MX21) += clock-imx21.o mm-imx21.o
arch/arm/mach-imx/dma-v1.c new file +863 -0
863 lines not on this page · raw message
arch/arm/mach-imx/include/mach/dma-mx1-mx2.h new file +10 -0
@@ -0,0 +1,10 @@ +#ifndef __MACH_DMA_MX1_MX2_H__ +#define __MACH_DMA_MX1_MX2_H__ +/* +* Don't use this header in new code, it will go away when all users are +* converted to mach/dma-v1.h +*/ + +#include <mach/dma-v1.h> + +#endif /* ifndef __MACH_DMA_MX1_MX2_H__ */
arch/arm/mach-imx/include/mach/dma-v1.h new file +107 -0
107 lines not on this page · raw message
arch/arm/plat-mxc/Makefile +0 -2
@@ -8,8 +8,6 @@ obj-y := irq.o clock.o gpio.o time.o devices.o cpu.o system.o # MX51 uses the TZIC interrupt controller, older platforms use AVIC (irq.o) obj-$(CONFIG_MXC_TZIC) += tzic.o -obj-$(CONFIG_ARCH_MX1) += dma-mx1-mx2.o -obj-$(CONFIG_ARCH_MX2) += dma-mx1-mx2.o obj-$(CONFIG_IMX_HAVE_IOMUX_V1) += iomux-v1.o obj-$(CONFIG_ARCH_MXC_IOMUX_V3) += iomux-v3.o obj-$(CONFIG_MXC_PWM) += pwm.o
arch/arm/plat-mxc/dma-mx1-mx2.c deleted +0 -863
863 lines not on this page · raw message
arch/arm/plat-mxc/include/mach/dma-mx1-mx2.h deleted +0 -105
105 lines not on this page · raw message
Signature · 1 line
1.7.1
PATCH 27/61 ARM: imx: new Kconfig symbol and feature test macro for DMA on mx1 and mx2
Hi Uwe,
Quoted 7 lines · Uwe Kleine-K?nig <u.kleine-koenig <at> pengutronix.de> writes:
This should be used instead of hard coding the corresponding platforms. The feature test macro is needed to support different SOCs in a single kernel image. While at it rename dma-mx1-mx2 to dma-v1 as mx25 doesn't use it and so the mx2 part is wrong and move the header to
arch/arm/mach-imx.Signed-off-by Uwe Kleine-K?nig <u.kleine-koenig <at> pengutronix.de>
This commit breaks build of the (hopefully) soon to-be-merged mx2_camera driver. This driver is for both mx25 and mx27. Since dma-mx1-mx2.h is now under the non-mx25 mach-imx/ directory, mx25 build can't find this header.
The solution is either:
1. move mx25 to mach-imx/ as well, or
2. postpone the dma-mx1-mx2.h header move for now, and leave it under plat-mxc/
Any thoughts?
baruch
PATCH 27/61 ARM: imx: new Kconfig symbol and feature test macro for?DMA on mx1 and mx2
Quoted 15 lines · Baruch Siach
Hi Uwe,
Quoted 7 lines · Uwe Kleine-K?nig <u.kleine-koenig <at> pengutronix.de> writes:
This should be used instead of hard coding the corresponding platforms. The feature test macro is needed to support different SOCs in a single kernel image. While at it rename dma-mx1-mx2 to dma-v1 as mx25 doesn't use it and so the mx2 part is wrong and move the header to
arch/arm/mach-imx.Signed-off-by Uwe Kleine-K?nig <u.kleine-koenig <at> pengutronix.de>This commit breaks build of the (hopefully) soon to-be-merged
mx2_cameradriver. This driver is for both mx25 and mx27. Sincedma-mx1-mx2.his now under the non-mx25 mach-imx/ directory, mx25 build can't find this header.
Quoted 5 lines
The solution is either:
1. move mx25 to mach-imx/ as well, or
2. postpone the
dma-mx1-mx2.hheader move for now, and leave it under plat-mxc/
3. don't include dma-mx1-mx2.h for mx25 builds.
An mx25 kernel doesn't provide the functions declared in dma-mx1-mx2.h, so I assume it's due to compiler optimizations that you don't get a build failure.
I wouldn't do 1. in the .36 merge window because I want to continue with some cleanups first. I have no problems with 2 and can do it, but I think 3 is more correct, though it add #ifdefery to your driver, which is bad. What do you think?
Best regards
Uwe
Signature · 2 lines
Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ |
PATCH 27/61 ARM: imx: new Kconfig symbol and feature test macro for?DMA on mx1 and mx2
Hi Uwe,
Quoted 22 lines · Uwe Kleine-K?nig
Quoted 13 lines · Baruch Siach
Quoted 7 lines · Uwe Kleine-K?nig <u.kleine-koenig <at> pengutronix.de> writes:
This should be used instead of hard coding the corresponding platforms. The feature test macro is needed to support different SOCs in a single kernel image. While at it rename dma-mx1-mx2 to dma-v1 as mx25 doesn't use it and so the mx2 part is wrong and move the header to
arch/arm/mach-imx.Signed-off-by Uwe Kleine-K?nig <u.kleine-koenig <at> pengutronix.de>This commit breaks build of the (hopefully) soon to-be-merged
mx2_cameradriver. This driver is for both mx25 and mx27. Sincedma-mx1-mx2.his now under the non-mx25 mach-imx/ directory, mx25 build can't find this header.Quoted 5 lines
The solution is either:
1. move mx25 to mach-imx/ as well, or
2. postpone the
dma-mx1-mx2.hheader move for now, and leave it under plat-mxc/3. don't include
dma-mx1-mx2.hfor mx25 builds.
Quoted 8 lines
An mx25 kernel doesn't provide the functions declared in
dma-mx1-mx2.h, so I assume it's due to compiler optimizations that you don't get a build failure.I wouldn't do 1. in the .36 merge window because I want to continue with some cleanups first. I have no problems with 2 and can do it, but I think 3 is more correct, though it add #ifdefery to your driver, which is bad. What do you think?
Doing (3) adds quite a few #ifdefs throughout the driver. For a temporary solution (until mx25 moves to mach-imx/) I think (2) is better. Since this driver should go via your/Shascha's tree, I'll accept your decision.
baruch
Signature · 3 lines
~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -PATCH 27/61 ARM: imx: new Kconfig symbol and feature test macro for?DMA on mx1 and mx2
Quoted 29 lines · Baruch Siach
Hi Uwe,
Quoted 26 lines · Uwe Kleine-K?nig
Quoted 13 lines · Baruch Siach
Quoted 7 lines · Uwe Kleine-K?nig <u.kleine-koenig <at> pengutronix.de> writes:
This should be used instead of hard coding the corresponding platforms. The feature test macro is needed to support different SOCs in a single kernel image. While at it rename dma-mx1-mx2 to dma-v1 as mx25 doesn't use it and so the mx2 part is wrong and move the header to
arch/arm/mach-imx.Signed-off-by Uwe Kleine-K?nig <u.kleine-koenig <at> pengutronix.de>This commit breaks build of the (hopefully) soon to-be-merged
mx2_cameradriver. This driver is for both mx25 and mx27. Sincedma-mx1-mx2.his now under the non-mx25 mach-imx/ directory, mx25 build can't find this header.Quoted 5 lines
The solution is either:
1. move mx25 to mach-imx/ as well, or
2. postpone the
dma-mx1-mx2.hheader move for now, and leave it under plat-mxc/3. don't include
dma-mx1-mx2.hfor mx25 builds.An mx25 kernel doesn't provide the functions declared in
dma-mx1-mx2.h, so I assume it's due to compiler optimizations that you don't get a build failure.
Quoted 8 lines
Quoted 4 lines
I wouldn't do 1. in the .36 merge window because I want to continue with some cleanups first. I have no problems with 2 and can do it, but I think 3 is more correct, though it add #ifdefery to your driver, which is bad. What do you think?
Doing (3) adds quite a few #ifdefs throughout the driver. For a temporary solution (until mx25 moves to mach-imx/) I think (2) is better. Since this driver should go via your/Shascha's tree, I'll accept your decision.
You call (2) a temporary solution. What is your long term plan here? A unified imx dma API? If so, please start sending patches :-)
Best regards
Uwe
Signature · 2 lines
Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ |
PATCH 27/61 ARM: imx: new Kconfig symbol and feature test macro for?DMA on mx1 and mx2
Hi Uwe,
Quoted 33 lines · Uwe Kleine-K?nig
Quoted 32 lines · Baruch Siach
Quoted 30 lines · Uwe Kleine-K?nig
Quoted 13 lines · Baruch Siach
Quoted 7 lines · Uwe Kleine-K?nig <u.kleine-koenig <at> pengutronix.de> writes:
This should be used instead of hard coding the corresponding platforms. The feature test macro is needed to support different SOCs in a single kernel image. While at it rename dma-mx1-mx2 to dma-v1 as mx25 doesn't use it and so the mx2 part is wrong and move the header to
arch/arm/mach-imx.Signed-off-by Uwe Kleine-K?nig <u.kleine-koenig <at> pengutronix.de>This commit breaks build of the (hopefully) soon to-be-merged
mx2_cameradriver. This driver is for both mx25 and mx27. Sincedma-mx1-mx2.his now under the non-mx25 mach-imx/ directory, mx25 build can't find this header.Quoted 5 lines
The solution is either:
1. move mx25 to mach-imx/ as well, or
2. postpone the
dma-mx1-mx2.hheader move for now, and leave it under plat-mxc/3. don't include
dma-mx1-mx2.hfor mx25 builds.An mx25 kernel doesn't provide the functions declared in
dma-mx1-mx2.h, so I assume it's due to compiler optimizations that you don't get a build failure.I wouldn't do 1. in the .36 merge window because I want to continue with some cleanups first. I have no problems with 2 and can do it, but I think 3 is more correct, though it add #ifdefery to your driver, which is bad. What do you think?
Quoted 5 lines
Quoted 3 lines
Doing (3) adds quite a few #ifdefs throughout the driver. For a temporary solution (until mx25 moves to mach-imx/) I think (2) is better. Since this driver should go via your/Shascha's tree, I'll accept your decision.
You call (2) a temporary solution. What is your long term plan here? A unified imx dma API? If so, please start sending patches :-)
I was under the impression that YOUR long term plan in to move all imx variants into mach-imx/. That's why I called this solution temporary. I would very much like to help with the mach-mx25/ -> mach-imx/ move, but I don't think that the costumer I work for is willing to sponsor this kind of work.
I'll go for (3) then, and also s/MX2_VIDEO/VIDEO_MX2_HOSTSUPPORT/ as you suggested in the other thread.
baruch
Signature · 3 lines
~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -PATCH 27/61 ARM: imx: new Kconfig symbol and feature test macro for?DMA on mx1 and mx2
Hi Baruch,
Quoted 39 lines · Baruch Siach
Hi Uwe,
Quoted 36 lines · Uwe Kleine-K?nig
Quoted 35 lines · Baruch Siach
Quoted 22 lines · Uwe Kleine-K?nig
Quoted 13 lines · Baruch Siach
Quoted 7 lines · Uwe Kleine-K?nig <u.kleine-koenig <at> pengutronix.de> writes:
This should be used instead of hard coding the corresponding platforms. The feature test macro is needed to support different SOCs in a single kernel image. While at it rename dma-mx1-mx2 to dma-v1 as mx25 doesn't use it and so the mx2 part is wrong and move the header to
arch/arm/mach-imx.Signed-off-by Uwe Kleine-K?nig <u.kleine-koenig <at> pengutronix.de>This commit breaks build of the (hopefully) soon to-be-merged
mx2_cameradriver. This driver is for both mx25 and mx27. Sincedma-mx1-mx2.his now under the non-mx25 mach-imx/ directory, mx25 build can't find this header.Quoted 5 lines
The solution is either:
1. move mx25 to mach-imx/ as well, or
2. postpone the
dma-mx1-mx2.hheader move for now, and leave it under plat-mxc/3. don't include
dma-mx1-mx2.hfor mx25 builds.Quoted 8 lines
An mx25 kernel doesn't provide the functions declared in
dma-mx1-mx2.h, so I assume it's due to compiler optimizations that you don't get a build failure.I wouldn't do 1. in the .36 merge window because I want to continue with some cleanups first. I have no problems with 2 and can do it, but I think 3 is more correct, though it add #ifdefery to your driver, which is bad. What do you think?
Doing (3) adds quite a few #ifdefs throughout the driver. For a temporary solution (until mx25 moves to mach-imx/) I think (2) is better. Since this driver should go via your/Shascha's tree, I'll accept your decision.
Quoted 7 lines
Quoted 2 lines
You call (2) a temporary solution. What is your long term plan here? A unified imx dma API? If so, please start sending patches :-)
I was under the impression that YOUR long term plan in to move all imx variants into mach-imx/. That's why I called this solution temporary. I would very much like to help with the mach-mx25/ -> mach-imx/ move, but I don't think that the costumer I work for is willing to sponsor this kind of work.
Yes, my long term plan is to move all imx variants into mach-imx/ but the issue I pointed out remains after this is complete. Probably my concern is theoretical only, still I consider it unclean. BTW my long long term todo list contains such a unified dma API.
Quoted 2 lines
I'll go for (3) then, and also s/MX2_VIDEO/VIDEO_MX2_HOSTSUPPORT/ as you suggested in the other thread.
Fine.
Thanks
Uwe
Signature · 2 lines
Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ |
PATCH 27/61 ARM: imx: new Kconfig symbol and feature test macro for?DMA on mx1 and mx2
Hi Uwe,
Quoted 41 lines · Uwe Kleine-K?nig
Quoted 40 lines · Baruch Siach
Quoted 38 lines · Uwe Kleine-K?nig
Quoted 27 lines · Baruch Siach
Quoted 26 lines · Uwe Kleine-K?nig
Quoted 13 lines · Baruch Siach
Quoted 7 lines · Uwe Kleine-K?nig <u.kleine-koenig <at> pengutronix.de> writes:
This should be used instead of hard coding the corresponding platforms. The feature test macro is needed to support different SOCs in a single kernel image. While at it rename dma-mx1-mx2 to dma-v1 as mx25 doesn't use it and so the mx2 part is wrong and move the header to
arch/arm/mach-imx.Signed-off-by Uwe Kleine-K?nig <u.kleine-koenig <at> pengutronix.de>This commit breaks build of the (hopefully) soon to-be-merged
mx2_cameradriver. This driver is for both mx25 and mx27. Sincedma-mx1-mx2.his now under the non-mx25 mach-imx/ directory, mx25 build can't find this header.Quoted 5 lines
The solution is either:
1. move mx25 to mach-imx/ as well, or
2. postpone the
dma-mx1-mx2.hheader move for now, and leave it under plat-mxc/3. don't include
dma-mx1-mx2.hfor mx25 builds.An mx25 kernel doesn't provide the functions declared in
dma-mx1-mx2.h, so I assume it's due to compiler optimizations that you don't get a build failure.Quoted 8 lines
Quoted 4 lines
I wouldn't do 1. in the .36 merge window because I want to continue with some cleanups first. I have no problems with 2 and can do it, but I think 3 is more correct, though it add #ifdefery to your driver, which is bad. What do you think?
Doing (3) adds quite a few #ifdefs throughout the driver. For a temporary solution (until mx25 moves to mach-imx/) I think (2) is better. Since this driver should go via your/Shascha's tree, I'll accept your decision.
You call (2) a temporary solution. What is your long term plan here? A unified imx dma API? If so, please start sending patches :-)
Quoted 8 lines
Quoted 4 lines
I was under the impression that YOUR long term plan in to move all imx variants into mach-imx/. That's why I called this solution temporary. I would very much like to help with the mach-mx25/ -> mach-imx/ move, but I don't think that the costumer I work for is willing to sponsor this kind of work.
Yes, my long term plan is to move all imx variants into mach-imx/ but the issue I pointed out remains after this is complete. Probably my concern is theoretical only, still I consider it unclean. BTW my long long term todo list contains such a unified dma API.
By "the issue I pointed out" you probably mean:
Quoted 3 lines
An mx25 kernel doesn't provide the functions declared in
dma-mx1-mx2.h, so I assume it's due to compiler optimizations that you don't get a build failure.
If so, than if you look into the driver code you'll see that all references to mx27 DMA functionality are behind 'if (cpu_is_mx27())' blocks. Currently, combined mx27/mx25 build is not possible, and the compiler indeed optimizes away the mx27 code. But in the future you should be able to build this driver into a single binary running on both mx25 and mx27.
Quoted 3 lines
Quoted 2 lines
I'll go for (3) then, and also s/MX2_VIDEO/VIDEO_MX2_HOSTSUPPORT/ as you suggested in the other thread.
Fine.
baruch
Signature · 3 lines
~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -PATCH 28/61 ARM: imx: new helper function imx_add_platform_device
In reply to Uwe Kleine-KönigThis should be a globally available function, see
http://thread.gmane.org/gmane.linux.kernel/998881/focus=998882
Until this hits mainline make a similar function available for imx platforms only.
--- arch/arm/plat-mxc/devices.c | 33 +++++++++++++++++++++++ arch/arm/plat-mxc/include/mach/devices-common.h | 15 ++++++++++ 2 files changed, 48 insertions(+), 0 deletions(-) create mode 100644 arch/arm/plat-mxc/include/mach/devices-common.h
arch/arm/plat-mxc/devices.c +33 -0
@@ -18,6 +18,7 @@#include <linux/kernel.h> #include <linux/init.h> +#include <linux/err.h> #include <linux/platform_device.h> #include <mach/common.h>
@@ -35,3 +36,35 @@ int __init mxc_register_device(struct platform_device *pdev, void *data)return ret; } +struct platform_device *__init imx_add_platform_device (const char *name,int id, +const struct resource *res,unsigned int num_resources, +const void *data,size_t size_data) +{ +int ret = -ENOMEM ; +struct platform_device *pdev; + + pdev =platform_device_alloc (name, id); +if (!pdev) + goto err; + +if (res) { + ret =platform_device_add_resources (pdev, res, num_resources); +if (ret) + goto err; + } + +if (data) { + ret =platform_device_add_data (pdev, data, size_data); +if (ret) + goto err; + } + + ret =platform_device_add (pdev); +if (ret) { +err: +platform_device_put (pdev); +return ERR_PTR (ret); + } + +return pdev; +}
arch/arm/plat-mxc/include/mach/devices-common.h new file +15 -0
@@ -0,0 +1,15 @@ +/* +* Copyright (C) 2009-2010 Pengutronix +* Uwe Kleine-Koenig <[email protected]> +* +* 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. +*/ +#include <linux/kernel.h> +#include <linux/platform_device.h> +#include <linux/init.h> + +struct platform_device *imx_add_platform_device (const char *name,int id, +const struct resource *res,unsigned int num_resources, +const void *data,size_t size_data);
Signature · 1 line
1.7.1
PATCH 29/61 MTD: mxc_nand: make bit fields unsigned to please sparse
In reply to Uwe Kleine-KönigThis fixes:
arch/arm/plat-mxc/include/mach/mxc_nand.h:25:14: error: dubious one-bit signed bitfield arch/arm/plat-mxc/include/mach/mxc_nand.h:26:17: error: dubious one-bit signed bitfield
While at it make width unsigned, too.
--- arch/arm/plat-mxc/include/mach/mxc_nand.h | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
arch/arm/plat-mxc/include/mach/mxc_nand.h +3 -3
@@ -21,8 +21,8 @@#define __ASM_ARCH_NAND_Hstruct mxc_nand_platform_data { -int width;/* data bus width in bytes */ -int hw_ecc:1 ;/* 0 if supress hardware ECC */ -int flash_bbt:1 ;/* set to 1 to use a flash based bbt */ +unsigned int width;/* data bus width in bytes */ +unsigned int hw_ecc:1 ;/* 0 if supress hardware ECC */ +unsigned int flash_bbt:1 ;/* set to 1 to use a flash based bbt */ };#endif /* __ASM_ARCH_NAND_H */
Signature · 1 line
1.7.1
PATCH 30/61 ARM: imx: remove paragraphs with old address of the FSF
In reply to Uwe Kleine-KönigAs the kernel contains a copy of the GPL anyhow just get rid of the address specification instead of fixing it.
--- arch/arm/mach-imx/mach-imx27lite.c | 4 ---- arch/arm/mach-imx/mach-mx21ads.c | 4 ---- arch/arm/mach-imx/mach-mx27_3ds.c | 4 ---- arch/arm/mach-imx/mach-mx27ads.c | 4 ---- arch/arm/mach-imx/mach-mxt_td60.c | 4 ---- arch/arm/mach-imx/mm-imx1.c | 5 ----- 6 files changed, 0 insertions(+), 25 deletions(-)
arch/arm/mach-imx/mach-imx27lite.c +0 -4
@@ -12,10 +12,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/platform_device.h>
arch/arm/mach-imx/mach-mx21ads.c +0 -4
@@ -12,10 +12,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/platform_device.h>
arch/arm/mach-imx/mach-mx27_3ds.c +0 -4
@@ -12,10 +12,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /*
arch/arm/mach-imx/mach-mx27ads.c +0 -4
@@ -12,10 +12,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/platform_device.h>
arch/arm/mach-imx/mach-mxt_td60.c +0 -4
@@ -12,10 +12,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/platform_device.h>
arch/arm/mach-imx/mm-imx1.c +0 -5
@@ -14,11 +14,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -* */ #include <linux/kernel.h> #include <linux/init.h>
Signature · 1 line
1.7.1
PATCH 31/61 ARM: mx25: remove paragraphs with old address of the FSF
In reply to Uwe Kleine-KönigAs the kernel contains a copy of the GPL anyhow just get rid of the address specification instead of fixing it.
--- arch/arm/mach-mx25/mm.c | 4 ---- 1 files changed, 0 insertions(+), 4 deletions(-)
arch/arm/mach-mx25/mm.c +0 -4
@@ -14,10 +14,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/mm.h>
Signature · 1 line
1.7.1
PATCH 32/61 ARM: mx3: remove paragraphs with old address of the FSF
In reply to Uwe Kleine-KönigAs the kernel contains a copy of the GPL anyhow just get rid of the address specification instead of fixing it.
--- arch/arm/mach-mx3/mach-kzm_arm11_01.c | 4 ---- arch/arm/mach-mx3/mach-mx31_3ds.c | 4 ---- arch/arm/mach-mx3/mach-mx31ads.c | 4 ---- arch/arm/mach-mx3/mach-mx31lilly.c | 4 ---- arch/arm/mach-mx3/mach-mx31lite.c | 4 ---- arch/arm/mach-mx3/mach-mx31moboard.c | 4 ---- arch/arm/mach-mx3/mach-mx35_3ds.c | 4 ---- arch/arm/mach-mx3/mach-pcm037.c | 4 ---- arch/arm/mach-mx3/mach-pcm043.c | 4 ---- arch/arm/mach-mx3/mach-qong.c | 4 ---- arch/arm/mach-mx3/mm.c | 4 ---- arch/arm/mach-mx3/mx31lilly-db.c | 4 ---- arch/arm/mach-mx3/mx31lite-db.c | 4 ---- arch/arm/mach-mx3/mx31moboard-devboard.c | 4 ---- arch/arm/mach-mx3/mx31moboard-marxbot.c | 4 ---- arch/arm/mach-mx3/mx31moboard-smartbot.c | 4 ---- 16 files changed, 0 insertions(+), 64 deletions(-)
arch/arm/mach-mx3/mach-kzm_arm11_01.c +0 -4
@@ -16,10 +16,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/gpio.h>
arch/arm/mach-mx3/mach-mx31_3ds.c +0 -4
@@ -10,10 +10,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/delay.h>
arch/arm/mach-mx3/mach-mx31ads.c +0 -4
@@ -12,10 +12,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/types.h>
arch/arm/mach-mx3/mach-mx31lilly.c +0 -4
@@ -18,10 +18,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/types.h>
arch/arm/mach-mx3/mach-mx31lite.c +0 -4
@@ -13,10 +13,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/types.h>
arch/arm/mach-mx3/mach-mx31moboard.c +0 -4
@@ -10,10 +10,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/delay.h>
arch/arm/mach-mx3/mach-mx35_3ds.c +0 -4
@@ -12,10 +12,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /*
arch/arm/mach-mx3/mach-pcm037.c +0 -4
@@ -10,10 +10,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/types.h>
arch/arm/mach-mx3/mach-pcm043.c +0 -4
@@ -10,10 +10,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/types.h>
arch/arm/mach-mx3/mach-qong.c +0 -4
@@ -10,10 +10,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/types.h>
arch/arm/mach-mx3/mm.c +0 -4
@@ -14,10 +14,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/mm.h>
arch/arm/mach-mx3/mx31lilly-db.c +0 -4
@@ -18,10 +18,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/kernel.h>
arch/arm/mach-mx3/mx31lite-db.c +0 -4
@@ -18,10 +18,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/kernel.h>
arch/arm/mach-mx3/mx31moboard-devboard.c +0 -4
@@ -10,10 +10,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/gpio.h>
arch/arm/mach-mx3/mx31moboard-marxbot.c +0 -4
@@ -10,10 +10,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/delay.h>
arch/arm/mach-mx3/mx31moboard-smartbot.c +0 -4
@@ -10,10 +10,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/delay.h>
Signature · 1 line
1.7.1
PATCH 33/61 ARM: mxc91231: remove paragraphs with old address of the FSF
In reply to Uwe Kleine-KönigAs the kernel contains a copy of the GPL anyhow just get rid of the address specification instead of fixing it.
--- arch/arm/mach-mxc91231/crm_regs.h | 5 ----- arch/arm/mach-mxc91231/mm.c | 5 ----- 2 files changed, 0 insertions(+), 10 deletions(-)
arch/arm/mach-mxc91231/crm_regs.h +0 -5
@@ -11,11 +11,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -* */ #ifndef _ARCH_ARM_MACH_MXC91231_CRM_REGS_H_
arch/arm/mach-mxc91231/mm.c +0 -5
@@ -15,11 +15,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -* */ #include <linux/mm.h>
Signature · 1 line
1.7.1
PATCH 34/61 ARM: mxc: remove paragraphs with old address of the FSF
In reply to Uwe Kleine-KönigAs the kernel contains a copy of the GPL anyhow just get rid of the address specification instead of fixing it.
--- arch/arm/plat-mxc/audmux-v1.c | 4 ---- arch/arm/plat-mxc/audmux-v2.c | 4 ---- arch/arm/plat-mxc/ehci.c | 4 ---- arch/arm/plat-mxc/include/mach/iomux-mxc91231.h | 4 ---- arch/arm/plat-mxc/include/mach/mx3_camera.h | 4 ---- arch/arm/plat-mxc/include/mach/mxc91231.h | 4 ---- arch/arm/plat-mxc/include/mach/system.h | 4 ---- arch/arm/plat-mxc/include/mach/timex.h | 4 ---- arch/arm/plat-mxc/include/mach/uncompress.h | 4 ---- arch/arm/plat-mxc/include/mach/vmalloc.h | 4 ---- arch/arm/plat-mxc/system.c | 4 ---- 11 files changed, 0 insertions(+), 44 deletions(-)
arch/arm/plat-mxc/audmux-v1.c +0 -4
@@ -13,10 +13,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <linux/module.h>
arch/arm/plat-mxc/audmux-v2.c +0 -4
@@ -13,10 +13,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <linux/module.h>
arch/arm/plat-mxc/ehci.c +0 -4
@@ -11,10 +11,6 @@* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software Foundation, -* Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include <linux/platform_device.h>
arch/arm/plat-mxc/include/mach/iomux-mxc91231.h +0 -4
@@ -12,10 +12,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef __MACH_IOMUX_MXC91231_H__
arch/arm/plat-mxc/include/mach/mx3_camera.h +0 -4
@@ -12,10 +12,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef _MX3_CAMERA_H_
arch/arm/plat-mxc/include/mach/mxc91231.h +0 -4
@@ -13,10 +13,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef __MACH_MXC91231_H__#define __MACH_MXC91231_H__
arch/arm/plat-mxc/include/mach/system.h +0 -4
@@ -12,10 +12,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef __ASM_ARCH_MXC_SYSTEM_H__
arch/arm/plat-mxc/include/mach/timex.h +0 -4
@@ -11,10 +11,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef __ASM_ARCH_MXC_TIMEX_H__
arch/arm/plat-mxc/include/mach/uncompress.h +0 -4
@@ -13,10 +13,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef __ASM_ARCH_MXC_UNCOMPRESS_H__#define __ASM_ARCH_MXC_UNCOMPRESS_H__
arch/arm/plat-mxc/include/mach/vmalloc.h +0 -4
@@ -11,10 +11,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef __ASM_ARCH_MXC_VMALLOC_H__
arch/arm/plat-mxc/system.c +0 -4
@@ -14,10 +14,6 @@* but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/kernel.h>
Signature · 1 line
1.7.1
PATCH 35/61 ARM: imx: Change the way nand devices are registered (generic part)
In reply to Uwe Kleine-KönigInstead of having a platform device defined in a devices.c and register it in the machine file allocate it dynamically. This reduces the size of needed memory as the new function is discarded after init and only the existing devices are created.
--- arch/arm/plat-mxc/Kconfig | 2 + arch/arm/plat-mxc/Makefile | 2 + arch/arm/plat-mxc/devices/Kconfig | 2 + arch/arm/plat-mxc/devices/Makefile | 1 + arch/arm/plat-mxc/devices/platform-mxc_nand.c | 44 +++++++++++++++++++++++ arch/arm/plat-mxc/include/mach/devices-common.h | 6 +++ 6 files changed, 57 insertions(+), 0 deletions(-) create mode 100644 arch/arm/plat-mxc/devices/Kconfig create mode 100644 arch/arm/plat-mxc/devices/Makefile create mode 100644 arch/arm/plat-mxc/devices/platform-mxc_nand.c
arch/arm/plat-mxc/Kconfig +2 -0
@@ -1,5 +1,7 @@ if ARCH_MXC +source "arch/arm/plat-mxc/devices/Kconfig" + menu "Freescale MXC Implementations" choice
arch/arm/plat-mxc/Makefile +2 -0
@@ -19,3 +19,5 @@ ifdef CONFIG_SND_IMX_SOC obj-y += ssi-fiq.o obj-y += ssi-fiq-ksym.o endif + +obj-y += devices/
arch/arm/plat-mxc/devices/Kconfig new file +2 -0
@@ -0,0 +1,2 @@ +config IMX_HAVE_PLATFORM_MXC_NAND + bool
arch/arm/plat-mxc/devices/Makefile new file +1 -0
@@ -0,0 +1 @@ +obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_NAND) += platform-mxc_nand.o
arch/arm/plat-mxc/devices/platform-mxc_nand.c new file +44 -0
44 lines not on this page · raw message
arch/arm/plat-mxc/include/mach/devices-common.h +6 -0
@@ -13,3 +13,9 @@struct platform_device *imx_add_platform_device (const char *name,int id,const struct resource *res,unsigned int num_resources,const void *data,size_t size_data); + +#include <mach/mxc_nand.h> +struct platform_device *__init imx_add_mxc_nand_v1 (resource_size_t iobase, +int irq,const struct mxc_nand_platform_data *pdata); +struct platform_device *__init imx_add_mxc_nand_v21 (resource_size_t iobase, +int irq,const struct mxc_nand_platform_data *pdata);
Signature · 1 line
1.7.1
PATCH 36/61 ARM: imx: Change the way nand devices are registered (imx21)
In reply to Uwe Kleine-KönigMake use of new mechanism to register a nand device.
--- arch/arm/mach-imx/Kconfig | 1 + arch/arm/mach-imx/devices-imx21.h | 13 +++++++++++++ arch/arm/mach-imx/devices.c | 4 ---- arch/arm/mach-imx/devices.h | 3 --- arch/arm/mach-imx/mach-mx21ads.c | 6 ++++-- 5 files changed, 18 insertions(+), 9 deletions(-) create mode 100644 arch/arm/mach-imx/devices-imx21.h
arch/arm/mach-imx/Kconfig +1 -0
@@ -68,6 +68,7 @@ comment "MX21 platforms:" config MACH_MX21ADS bool "MX21ADS platform" + select IMX_HAVE_PLATFORM_MXC_NAND help Include support for MX21ADS platform. This includes specific configurations for the board and its peripherals.
arch/arm/mach-imx/devices-imx21.h new file +13 -0
@@ -0,0 +1,13 @@ +/* +* Copyright (C) 2010 Pengutronix +* Uwe Kleine-Koenig <[email protected]> +* +* 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. +*/ +#include <mach/mx21.h> +#include <mach/devices-common.h> + +#define imx21_add_mxc_nand (pdata) \ + imx_add_mxc_nand_v1(MX21_NFC_BASE_ADDR, MX21_INT_NANDFC, pdata)
arch/arm/mach-imx/devices.c +0 -4
@@ -357,10 +357,6 @@ struct platform_device mxc_w1_master_device = { .resource = pfx ## _nand_resources, \ } -#ifdef CONFIG_MACH_MX21 -DEFINE_MXC_NAND_DEVICE (imx21,MX21_NFC_BASE_ADDR ,MX21_INT_NANDFC ); -#endif -#ifdef CONFIG_MACH_MX27 DEFINE_MXC_NAND_DEVICE (imx27,MX27_NFC_BASE_ADDR ,MX27_INT_NANDFC );#endif
arch/arm/mach-imx/devices.h +0 -3
@@ -26,9 +26,6 @@ extern struct platform_device imx2x_uart_device4;extern struct platform_device imx2x_uart_device5;#endif extern struct platform_device mxc_w1_master_device; -#ifdef CONFIG_MACH_MX21 -extern struct platform_device imx21_nand_device; -#endif #ifdef CONFIG_MACH_MX27 extern struct platform_device imx27_nand_device;#endif
arch/arm/mach-imx/mach-mx21ads.c +4 -2
@@ -30,6 +30,7 @@#include <mach/mxc_nand.h> #include <mach/mmc.h> +#include "devices-imx21.h" #include "devices.h" /*
@@ -257,7 +258,8 @@ static struct imxmmc_platform_data mx21ads_sdhc_pdata = { .exit = mx21ads_sdhc_exit, }; -static struct mxc_nand_platform_data mx21ads_nand_board_info = { +static const struct mxc_nand_platform_data +mx21ads_nand_board_info__initconst = { .width =1 , .hw_ecc =1 , };
@@ -298,7 +300,7 @@ static void __init mx21ads_board_init(void)mxc_register_device (&imx2x_uart_device3, &uart_pdata);mxc_register_device (&mxc_fb_device, &mx21ads_fb_data);mxc_register_device (&mxc_sdhc_device0, &mx21ads_sdhc_pdata); -mxc_register_device (&imx21_nand_device, &mx21ads_nand_board_info); +imx21_add_mxc_nand (&mx21ads_nand_board_info);platform_add_devices (platform_devices,ARRAY_SIZE (platform_devices)); }
Signature · 1 line
1.7.1
PATCH 37/61 ARM: imx: Change the way nand devices are registered (imx25)
In reply to Uwe Kleine-KönigMake use of new mechanism to register a nand device.
--- arch/arm/mach-mx25/Kconfig | 1 + arch/arm/mach-mx25/devices-imx25.h | 13 +++++++++++++ arch/arm/mach-mx25/devices.c | 20 -------------------- arch/arm/mach-mx25/devices.h | 1 - arch/arm/mach-mx25/mach-mx25_3ds.c | 10 ++++++---- 5 files changed, 20 insertions(+), 25 deletions(-) create mode 100644 arch/arm/mach-mx25/devices-imx25.h
arch/arm/mach-mx25/Kconfig +1 -0
@@ -4,5 +4,6 @@ comment "MX25 platforms:" config MACH_MX25_3DS bool "Support MX25PDK (3DS) Platform" + select IMX_HAVE_PLATFORM_MXC_NAND endif
arch/arm/mach-mx25/devices-imx25.h new file +13 -0
@@ -0,0 +1,13 @@ +/* +* Copyright (C) 2010 Pengutronix +* Uwe Kleine-Koenig <[email protected]> +* +* 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. +*/ +#include <mach/mx25.h> +#include <mach/devices-common.h> + +#define imx25_add_mxc_nand (pdata) \ + imx_add_mxc_nand_v21(MX25_NFC_BASE_ADDR, MX25_INT_NANDFC, pdata)
arch/arm/mach-mx25/devices.c +0 -20
@@ -439,26 +439,6 @@ struct platform_device mx25_fec_device = { .resource = mx25_fec_resources, }; -static struct resource mxc_nand_resources[] = { - { - .start =MX25_NFC_BASE_ADDR , - .end =MX25_NFC_BASE_ADDR +0x1fff , - .flags =IORESOURCE_MEM , - }, - { - .start =MX25_INT_NANDFC , - .end =MX25_INT_NANDFC , - .flags =IORESOURCE_IRQ , - }, -}; - -struct platform_device mxc_nand_device = { - .name ="mxc_nand" , - .id =0 , - .num_resources =ARRAY_SIZE (mxc_nand_resources), - .resource = mxc_nand_resources, -}; -static struct resource mx25_rtc_resources[] = { { .start =MX25_DRYICE_BASE_ADDR ,
arch/arm/mach-mx25/devices.h +0 -1
@@ -18,7 +18,6 @@ extern struct platform_device mxc_i2c_device0;extern struct platform_device mxc_i2c_device1;extern struct platform_device mxc_i2c_device2;extern struct platform_device mx25_fec_device; -extern struct platform_device mxc_nand_device;extern struct platform_device mx25_rtc_device;extern struct platform_device mx25_fb_device;extern struct platform_device mxc_wdt;
arch/arm/mach-mx25/mach-mx25_3ds.c +6 -4
@@ -40,11 +40,12 @@#include <mach/common.h> #include <mach/imx-uart.h> #include <mach/mx25.h> -#include <mach/mxc_nand.h> #include <mach/imxfb.h> -#include "devices.h" #include <mach/iomux-mx25.h> +#include "devices-imx25.h" +#include "devices.h" +static struct imxuart_platform_data uart_pdata = { .flags =IMXUART_HAVE_RTSCTS , };
@@ -109,7 +110,8 @@ static void __init mx25pdk_fec_reset(void)gpio_set_value (FEC_RESET_B_GPIO ,1 ); } -static struct mxc_nand_platform_data mx25pdk_nand_board_info = { +static const struct mxc_nand_platform_data +mx25pdk_nand_board_info__initconst = { .width =1 , .hw_ecc =1 , .flash_bbt =1 ,
@@ -150,7 +152,7 @@ static void __init mx25pdk_init(void)mxc_register_device (&mxc_uart_device0, &uart_pdata);mxc_register_device (&mxc_usbh2,NULL ); -mxc_register_device (&mxc_nand_device, &mx25pdk_nand_board_info); +imx25_add_mxc_nand (&mx25pdk_nand_board_info);mxc_register_device (&mx25_rtc_device,NULL );mxc_register_device (&mx25_fb_device, &mx25pdk_fb_pdata);
Signature · 1 line
1.7.1
PATCH 38/61 ARM: imx: Change the way nand devices are registered (imx27)
In reply to Uwe Kleine-KönigMake use of new mechanism to register a nand device.
--- arch/arm/mach-imx/Kconfig | 5 +++++ arch/arm/mach-imx/devices-imx27.h | 13 +++++++++++++ arch/arm/mach-imx/devices.c | 24 ------------------------ arch/arm/mach-imx/devices.h | 3 --- arch/arm/mach-imx/mach-cpuimx27.c | 7 ++++--- arch/arm/mach-imx/mach-mx27ads.c | 6 ++++-- arch/arm/mach-imx/mach-mxt_td60.c | 6 ++++-- arch/arm/mach-imx/mach-pca100.c | 6 ++++-- arch/arm/mach-imx/mach-pcm038.c | 6 ++++-- 9 files changed, 38 insertions(+), 38 deletions(-) create mode 100644 arch/arm/mach-imx/devices-imx27.h
arch/arm/mach-imx/Kconfig +5 -0
@@ -81,12 +81,14 @@ comment "MX27 platforms:" config MACH_MX27ADS bool "MX27ADS platform" + select IMX_HAVE_PLATFORM_MXC_NAND help Include support for MX27ADS platform. This includes specific configurations for the board and its peripherals. config MACH_PCM038 bool "Phytec phyCORE-i.MX27 CPU module (pcm038)" + select IMX_HAVE_PLATFORM_MXC_NAND select MXC_ULPI if USB_ULPI help Include support for phyCORE-i.MX27 (aka pcm038) platform. This
@@ -108,6 +110,7 @@ endchoice config MACH_CPUIMX27 bool "Eukrea CPUIMX27 module" + select IMX_HAVE_PLATFORM_MXC_NAND help Include support for Eukrea CPUIMX27 platform. This includes specific configurations for the module and its peripherals.
@@ -147,6 +150,7 @@ config MACH_IMX27LITE config MACH_PCA100 bool "Phytec phyCARD-s (pca100)" + select IMX_HAVE_PLATFORM_MXC_NAND select MXC_ULPI if USB_ULPI help Include support for phyCARD-s (aka pca100) platform. This
@@ -154,6 +158,7 @@ config MACH_PCA100 config MACH_MXT_TD60 bool "Maxtrack i-MXT TD60" + select IMX_HAVE_PLATFORM_MXC_NAND help Include support for i-MXT (aka td60) platform. This includes specific configurations for the module and its peripherals.
arch/arm/mach-imx/devices-imx27.h new file +13 -0
@@ -0,0 +1,13 @@ +/* +* Copyright (C) 2010 Pengutronix +* Uwe Kleine-Koenig <[email protected]> +* +* 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. +*/ +#include <mach/mx27.h> +#include <mach/devices-common.h> + +#define imx27_add_mxc_nand (pdata) \ + imx_add_mxc_nand_v1(MX27_NFC_BASE_ADDR, MX27_INT_NANDFC, pdata)
arch/arm/mach-imx/devices.c +0 -24
@@ -337,30 +337,6 @@ struct platform_device mxc_w1_master_device = { .resource = mxc_w1_master_resources, }; -#define DEFINE_MXC_NAND_DEVICE (pfx, baseaddr, irq) \ - static struct resource pfx ## _nand_resources[] = { \ - { \ - .start = baseaddr, \ - .end = baseaddr + SZ_4K - 1, \ - .flags = IORESOURCE_MEM, \ - }, { \ - .start = irq, \ - .end = irq, \ - .flags = IORESOURCE_IRQ, \ - }, \ - }; \ - \ - struct platform_device pfx ## _nand_device = { \ - .name = "mxc_nand", \ - .id = 0, \ - .num_resources = ARRAY_SIZE(pfx ## _nand_resources), \ - .resource = pfx ## _nand_resources, \ - } - -#ifdef CONFIG_MACH_MX27 -DEFINE_MXC_NAND_DEVICE (imx27,MX27_NFC_BASE_ADDR ,MX27_INT_NANDFC ); -#endif -/* * lcdc: * - i.MX1: the basic controller
arch/arm/mach-imx/devices.h +0 -3
@@ -26,9 +26,6 @@ extern struct platform_device imx2x_uart_device4;extern struct platform_device imx2x_uart_device5;#endif extern struct platform_device mxc_w1_master_device; -#ifdef CONFIG_MACH_MX27 -extern struct platform_device imx27_nand_device; -#endif extern struct platform_device mxc_fb_device;extern struct platform_device mxc_fec_device;extern struct platform_device mxc_pwm_device;
arch/arm/mach-imx/mach-cpuimx27.c +4 -3
@@ -40,6 +40,7 @@#include <mach/imx-uart.h> #include <mach/mxc_nand.h> +#include "devices-imx27.h" #include "devices.h" static int eukrea_cpuimx27_pins[] = {
@@ -119,7 +120,8 @@ static struct imxuart_platform_data uart_pdata[] = { }, }; -static struct mxc_nand_platform_data eukrea_cpuimx27_nand_board_info = { +static const struct mxc_nand_platform_data +cpuimx27_nand_board_info__initconst = { .width =1 , .hw_ecc =1 , };
@@ -189,8 +191,7 @@ static void __init eukrea_cpuimx27_init(void)mxc_register_device (&imx2x_uart_device0, &uart_pdata[0 ]); -mxc_register_device (&imx27_nand_device, - &eukrea_cpuimx27_nand_board_info); +imx27_add_mxc_nand (&cpuimx27_nand_board_info);i2c_register_board_info (0 , eukrea_cpuimx27_i2c_devices,ARRAY_SIZE (eukrea_cpuimx27_i2c_devices));
arch/arm/mach-imx/mach-mx27ads.c +4 -2
@@ -35,6 +35,7 @@#include <mach/imxfb.h> #include <mach/mmc.h> +#include "devices-imx27.h" #include "devices.h" /*
@@ -166,7 +167,8 @@ static unsigned int mx27ads_pins[] = { PB9_PF_SD2_CLK, }; -static struct mxc_nand_platform_data mx27ads_nand_board_info = { +static const struct mxc_nand_platform_data +mx27ads_nand_board_info__initconst = { .width =1 , .hw_ecc =1 , };
@@ -315,7 +317,7 @@ static void __init mx27ads_board_init(void)mxc_register_device (&imx2x_uart_device3, &uart_pdata[3 ]);mxc_register_device (&imx2x_uart_device4, &uart_pdata[4 ]);mxc_register_device (&imx2x_uart_device5, &uart_pdata[5 ]); -mxc_register_device (&imx27_nand_device, &mx27ads_nand_board_info); +imx27_add_mxc_nand (&mx27ads_nand_board_info);/* only the i2c master 1 is used on this CPU card */ i2c_register_board_info(1, mx27ads_i2c_devices,
arch/arm/mach-imx/mach-mxt_td60.c +4 -2
@@ -36,6 +36,7 @@#include <mach/imxfb.h> #include <mach/mmc.h> +#include "devices-imx27.h" #include "devices.h" static unsigned int mxt_td60_pins[]__initdata = {
@@ -124,7 +125,8 @@ static unsigned int mxt_td60_pins[] __initdata = { PB9_PF_SD2_CLK, }; -static struct mxc_nand_platform_data mxt_td60_nand_board_info = { +static const struct mxc_nand_platform_data +mxt_td60_nand_board_info__initconst = { .width =1 , .hw_ecc =1 , };
@@ -253,7 +255,7 @@ static void __init mxt_td60_board_init(void)mxc_register_device (&imx2x_uart_device0, &uart_pdata[0 ]);mxc_register_device (&imx2x_uart_device1, &uart_pdata[1 ]);mxc_register_device (&imx2x_uart_device2, &uart_pdata[2 ]); -mxc_register_device (&imx27_nand_device, &mxt_td60_nand_board_info); +imx27_add_mxc_nand (&mxt_td60_nand_board_info);i2c_register_board_info (0 , mxt_td60_i2c_devices,ARRAY_SIZE (mxt_td60_i2c_devices));
arch/arm/mach-imx/mach-pca100.c +4 -2
@@ -50,6 +50,7 @@#include <mach/mxc_ehci.h> #include <mach/ulpi.h> +#include "devices-imx27.h" #include "devices.h" #define OTG_PHY_CS_GPIO (GPIO_PORTB + 23)
@@ -137,7 +138,8 @@ static struct imxuart_platform_data uart_pdata = { .flags = IMXUART_HAVE_RTSCTS, }; -static struct mxc_nand_platform_data pca100_nand_board_info = { +static const struct mxc_nand_platform_data +pca100_nand_board_info__initconst = { .width =1 , .hw_ecc =1 , };
@@ -325,7 +327,7 @@ static void __init pca100_init(void)mxc_gpio_mode (GPIO_PORTC |29 |GPIO_GPIO |GPIO_IN );mxc_register_device (&mxc_sdhc_device1, &sdhc_pdata); -mxc_register_device (&imx27_nand_device, &pca100_nand_board_info); +imx27_add_mxc_nand (&pca100_nand_board_info);/* only the i2c master 1 is used on this CPU card */ i2c_register_board_info(1, pca100_i2c_devices,
arch/arm/mach-imx/mach-pcm038.c +4 -2
@@ -43,6 +43,7 @@#include <mach/mxc_ehci.h> #include <mach/ulpi.h> +#include "devices-imx27.h" #include "devices.h" static int pcm038_pins[] = {
@@ -172,7 +173,8 @@ static struct imxuart_platform_data uart_pdata[] = { }, }; -static struct mxc_nand_platform_data pcm038_nand_board_info = { +static const struct mxc_nand_platform_data +pcm038_nand_board_info__initconst = { .width =1 , .hw_ecc =1 , };
@@ -310,7 +312,7 @@ static void __init pcm038_init(void)mxc_register_device (&imx2x_uart_device2, &uart_pdata[2 ]);mxc_gpio_mode (PE16_AF_OWIRE ); -mxc_register_device (&imx27_nand_device, &pcm038_nand_board_info); +imx27_add_mxc_nand (&pcm038_nand_board_info);/* only the i2c master 1 is used on this CPU card */ i2c_register_board_info(1, pcm038_i2c_devices,
Signature · 1 line
1.7.1
PATCH 39/61 ARM: imx: Change the way nand devices are registered (imx31)
In reply to Uwe Kleine-KönigMake use of new mechanism to register a nand device.
--- arch/arm/mach-mx3/Kconfig | 4 ++++ arch/arm/mach-mx3/devices-imx31.h | 13 +++++++++++++ arch/arm/mach-mx3/devices.c | 8 ++++++-- arch/arm/mach-mx3/devices.h | 2 ++ arch/arm/mach-mx3/mach-armadillo5x0.c | 7 ++++--- arch/arm/mach-mx3/mach-mx31_3ds.c | 8 +++++--- arch/arm/mach-mx3/mach-mx31lite.c | 7 ++++--- arch/arm/mach-mx3/mach-pcm037.c | 7 ++++--- 8 files changed, 42 insertions(+), 14 deletions(-) create mode 100644 arch/arm/mach-mx3/devices-imx31.h
arch/arm/mach-mx3/Kconfig +4 -0
@@ -34,6 +34,7 @@ config MACH_MX31ADS_WM1133_EV1 config MACH_PCM037 bool "Support Phytec pcm037 (i.MX31) platforms" select ARCH_MX31 + select IMX_HAVE_PLATFORM_MXC_NAND select MXC_ULPI if USB_ULPI help Include support for Phytec pcm037 platform. This includes
@@ -51,6 +52,7 @@ config MACH_MX31LITE bool "Support MX31 LITEKIT (LogicPD)" select ARCH_MX31 select MXC_ULPI if USB_ULPI + select IMX_HAVE_PLATFORM_MXC_NAND help Include support for MX31 LITEKIT platform. This includes specific configurations for the board and its peripherals.
@@ -58,6 +60,7 @@ config MACH_MX31LITE config MACH_MX31_3DS bool "Support MX31PDK (3DS)" select ARCH_MX31 + select IMX_HAVE_PLATFORM_MXC_NAND help Include support for MX31PDK (3DS) platform. This includes specific configurations for the board and its peripherals.
@@ -105,6 +108,7 @@ config MACH_PCM043 config MACH_ARMADILLO5X0 bool "Support Atmark Armadillo-500 Development Base Board" select ARCH_MX31 + select IMX_HAVE_PLATFORM_MXC_NAND select MXC_ULPI if USB_ULPI help Include support for Atmark Armadillo-500 platform. This includes
arch/arm/mach-mx3/devices-imx31.h new file +13 -0
@@ -0,0 +1,13 @@ +/* +* Copyright (C) 2010 Pengutronix +* Uwe Kleine-Koenig <[email protected]> +* +* 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. +*/ +#include <mach/mx31.h> +#include <mach/devices-common.h> + +#define imx31_add_mxc_nand (pdata) \ + imx_add_mxc_nand_v1(MX31_NFC_BASE_ADDR, MX31_INT_NANDFC, pdata)
arch/arm/mach-mx3/devices.c +6 -2
@@ -167,6 +167,7 @@ struct platform_device mxc_w1_master_device = { .resource = mxc_w1_master_resources, }; +#if defined(CONFIG_ARCH_MX35) static struct resource mxc_nand_resources[] = { { .start = 0, /* runtime dependent */
@@ -185,6 +186,7 @@ struct platform_device mxc_nand_device = { .num_resources = ARRAY_SIZE(mxc_nand_resources), .resource = mxc_nand_resources, }; +#endif static struct resource mxc_i2c0_resources[] = { {
@@ -628,13 +630,14 @@ struct platform_device imx_kpp_device = {static int __init mx3_devices_init (void ) { +#if defined(CONFIG_ARCH_MX31 )if (cpu_is_mx31 ()) { - mxc_nand_resources[0 ].start =MX31_NFC_BASE_ADDR ; - mxc_nand_resources[0 ].end =MX31_NFC_BASE_ADDR +0xfff ; imx_wdt_resources[0 ].start =MX31_WDOG_BASE_ADDR ; imx_wdt_resources[0 ].end =MX31_WDOG_BASE_ADDR +0x3fff ;mxc_register_device (&mxc_rnga_device,NULL ); } +#endif +#if defined(CONFIG_ARCH_MX35 )if (cpu_is_mx35 ()) { mxc_nand_resources[0 ].start =MX35_NFC_BASE_ADDR ; mxc_nand_resources[0 ].end =MX35_NFC_BASE_ADDR +0x1fff ;
@@ -653,6 +656,7 @@ static int __init mx3_devices_init(void) imx_wdt_resources[0 ].start =MX35_WDOG_BASE_ADDR ; imx_wdt_resources[0].end = MX35_WDOG_BASE_ADDR + 0x3fff; } +#endif return 0 ; }
arch/arm/mach-mx3/devices.h +2 -0
@@ -5,7 +5,9 @@ extern struct platform_device mxc_uart_device2;extern struct platform_device mxc_uart_device3;extern struct platform_device mxc_uart_device4;extern struct platform_device mxc_w1_master_device; +#if defined(CONFIG_ARCH_MX35 )extern struct platform_device mxc_nand_device; +#endif extern struct platform_device mxc_i2c_device0;extern struct platform_device mxc_i2c_device1;extern struct platform_device mxc_i2c_device2;
arch/arm/mach-mx3/mach-armadillo5x0.c +4 -3
@@ -53,10 +53,10 @@#include <mach/mmc.h> #include <mach/ipu.h> #include <mach/mx3fb.h> -#include <mach/mxc_nand.h> #include <mach/mxc_ehci.h> #include <mach/ulpi.h> +#include "devices-imx31.h" #include "devices.h" #include "crm_regs.h"
@@ -300,7 +300,8 @@ static struct platform_device armadillo5x0_button_device = {/* * NAND Flash */ -static struct mxc_nand_platform_data armadillo5x0_nand_flash_pdata = { +static const struct mxc_nand_platform_data +armadillo5x0_nand_board_info__initconst = { .width =1 , .hw_ecc =1 , };
@@ -531,7 +532,7 @@ static void __init armadillo5x0_init(void) &armadillo5x0_nor_flash_pdata);/* Register NAND Flash */ -mxc_register_device (&mxc_nand_device, &armadillo5x0_nand_flash_pdata); +imx31_add_mxc_nand (&armadillo5x0_nand_board_info);/* set NAND page size to 2k if not configured via boot mode pins */ __raw_writel (__raw_readl (MXC_CCM_RCSR ) | (1 <<30 ),MXC_CCM_RCSR );
arch/arm/mach-mx3/mach-mx31_3ds.c +5 -3
@@ -35,8 +35,9 @@#include <mach/common.h> #include <mach/imx-uart.h> #include <mach/iomux-mx3.h> -#include <mach/mxc_nand.h> #include <mach/spi.h> + +#include "devices-imx31.h" #include "devices.h" /* Definitions for components on the Debug board */
@@ -189,7 +190,8 @@ static struct spi_board_info mx31_3ds_spi_devs[] __initdata = {/* * NAND Flash */ -static struct mxc_nand_platform_data imx31_3ds_nand_flash_pdata = { +static const struct mxc_nand_platform_data +mx31_3ds_nand_board_info__initconst = { .width =1 , .hw_ecc =1 , #ifdef MACH_MX31_3DS_MXC_NAND_USE_BBT
@@ -415,7 +417,7 @@ static void __init mxc_board_init(void) "mx31_3ds");mxc_register_device (&mxc_uart_device0, &uart_pdata); -mxc_register_device (&mxc_nand_device, &imx31_3ds_nand_flash_pdata); +imx31_add_mxc_nand (&mx31_3ds_nand_board_info);mxc_register_device (&mxc_spi_device1, &spi1_pdata); spi_register_board_info(mx31_3ds_spi_devs,
arch/arm/mach-mx3/mach-mx31lite.c +4 -3
@@ -41,11 +41,11 @@#include <mach/imx-uart.h> #include <mach/iomux-mx3.h> #include <mach/irqs.h> -#include <mach/mxc_nand.h> #include <mach/spi.h> #include <mach/mxc_ehci.h> #include <mach/ulpi.h> +#include "devices-imx31.h" #include "devices.h" /*
@@ -65,7 +65,8 @@ static unsigned int mx31lite_pins[] = { MX31_PIN_CSPI2_SS2__SS2, }; -static struct mxc_nand_platform_data mx31lite_nand_board_info = { +static const struct mxc_nand_platform_data +mx31lite_nand_board_info__initconst = { .width =1 , .hw_ecc =1 , };
@@ -249,7 +250,7 @@ static void __init mxc_board_init(void)/* NOR and NAND flash */ platform_device_register (&physmap_flash_device); -mxc_register_device (&mxc_nand_device, &mx31lite_nand_board_info); +imx31_add_mxc_nand (&mx31lite_nand_board_info);mxc_register_device (&mxc_spi_device1, &spi1_pdata);spi_register_board_info (&mc13783_spi_dev,1 );
arch/arm/mach-mx3/mach-pcm037.c +4 -3
@@ -48,10 +48,10 @@#include <mach/mmc.h> #include <mach/mx3_camera.h> #include <mach/mx3fb.h> -#include <mach/mxc_nand.h> #include <mach/mxc_ehci.h> #include <mach/ulpi.h> +#include "devices-imx31.h" #include "devices.h" #include "pcm037.h"
@@ -274,7 +274,8 @@ static struct platform_device pcm037_sram_device = { .resource = &pcm038_sram_resource, }; -static struct mxc_nand_platform_data pcm037_nand_board_info = { +static const struct mxc_nand_platform_data +pcm037_nand_board_info__initconst = { .width =1 , .hw_ecc =1 , };
@@ -632,7 +633,7 @@ static void __init mxc_board_init(void)mxc_register_device (&mxc_i2c_device1, &pcm037_i2c_1_data);mxc_register_device (&mxc_i2c_device2, &pcm037_i2c_2_data); -mxc_register_device (&mxc_nand_device, &pcm037_nand_board_info); +imx31_add_mxc_nand (&pcm037_nand_board_info);mxc_register_device (&mxcsdhc_device0, &sdhc_pdata);mxc_register_device (&mx3_ipu, &mx3_ipu_data);mxc_register_device (&mx3_fb, &mx3fb_pdata);
Signature · 1 line
1.7.1
PATCH 40/61 ARM: imx: Change the way nand devices are registered (imx35)
In reply to Uwe Kleine-KönigMake use of new mechanism to register a nand device.
--- arch/arm/mach-mx3/Kconfig | 1 + arch/arm/mach-mx3/devices-imx35.h | 13 +++++++++++++ arch/arm/mach-mx3/devices.c | 23 ----------------------- arch/arm/mach-mx3/devices.h | 3 --- arch/arm/mach-mx3/mach-pcm043.c | 7 ++++--- 5 files changed, 18 insertions(+), 29 deletions(-) create mode 100644 arch/arm/mach-mx3/devices-imx35.h
arch/arm/mach-mx3/Kconfig +1 -0
@@ -100,6 +100,7 @@ config MACH_QONG config MACH_PCM043 bool "Support Phytec pcm043 (i.MX35) platforms" select ARCH_MX35 + select IMX_HAVE_PLATFORM_MXC_NAND select MXC_ULPI if USB_ULPI help Include support for Phytec pcm043 platform. This includes
arch/arm/mach-mx3/devices-imx35.h new file +13 -0
@@ -0,0 +1,13 @@ +/* +* Copyright (C) 2010 Pengutronix +* Uwe Kleine-Koenig <[email protected]> +* +* 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. +*/ +#include <mach/mx35.h> +#include <mach/devices-common.h> + +#define imx35_add_mxc_nand (pdata) \ + imx_add_mxc_nand_v21(MX35_NFC_BASE_ADDR, MX35_INT_NANDFC, pdata)
arch/arm/mach-mx3/devices.c +0 -23
@@ -167,27 +167,6 @@ struct platform_device mxc_w1_master_device = { .resource = mxc_w1_master_resources, }; -#if defined(CONFIG_ARCH_MX35 ) -static struct resource mxc_nand_resources[] = { - { - .start =0 ,/* runtime dependent */ - .end =0 , - .flags =IORESOURCE_MEM , - }, { - .start =MXC_INT_NANDFC , - .end =MXC_INT_NANDFC , - .flags =IORESOURCE_IRQ , - }, -}; - -struct platform_device mxc_nand_device = { - .name ="mxc_nand" , - .id =0 , - .num_resources =ARRAY_SIZE (mxc_nand_resources), - .resource = mxc_nand_resources, -}; -#endif -static struct resource mxc_i2c0_resources[] = { { .start =I2C_BASE_ADDR ,
@@ -639,8 +618,6 @@ static int __init mx3_devices_init(void)#endif #if defined(CONFIG_ARCH_MX35 )if (cpu_is_mx35 ()) { - mxc_nand_resources[0 ].start =MX35_NFC_BASE_ADDR ; - mxc_nand_resources[0 ].end =MX35_NFC_BASE_ADDR +0x1fff ; otg_resources[0 ].start =MX35_OTG_BASE_ADDR ; otg_resources[0 ].end =MX35_OTG_BASE_ADDR +0x1ff ; otg_resources[1 ].start =MXC_INT_USBOTG ;
arch/arm/mach-mx3/devices.h +0 -3
@@ -5,9 +5,6 @@ extern struct platform_device mxc_uart_device2;extern struct platform_device mxc_uart_device3;extern struct platform_device mxc_uart_device4;extern struct platform_device mxc_w1_master_device; -#if defined(CONFIG_ARCH_MX35 ) -extern struct platform_device mxc_nand_device; -#endif extern struct platform_device mxc_i2c_device0;extern struct platform_device mxc_i2c_device1;extern struct platform_device mxc_i2c_device2;
arch/arm/mach-mx3/mach-pcm043.c +4 -3
@@ -43,12 +43,12 @@#include <mach/iomux-mx35.h> #include <mach/ipu.h> #include <mach/mx3fb.h> -#include <mach/mxc_nand.h> #include <mach/mxc_ehci.h> #include <mach/ulpi.h> #include <mach/audmux.h> #include <mach/ssi.h> +#include "devices-imx35.h" #include "devices.h" static const struct fb_videomode fb_modedb[] = {
@@ -300,7 +300,8 @@ static struct imx_ssi_platform_data pcm043_ssi_pdata = { .flags = IMX_SSI_USE_AC97, }; -static struct mxc_nand_platform_data pcm037_nand_board_info = { +static const struct mxc_nand_platform_data +pcm037_nand_board_info__initconst = { .width =1 , .hw_ecc =1 , };
@@ -358,7 +359,7 @@ static void __init mxc_board_init(void)platform_add_devices (devices,ARRAY_SIZE (devices));mxc_register_device (&mxc_uart_device0, &uart_pdata); -mxc_register_device (&mxc_nand_device, &pcm037_nand_board_info); +imx35_add_mxc_nand (&pcm037_nand_board_info);mxc_register_device (&imx_ssi_device0, &pcm043_ssi_pdata);mxc_register_device (&mxc_uart_device1, &uart_pdata);
Signature · 1 line
1.7.1
PATCH 41/61 ARM: imx: dynamically register imx-i2c devices (generic part)
In reply to Uwe Kleine-König--- arch/arm/plat-mxc/devices/Kconfig | 3 ++ arch/arm/plat-mxc/devices/Makefile | 1 + arch/arm/plat-mxc/devices/platform-imx-i2c.c | 29 +++++++++++++++++++++++ arch/arm/plat-mxc/include/mach/devices-common.h | 5 ++++ 4 files changed, 38 insertions(+), 0 deletions(-) create mode 100644 arch/arm/plat-mxc/devices/platform-imx-i2c.c
arch/arm/plat-mxc/devices/Kconfig +3 -0
@@ -1,2 +1,5 @@ +config IMX_HAVE_PLATFORM_IMX_I2C + bool + config IMX_HAVE_PLATFORM_MXC_NAND bool
arch/arm/plat-mxc/devices/Makefile +1 -0
@@ -1 +1,2 @@ +obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_I2C) += platform-imx-i2c.o obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_NAND) += platform-mxc_nand.o
arch/arm/plat-mxc/devices/platform-imx-i2c.c new file +29 -0
@@ -0,0 +1,29 @@ +/* +* Copyright (C) 2009-2010 Pengutronix +* Uwe Kleine-Koenig <[email protected]> +* +* 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. +*/ +#include <mach/devices-common.h> + +struct platform_device *__init imx_add_imx_i2c (int id, +resource_size_t iobase,resource_size_t iosize,int irq, +const struct imxi2c_platform_data *pdata) +{ +struct resource res[] = { + { + .start = iobase, + .end = iobase + iosize -1 , + .flags =IORESOURCE_MEM , + }, { + .start = irq, + .end = irq, + .flags =IORESOURCE_IRQ , + }, + }; + +return imx_add_platform_device ("imx-i2c" , id, res,ARRAY_SIZE (res), + pdata,sizeof (*pdata)); +}
arch/arm/plat-mxc/include/mach/devices-common.h +5 -0
@@ -14,6 +14,11 @@ struct platform_device *imx_add_platform_device(const char *name, int id, const struct resource *res, unsigned int num_resources, const void *data, size_t size_data); +#include <mach/i2c.h> +struct platform_device *__init imx_add_imx_i2c (int id, +resource_size_t iobase,resource_size_t iosize,int irq, +const struct imxi2c_platform_data *pdata); +#include <mach/mxc_nand.h> struct platform_device *__init imx_add_mxc_nand_v1 (resource_size_t iobase,int irq,const struct mxc_nand_platform_data *pdata);
Signature · 1 line
1.7.1
PATCH 42/61 ARM: imx: dynamically register imx-i2c devices (imx1)
In reply to Uwe Kleine-König--- arch/arm/mach-imx/Kconfig | 1 + arch/arm/mach-imx/devices-imx1.h | 13 +++++++++++++ arch/arm/mach-imx/devices.c | 19 ------------------- arch/arm/mach-imx/devices.h | 1 - arch/arm/mach-imx/mach-mx1ads.c | 5 +++-- arch/arm/plat-mxc/include/mach/mx1.h | 4 ++-- 6 files changed, 19 insertions(+), 24 deletions(-) create mode 100644 arch/arm/mach-imx/devices-imx1.h
arch/arm/mach-imx/Kconfig +1 -0
@@ -16,6 +16,7 @@ config MACH_MXLADS config ARCH_MX1ADS bool "MX1ADS platform" select MACH_MXLADS + select IMX_HAVE_PLATFORM_IMX_I2C help Say Y here if you are using Motorola MX1ADS/MXLADS boards
arch/arm/mach-imx/devices-imx1.h new file +13 -0
@@ -0,0 +1,13 @@ +/* +* Copyright (C) 2010 Pengutronix +* Uwe Kleine-Koenig <[email protected]> +* +* 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. +*/ +#include <mach/mx1.h> +#include <mach/devices-common.h> + +#define imx1_add_i2c_imx (pdata) \ + imx_add_imx_i2c(0, MX1_I2C_BASE_ADDR, SZ_4K, MX1_INT_I2C, pdata)
arch/arm/mach-imx/devices.c +0 -19
@@ -70,25 +70,6 @@ struct platform_device imx1_camera_device = { .num_resources = ARRAY_SIZE(imx1_camera_resources), }; -static struct resource imx_i2c_resources[] = { - { - .start =0x00217000 , - .end =0x00217010 , - .flags =IORESOURCE_MEM , - }, { - .start =MX1_I2C_INT , - .end =MX1_I2C_INT , - .flags =IORESOURCE_IRQ , - }, -}; - -struct platform_device imx_i2c_device0 = { - .name ="imx-i2c" , - .id =0 , - .resource = imx_i2c_resources, - .num_resources =ARRAY_SIZE (imx_i2c_resources), -}; -#define DEFINE_IMX1_UART_DEVICE (n, baseaddr, irqrx, irqtx, irqrts) \ static struct resource imx1_uart_resources ## n[] = { \ { \
arch/arm/mach-imx/devices.h +0 -1
@@ -1,6 +1,5 @@#ifdef CONFIG_ARCH_MX1 extern struct platform_device imx1_camera_device; -extern struct platform_device imx_i2c_device0;extern struct platform_device imx1_uart_device0;extern struct platform_device imx1_uart_device1;extern struct platform_device imx_rtc_device;
arch/arm/mach-imx/mach-mx1ads.c +3 -2
@@ -30,6 +30,7 @@#include <mach/iomux-mx1.h> #include <mach/irqs.h> +#include "devices-imx1.h" #include "devices.h" static int mx1ads_pins[] = {
@@ -98,7 +99,7 @@ static struct pcf857x_platform_data pcf857x_data[] = { } }; -static struct imxi2c_platform_data mx1ads_i2c_data = { +static const struct imxi2c_platform_data mx1ads_i2c_data__initconst = { .bitrate =100000 , };
@@ -131,7 +132,7 @@ static void __init mx1ads_init(void)i2c_register_board_info (0 , mx1ads_i2c_devices,ARRAY_SIZE (mx1ads_i2c_devices)); -mxc_register_device (&imx_i2c_device0, &mx1ads_i2c_data); +imx1_add_i2c_imx (&mx1ads_i2c_data); }static void __init mx1ads_timer_init (void )
arch/arm/plat-mxc/include/mach/mx1.h +2 -2
@@ -108,7 +108,7 @@#define MX1_PEN_DATA_INT 33#define MX1_PWM_INT 34#define MX1_SDHC_INT 35 -#define MX1_I2C_INT 39 +#define MX1_INT_I2C 39#define MX1_CSPI_INT 41#define MX1_SSI_TX_INT 42#define MX1_SSI_TX_ERR_INT 43
@@ -245,7 +245,7 @@#define PEN_DATA_INT MX1_PEN_DATA_INT#define PWM_INT MX1_PWM_INT#define SDHC_INT MX1_SDHC_INT -#define I2C_INT MX1_I2C_INT +#define I2C_INT MX1_INT_I2C#define CSPI_INT MX1_CSPI_INT#define SSI_TX_INT MX1_SSI_TX_INT#define SSI_TX_ERR_INT MX1_SSI_TX_ERR_INT
Signature · 1 line
1.7.1
PATCH 43/61 ARM: imx: dynamically register imx-i2c devices (imx21)
In reply to Uwe Kleine-König--- arch/arm/mach-imx/devices-imx21.h | 3 +++ arch/arm/mach-imx/devices.c | 2 +- arch/arm/mach-imx/devices.h | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-)
arch/arm/mach-imx/devices-imx21.h +3 -0
@@ -9,5 +9,8 @@#include <mach/mx21.h> #include <mach/devices-common.h> +#define imx21_add_i2c_imx (pdata) \ + imx_add_imx_i2c(0, MX2x_I2C_BASE_ADDR, SZ_4K, MX2x_INT_I2C, pdata) +#define imx21_add_mxc_nand (pdata) \ imx_add_mxc_nand_v1(MX21_NFC_BASE_ADDR, MX21_INT_NANDFC, pdata)
arch/arm/mach-imx/devices.c +1 -1
@@ -368,6 +368,7 @@ struct platform_device mxc_fec_device = { };#endif +#ifdef CONFIG_MACH_MX27 #define DEFINE_IMX_I2C_DEVICE (n, baseaddr, irq) \ static struct resource mxc_i2c_resources ## n[] = { \ { \
@@ -390,7 +391,6 @@ struct platform_device mxc_fec_device = {DEFINE_IMX_I2C_DEVICE (0 , MX2x_I2C_BASE_ADDR, MX2x_INT_I2C); -#ifdef CONFIG_MACH_MX27 DEFINE_IMX_I2C_DEVICE (1 ,MX27_I2C2_BASE_ADDR ,MX27_INT_I2C2 );#endif
arch/arm/mach-imx/devices.h +1 -1
@@ -28,8 +28,8 @@ extern struct platform_device mxc_w1_master_device;extern struct platform_device mxc_fb_device;extern struct platform_device mxc_fec_device;extern struct platform_device mxc_pwm_device; -extern struct platform_device mxc_i2c_device0;#ifdef CONFIG_MACH_MX27 +extern struct platform_device mxc_i2c_device0;extern struct platform_device mxc_i2c_device1;#endif extern struct platform_device mxc_sdhc_device0;
Signature · 1 line
1.7.1
PATCH 44/61 ARM: imx: dynamically register imx-i2c devices (imx25)
In reply to Uwe Kleine-König--- arch/arm/mach-mx25/devices-imx25.h | 7 ++++ arch/arm/mach-mx25/devices.c | 57 --------------------------------- arch/arm/mach-mx25/devices.h | 3 -- arch/arm/plat-mxc/include/mach/mx25.h | 14 ++++++-- 4 files changed, 17 insertions(+), 64 deletions(-)
arch/arm/mach-mx25/devices-imx25.h +7 -0
@@ -9,5 +9,12 @@#include <mach/mx25.h> #include <mach/devices-common.h> +#define imx25_add_imx_i2c0 (pdata) \ + imx_add_imx_i2c(0, MX25_I2C1_BASE_ADDR, SZ_16K, MX25_INT_I2C1, pdata) +#define imx25_add_imx_i2c1 (pdata) \ + imx_add_imx_i2c(1, MX25_I2C2_BASE_ADDR, SZ_16K, MX25_INT_I2C2, pdata) +#define imx25_add_imx_i2c2 (pdata) \ + imx_add_imx_i2c(2, MX25_I2C3_BASE_ADDR, SZ_16K, MX25_INT_I2C3, pdata) +#define imx25_add_mxc_nand (pdata) \ imx_add_mxc_nand_v21(MX25_NFC_BASE_ADDR, MX25_INT_NANDFC, pdata)
arch/arm/mach-mx25/devices.c +0 -57
63 lines not on this page · raw message
arch/arm/mach-mx25/devices.h +0 -3
@@ -14,9 +14,6 @@ extern struct platform_device mxc_pwm_device1;extern struct platform_device mxc_pwm_device2;extern struct platform_device mxc_pwm_device3;extern struct platform_device mxc_keypad_device; -extern struct platform_device mxc_i2c_device0; -extern struct platform_device mxc_i2c_device1; -extern struct platform_device mxc_i2c_device2;extern struct platform_device mx25_fec_device;extern struct platform_device mx25_rtc_device;extern struct platform_device mx25_fb_device;
arch/arm/plat-mxc/include/mach/mx25.h +10 -4
@@ -11,6 +11,9 @@#define MX25_AVIC_BASE_ADDR_VIRT 0xfc400000#define MX25_AVIC_SIZE SZ_1M +#define MX25_I2C1_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0x80000) +#define MX25_I2C3_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0x84000) +#define MX25_I2C2_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0x98000)#define MX25_IOMUXC_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0xac000)#define MX25_CRM_BASE_ADDR (MX25_AIPS2_BASE_ADDR + 0x80000)
@@ -35,10 +38,13 @@#define MX25_DRYICE_BASE_ADDR 0x53ffc000#define MX25_LCDC_BASE_ADDR 0x53fbc000 -#define MX25_INT_DRYICE 25 -#define MX25_INT_FEC 57 -#define MX25_INT_NANDFC 33 -#define MX25_INT_LCDC 39 +#define MX25_INT_I2C1 3 +#define MX25_INT_I2C2 4 +#define MX25_INT_I2C3 10 +#define MX25_INT_DRYICE 25 +#define MX25_INT_FEC 57 +#define MX25_INT_NANDFC 33 +#define MX25_INT_LCDC 39#if defined(IMX_NEEDS_DEPRECATED_SYMBOLS )#define UART1_BASE_ADDR MX25_UART1_BASE_ADDR
Signature · 1 line
1.7.1
PATCH 45/61 ARM: imx: dynamically register imx-i2c devices (imx27)
In reply to Uwe Kleine-König--- arch/arm/mach-imx/Kconfig | 5 +++++ arch/arm/mach-imx/devices-imx27.h | 5 +++++ arch/arm/mach-imx/devices.c | 26 -------------------------- arch/arm/mach-imx/devices.h | 4 ---- arch/arm/mach-imx/mach-cpuimx27.c | 5 ++--- arch/arm/mach-imx/mach-mx27ads.c | 5 ++--- arch/arm/mach-imx/mach-mxt_td60.c | 9 ++++----- arch/arm/mach-imx/mach-pca100.c | 5 ++--- arch/arm/mach-imx/mach-pcm038.c | 5 ++--- arch/arm/plat-mxc/include/mach/mx27.h | 4 ++-- 10 files changed, 24 insertions(+), 49 deletions(-)
arch/arm/mach-imx/Kconfig +5 -0
@@ -82,6 +82,7 @@ comment "MX27 platforms:" config MACH_MX27ADS bool "MX27ADS platform" + select IMX_HAVE_PLATFORM_IMX_I2C select IMX_HAVE_PLATFORM_MXC_NAND help Include support for MX27ADS platform. This includes specific
@@ -89,6 +90,7 @@ config MACH_MX27ADS config MACH_PCM038 bool "Phytec phyCORE-i.MX27 CPU module (pcm038)" + select IMX_HAVE_PLATFORM_IMX_I2C select IMX_HAVE_PLATFORM_MXC_NAND select MXC_ULPI if USB_ULPI help
@@ -111,6 +113,7 @@ endchoice config MACH_CPUIMX27 bool "Eukrea CPUIMX27 module" + select IMX_HAVE_PLATFORM_IMX_I2C select IMX_HAVE_PLATFORM_MXC_NAND help Include support for Eukrea CPUIMX27 platform. This includes
@@ -151,6 +154,7 @@ config MACH_IMX27LITE config MACH_PCA100 bool "Phytec phyCARD-s (pca100)" + select IMX_HAVE_PLATFORM_IMX_I2C select IMX_HAVE_PLATFORM_MXC_NAND select MXC_ULPI if USB_ULPI help
@@ -159,6 +163,7 @@ config MACH_PCA100 config MACH_MXT_TD60 bool "Maxtrack i-MXT TD60" + select IMX_HAVE_PLATFORM_IMX_I2C select IMX_HAVE_PLATFORM_MXC_NAND help Include support for i-MXT (aka td60) platform. This
arch/arm/mach-imx/devices-imx27.h +5 -0
@@ -9,5 +9,10 @@#include <mach/mx27.h> #include <mach/devices-common.h> +#define imx27_add_i2c_imx0 (pdata) \ + imx_add_imx_i2c(0, MX27_I2C1_BASE_ADDR, SZ_4K, MX27_INT_I2C1, pdata) +#define imx27_add_i2c_imx1 (pdata) \ + imx_add_imx_i2c(1, MX27_I2C2_BASE_ADDR, SZ_4K, MX27_INT_I2C2, pdata) +#define imx27_add_mxc_nand (pdata) \ imx_add_mxc_nand_v1(MX27_NFC_BASE_ADDR, MX27_INT_NANDFC, pdata)
arch/arm/mach-imx/devices.c +0 -26
@@ -368,32 +368,6 @@ struct platform_device mxc_fec_device = { };#endif -#ifdef CONFIG_MACH_MX27 -#define DEFINE_IMX_I2C_DEVICE (n, baseaddr, irq) \ - static struct resource mxc_i2c_resources ## n[] = { \ - { \ - .start = baseaddr, \ - .end = baseaddr + SZ_4K - 1, \ - .flags = IORESOURCE_MEM, \ - }, { \ - .start = irq, \ - .end = irq, \ - .flags = IORESOURCE_IRQ, \ - } \ - }; \ - \ - struct platform_device mxc_i2c_device ## n = { \ - .name = "imx-i2c", \ - .id = n, \ - .num_resources = ARRAY_SIZE(mxc_i2c_resources ## n), \ - .resource = mxc_i2c_resources ## n, \ - } - -DEFINE_IMX_I2C_DEVICE (0 , MX2x_I2C_BASE_ADDR, MX2x_INT_I2C); - -DEFINE_IMX_I2C_DEVICE (1 ,MX27_I2C2_BASE_ADDR ,MX27_INT_I2C2 ); -#endif -static struct resource mxc_pwm_resources[] = { { .start = MX2x_PWM_BASE_ADDR,
arch/arm/mach-imx/devices.h +0 -4
@@ -28,10 +28,6 @@ extern struct platform_device mxc_w1_master_device;extern struct platform_device mxc_fb_device;extern struct platform_device mxc_fec_device;extern struct platform_device mxc_pwm_device; -#ifdef CONFIG_MACH_MX27 -extern struct platform_device mxc_i2c_device0; -extern struct platform_device mxc_i2c_device1; -#endif extern struct platform_device mxc_sdhc_device0;extern struct platform_device mxc_sdhc_device1;extern struct platform_device mxc_otg_udc_device;
arch/arm/mach-imx/mach-cpuimx27.c +2 -3
@@ -35,7 +35,6 @@#include <mach/board-eukrea_cpuimx27.h> #include <mach/common.h> #include <mach/hardware.h> -#include <mach/i2c.h> #include <mach/iomux-mx27.h> #include <mach/imx-uart.h> #include <mach/mxc_nand.h>
@@ -131,7 +130,7 @@ static struct platform_device *platform_devices[] __initdata = { &mxc_fec_device, }; -static struct imxi2c_platform_data eukrea_cpuimx27_i2c_1_data = { +static const struct imxi2c_platform_data cpuimx27_i2c1_data__initconst = { .bitrate =100000 , };
@@ -196,7 +195,7 @@ static void __init eukrea_cpuimx27_init(void)i2c_register_board_info (0 , eukrea_cpuimx27_i2c_devices,ARRAY_SIZE (eukrea_cpuimx27_i2c_devices)); -mxc_register_device (&mxc_i2c_device0, &eukrea_cpuimx27_i2c_1_data); +imx27_add_i2c_imx1 (&cpuimx27_i2c1_data);platform_add_devices (platform_devices,ARRAY_SIZE (platform_devices));
arch/arm/mach-imx/mach-mx27ads.c +2 -3
@@ -31,7 +31,6 @@#include <mach/imx-uart.h> #include <mach/iomux-mx27.h> #include <mach/mxc_nand.h> -#include <mach/i2c.h> #include <mach/imxfb.h> #include <mach/mmc.h>
@@ -195,7 +194,7 @@ static struct platform_device mx27ads_nor_mtd_device = { .resource = &mx27ads_flash_resource, }; -static struct imxi2c_platform_data mx27ads_i2c_data = { +static const struct imxi2c_platform_data mx27ads_i2c1_data__initconst = { .bitrate =100000 , };
@@ -322,7 +321,7 @@ static void __init mx27ads_board_init(void)/* only the i2c master 1 is used on this CPU card */ i2c_register_board_info (1 , mx27ads_i2c_devices,ARRAY_SIZE (mx27ads_i2c_devices)); -mxc_register_device (&mxc_i2c_device1, &mx27ads_i2c_data); +imx27_add_i2c_imx1 (&mx27ads_i2c1_data);mxc_register_device (&mxc_fb_device, &mx27ads_fb_data);mxc_register_device (&mxc_sdhc_device0, &sdhc1_pdata);mxc_register_device (&mxc_sdhc_device1, &sdhc2_pdata);
arch/arm/mach-imx/mach-mxt_td60.c +4 -5
@@ -31,7 +31,6 @@#include <mach/imx-uart.h> #include <mach/iomux-mx27.h> #include <mach/mxc_nand.h> -#include <mach/i2c.h> #include <linux/i2c/pca953x.h> #include <mach/imxfb.h> #include <mach/mmc.h>
@@ -131,7 +130,7 @@ mxt_td60_nand_board_info __initconst = { .hw_ecc = 1, }; -static struct imxi2c_platform_data mxt_td60_i2c_data = { +static const struct imxi2c_platform_data mxt_td60_i2c0_data__initconst = { .bitrate =100000 , };
@@ -171,7 +170,7 @@ static struct i2c_board_info mxt_td60_i2c_devices[] = { }, }; -static struct imxi2c_platform_data mxt_td60_i2c2_data = { +static const struct imxi2c_platform_data mxt_td60_i2c1_data__initconst = { .bitrate =100000 , };
@@ -263,8 +262,8 @@ static void __init mxt_td60_board_init(void)i2c_register_board_info (1 , mxt_td60_i2c2_devices,ARRAY_SIZE (mxt_td60_i2c2_devices)); -mxc_register_device (&mxc_i2c_device0, &mxt_td60_i2c_data); -mxc_register_device (&mxc_i2c_device1, &mxt_td60_i2c2_data); +imx27_add_i2c_imx0 (&mxt_td60_i2c0_data); +imx27_add_i2c_imx1 (&mxt_td60_i2c1_data);mxc_register_device (&mxc_fb_device, &mxt_td60_fb_data);mxc_register_device (&mxc_sdhc_device0, &sdhc1_pdata);
arch/arm/mach-imx/mach-pca100.c +2 -3
@@ -36,7 +36,6 @@#include <mach/common.h> #include <mach/hardware.h> #include <mach/iomux-mx27.h> -#include <mach/i2c.h> #include <asm/mach/time.h> #if defined(CONFIG_SPI_IMX ) || defined(CONFIG_SPI_IMX_MODULE )#include <mach/spi.h>
@@ -150,7 +149,7 @@ static struct platform_device *platform_devices[] __initdata = { &mxc_wdt, }; -static struct imxi2c_platform_data pca100_i2c_1_data = { +static const struct imxi2c_platform_data pca100_i2c1_data__initconst = { .bitrate =100000 , };
@@ -333,7 +332,7 @@ static void __init pca100_init(void)i2c_register_board_info (1 , pca100_i2c_devices,ARRAY_SIZE (pca100_i2c_devices)); -mxc_register_device (&mxc_i2c_device1, &pca100_i2c_1_data); +imx27_add_i2c_imx1 (&pca100_i2c1_data);mxc_gpio_mode (GPIO_PORTD |28 |GPIO_GPIO |GPIO_OUT );mxc_gpio_mode (GPIO_PORTD |27 |GPIO_GPIO |GPIO_OUT );
arch/arm/mach-imx/mach-pcm038.c +2 -3
@@ -35,7 +35,6 @@#include <mach/board-pcm038.h> #include <mach/common.h> #include <mach/hardware.h> -#include <mach/i2c.h> #include <mach/iomux-mx27.h> #include <mach/imx-uart.h> #include <mach/mxc_nand.h>
@@ -194,7 +193,7 @@ static void __init pcm038_init_sram(void)mx27_setup_weimcs (1 ,0x0000d843 ,0x22252521 ,0x22220a00 ); } -static struct imxi2c_platform_data pcm038_i2c_1_data = { +static const struct imxi2c_platform_data pcm038_i2c1_data__initconst = { .bitrate =100000 , };
@@ -318,7 +317,7 @@ static void __init pcm038_init(void)i2c_register_board_info (1 , pcm038_i2c_devices,ARRAY_SIZE (pcm038_i2c_devices)); -mxc_register_device (&mxc_i2c_device1, &pcm038_i2c_1_data); +imx27_add_i2c_imx1 (&pcm038_i2c1_data);/* PE18 for user-LED D40 */ mxc_gpio_mode (GPIO_PORTE |18 |GPIO_GPIO |GPIO_OUT );
arch/arm/plat-mxc/include/mach/mx27.h +2 -2
@@ -48,7 +48,7 @@#define MX27_CSPI2_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x0f000)#define MX27_SSI1_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x10000)#define MX27_SSI2_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x11000) -#define MX27_I2C_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x12000) +#define MX27_I2C1_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x12000)#define MX27_SDHC1_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x13000)#define MX27_SDHC2_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x14000)#define MX27_GPIO_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x15000)
@@ -150,7 +150,7 @@ static inline void mx27_setup_weimcs(size_t cs,#define MX27_INT_SDHC3 9#define MX27_INT_SDHC2 10#define MX27_INT_SDHC1 11 -#define MX27_INT_I2C 12 +#define MX27_INT_I2C1 12#define MX27_INT_SSI2 13#define MX27_INT_SSI1 14#define MX27_INT_CSPI2 15
Signature · 1 line
1.7.1
PATCH 46/61 ARM: imx: dynamically register imx-i2c devices (imx31)
In reply to Uwe Kleine-König--- arch/arm/mach-mx3/Kconfig | 4 ++++ arch/arm/mach-mx3/devices-imx31.h | 7 +++++++ arch/arm/mach-mx3/devices.c | 2 ++ arch/arm/mach-mx3/devices.h | 2 ++ arch/arm/mach-mx3/mach-armadillo5x0.c | 2 +- arch/arm/mach-mx3/mach-mx31ads.c | 3 ++- arch/arm/mach-mx3/mach-mx31moboard.c | 10 +++++----- arch/arm/mach-mx3/mach-pcm037.c | 9 ++++----- arch/arm/plat-mxc/include/mach/mx31.h | 4 ++-- 9 files changed, 29 insertions(+), 14 deletions(-)
arch/arm/mach-mx3/Kconfig +4 -0
@@ -15,6 +15,7 @@ comment "MX3 platforms:" config MACH_MX31ADS bool "Support MX31ADS platforms" select ARCH_MX31 + select IMX_HAVE_PLATFORM_IMX_I2C default y help Include support for MX31ADS platform. This includes specific
@@ -34,6 +35,7 @@ config MACH_MX31ADS_WM1133_EV1 config MACH_PCM037 bool "Support Phytec pcm037 (i.MX31) platforms" select ARCH_MX31 + select IMX_HAVE_PLATFORM_IMX_I2C select IMX_HAVE_PLATFORM_MXC_NAND select MXC_ULPI if USB_ULPI help
@@ -77,6 +79,7 @@ config MACH_MX31_3DS_MXC_NAND_USE_BBT config MACH_MX31MOBOARD bool "Support mx31moboard platforms (EPFL Mobots group)" select ARCH_MX31 + select IMX_HAVE_PLATFORM_IMX_I2C select MXC_ULPI if USB_ULPI help Include support for mx31moboard platform. This includes specific
@@ -109,6 +112,7 @@ config MACH_PCM043 config MACH_ARMADILLO5X0 bool "Support Atmark Armadillo-500 Development Base Board" select ARCH_MX31 + select IMX_HAVE_PLATFORM_IMX_I2C select IMX_HAVE_PLATFORM_MXC_NAND select MXC_ULPI if USB_ULPI help
arch/arm/mach-mx3/devices-imx31.h +7 -0
@@ -9,5 +9,12 @@#include <mach/mx31.h> #include <mach/devices-common.h> +#define imx31_add_imx_i2c0 (pdata) \ + imx_add_imx_i2c(0, MX31_I2C1_BASE_ADDR, SZ_4K, MX31_INT_I2C1, pdata) +#define imx31_add_imx_i2c1 (pdata) \ + imx_add_imx_i2c(1, MX31_I2C2_BASE_ADDR, SZ_4K, MX31_INT_I2C2, pdata) +#define imx31_add_imx_i2c2 (pdata) \ + imx_add_imx_i2c(2, MX31_I2C3_BASE_ADDR, SZ_4K, MX31_INT_I2C3, pdata) +#define imx31_add_mxc_nand (pdata) \ imx_add_mxc_nand_v1(MX31_NFC_BASE_ADDR, MX31_INT_NANDFC, pdata)
arch/arm/mach-mx3/devices.c +2 -0
@@ -167,6 +167,7 @@ struct platform_device mxc_w1_master_device = { .resource = mxc_w1_master_resources, }; +#if defined(CONFIG_ARCH_MX35) static struct resource mxc_i2c0_resources[] = { { .start = I2C_BASE_ADDR,
@@ -223,6 +224,7 @@ struct platform_device mxc_i2c_device2 = { .num_resources = ARRAY_SIZE(mxc_i2c2_resources), .resource = mxc_i2c2_resources, }; +#endif #ifdef CONFIG_ARCH_MX31 static struct resource mxcsdhc0_resources[] = {
arch/arm/mach-mx3/devices.h +2 -0
@@ -5,9 +5,11 @@ extern struct platform_device mxc_uart_device2;extern struct platform_device mxc_uart_device3;extern struct platform_device mxc_uart_device4;extern struct platform_device mxc_w1_master_device; +#if defined(CONFIG_ARCH_MX35 )extern struct platform_device mxc_i2c_device0;extern struct platform_device mxc_i2c_device1;extern struct platform_device mxc_i2c_device2; +#endif extern struct platform_device mx3_ipu;extern struct platform_device mx3_fb;extern struct platform_device mx3_camera;
arch/arm/mach-mx3/mach-armadillo5x0.c +1 -1
@@ -499,7 +499,6 @@ static struct imxuart_platform_data uart_pdata = {static struct platform_device *devices[]__initdata = { &armadillo5x0_smc911x_device, - &mxc_i2c_device1, &armadillo5x0_button_device, };
@@ -512,6 +511,7 @@ static void __init armadillo5x0_init(void) ARRAY_SIZE(armadillo5x0_pins), "armadillo5x0");platform_add_devices (devices,ARRAY_SIZE (devices)); +imx31_add_imx_i2c1 (NULL );/* Register UART */ mxc_register_device (&mxc_uart_device0, &uart_pdata);
arch/arm/mach-mx3/mach-mx31ads.c +2 -1
@@ -38,6 +38,7 @@#include <linux/mfd/wm8350/pmic.h> #endif +#include "devices-imx31.h" #include "devices.h" /* Base address of PBC controller */
@@ -500,7 +501,7 @@ static void mxc_init_i2c(void)mxc_iomux_mode (IOMUX_MODE (MX31_PIN_CSPI2_MOSI ,IOMUX_CONFIG_ALT1 ));mxc_iomux_mode (IOMUX_MODE (MX31_PIN_CSPI2_MISO ,IOMUX_CONFIG_ALT1 )); - mxc_register_device(&mxc_i2c_device1, NULL); + imx31_add_imx_i2c1(NULL); }#else static void mxc_init_i2c (void )
arch/arm/mach-mx3/mach-mx31moboard.c +5 -5
@@ -41,13 +41,13 @@#include <mach/imx-uart.h> #include <mach/iomux-mx3.h> #include <mach/ipu.h> -#include <mach/i2c.h> #include <mach/mmc.h> #include <mach/mxc_ehci.h> #include <mach/mx3_camera.h> #include <mach/spi.h> #include <mach/ulpi.h> +#include "devices-imx31.h" #include "devices.h" static unsigned int moboard_pins[] = {
@@ -139,11 +139,11 @@ static struct imxuart_platform_data uart4_pdata = { .flags = IMXUART_HAVE_RTSCTS, }; -static struct imxi2c_platform_data moboard_i2c0_pdata = { +static const struct imxi2c_platform_data moboard_i2c0_data__initconst = { .bitrate =400000 , }; -static struct imxi2c_platform_data moboard_i2c1_pdata = { +static const struct imxi2c_platform_data moboard_i2c1_data__initconst = { .bitrate =100000 , };
@@ -499,8 +499,8 @@ static void __init mxc_board_init(void)mxc_register_device (&mxc_uart_device4, &uart4_pdata); -mxc_register_device (&mxc_i2c_device0, &moboard_i2c0_pdata); -mxc_register_device (&mxc_i2c_device1, &moboard_i2c1_pdata); +imx31_add_imx_i2c0 (&moboard_i2c0_data); +imx31_add_imx_i2c1 (&moboard_i2c1_data);mxc_register_device (&mxc_spi_device1, &moboard_spi1_master);mxc_register_device (&mxc_spi_device2, &moboard_spi2_master);
arch/arm/mach-mx3/mach-pcm037.c +4 -5
@@ -41,7 +41,6 @@#include <asm/mach/map.h> #include <mach/common.h> #include <mach/hardware.h> -#include <mach/i2c.h> #include <mach/imx-uart.h> #include <mach/iomux-mx3.h> #include <mach/ipu.h>
@@ -280,11 +279,11 @@ pcm037_nand_board_info __initconst = { .hw_ecc = 1, }; -static struct imxi2c_platform_data pcm037_i2c_1_data = { +static const struct imxi2c_platform_data pcm037_i2c1_data__initconst = { .bitrate =100000 , }; -static struct imxi2c_platform_data pcm037_i2c_2_data = { +static const struct imxi2c_platform_data pcm037_i2c2_data__initconst = { .bitrate =20000 , };
@@ -630,8 +629,8 @@ static void __init mxc_board_init(void)i2c_register_board_info (1 , pcm037_i2c_devices,ARRAY_SIZE (pcm037_i2c_devices)); -mxc_register_device (&mxc_i2c_device1, &pcm037_i2c_1_data); -mxc_register_device (&mxc_i2c_device2, &pcm037_i2c_2_data); +imx31_add_imx_i2c1 (&pcm037_i2c1_data); +imx31_add_imx_i2c2 (&pcm037_i2c2_data);imx31_add_mxc_nand (&pcm037_nand_board_info);mxc_register_device (&mxcsdhc_device0, &sdhc_pdata);
arch/arm/plat-mxc/include/mach/mx31.h +2 -2
@@ -23,7 +23,7 @@#define MX31_ETB_SLOT4_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x10000)#define MX31_ETB_SLOT5_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x14000)#define MX31_ECT_CTIO_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x18000) -#define MX31_I2C_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x80000) +#define MX31_I2C1_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x80000)#define MX31_I2C3_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x84000)#define MX31_OTG_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x88000)#define MX31_ATA_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x8c000)
@@ -145,7 +145,7 @@ static inline void mx31_setup_weimcs(size_t cs,#define MX31_INT_FIRI 7#define MX31_INT_MMC_SDHC2 8#define MX31_INT_MMC_SDHC1 9 -#define MX31_INT_I2C 10 +#define MX31_INT_I2C1 10#define MX31_INT_SSI2 11#define MX31_INT_SSI1 12#define MX31_INT_CSPI2 13
Signature · 1 line
1.7.1
PATCH 47/61 ARM: imx: dynamically register imx-i2c devices (imx35)
In reply to Uwe Kleine-König--- arch/arm/mach-mx3/Kconfig | 1 + arch/arm/mach-mx3/devices-imx35.h | 7 ++++ arch/arm/mach-mx3/devices.c | 59 --------------------------------- arch/arm/mach-mx3/devices.h | 5 --- arch/arm/mach-mx3/mach-pcm043.c | 7 +--- arch/arm/plat-mxc/include/mach/mx35.h | 4 +- 6 files changed, 12 insertions(+), 71 deletions(-)
arch/arm/mach-mx3/Kconfig +1 -0
@@ -103,6 +103,7 @@ config MACH_QONG config MACH_PCM043 bool "Support Phytec pcm043 (i.MX35) platforms" select ARCH_MX35 + select IMX_HAVE_PLATFORM_IMX_I2C select IMX_HAVE_PLATFORM_MXC_NAND select MXC_ULPI if USB_ULPI help
arch/arm/mach-mx3/devices-imx35.h +7 -0
@@ -9,5 +9,12 @@#include <mach/mx35.h> #include <mach/devices-common.h> +#define imx35_add_imx_i2c0 (pdata) \ + imx_add_imx_i2c(0, MX35_I2C1_BASE_ADDR, SZ_4K, MX35_INT_I2C1, pdata) +#define imx35_add_imx_i2c1 (pdata) \ + imx_add_imx_i2c(1, MX35_I2C2_BASE_ADDR, SZ_4K, MX35_INT_I2C2, pdata) +#define imx35_add_imx_i2c2 (pdata) \ + imx_add_imx_i2c(2, MX35_I2C3_BASE_ADDR, SZ_4K, MX35_INT_I2C3, pdata) +#define imx35_add_mxc_nand (pdata) \ imx_add_mxc_nand_v21(MX35_NFC_BASE_ADDR, MX35_INT_NANDFC, pdata)
arch/arm/mach-mx3/devices.c +0 -59
65 lines not on this page · raw message
arch/arm/mach-mx3/devices.h +0 -5
@@ -5,11 +5,6 @@ extern struct platform_device mxc_uart_device2;extern struct platform_device mxc_uart_device3;extern struct platform_device mxc_uart_device4;extern struct platform_device mxc_w1_master_device; -#if defined(CONFIG_ARCH_MX35 ) -extern struct platform_device mxc_i2c_device0; -extern struct platform_device mxc_i2c_device1; -extern struct platform_device mxc_i2c_device2; -#endif extern struct platform_device mx3_ipu;extern struct platform_device mx3_fb;extern struct platform_device mx3_camera;
arch/arm/mach-mx3/mach-pcm043.c +2 -5
@@ -37,9 +37,6 @@#include <mach/hardware.h> #include <mach/common.h> #include <mach/imx-uart.h> -#if definedCONFIG_I2C_IMX || definedCONFIG_I2C_IMX_MODULE -#include <mach/i2c.h> -#endif #include <mach/iomux-mx35.h> #include <mach/ipu.h> #include <mach/mx3fb.h>
@@ -123,7 +120,7 @@ static struct imxuart_platform_data uart_pdata = { };#if definedCONFIG_I2C_IMX || definedCONFIG_I2C_IMX_MODULE -static struct imxi2c_platform_data pcm043_i2c_1_data = { +static const struct imxi2c_platform_data pcm043_i2c0_data__initconst = { .bitrate =50000 , };
@@ -368,7 +365,7 @@ static void __init mxc_board_init(void)i2c_register_board_info (0 , pcm043_i2c_devices,ARRAY_SIZE (pcm043_i2c_devices)); -mxc_register_device (&mxc_i2c_device0, &pcm043_i2c_1_data); +imx35_add_imx_i2c0 (&pcm043_i2c0_data);#endif mxc_register_device (&mx3_ipu, &mx3_ipu_data);
arch/arm/plat-mxc/include/mach/mx35.h +2 -2
@@ -18,7 +18,7 @@#define MX35_ETB_SLOT4_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0x10000)#define MX35_ETB_SLOT5_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0x14000)#define MX35_ECT_CTIO_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0x18000) -#define MX35_I2C_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0x80000) +#define MX35_I2C1_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0x80000)#define MX35_I2C3_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0x84000)#define MX35_UART1_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0x90000)#define MX35_UART2_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0x94000)
@@ -123,7 +123,7 @@#define MX35_INT_MMC_SDHC1 7#define MX35_INT_MMC_SDHC2 8#define MX35_INT_MMC_SDHC3 9 -#define MX35_INT_I2C 10 +#define MX35_INT_I2C1 10#define MX35_INT_SSI1 11#define MX35_INT_SSI2 12#define MX35_INT_CSPI2 13
Signature · 1 line
1.7.1
PATCH 48/61 ARM: imx: dynamically register spi_imx devices (generic part)
In reply to Uwe Kleine-König--- arch/arm/plat-mxc/devices/Kconfig | 3 ++ arch/arm/plat-mxc/devices/Makefile | 1 + arch/arm/plat-mxc/devices/platform-spi_imx.c | 30 +++++++++++++++++++++++ arch/arm/plat-mxc/include/mach/devices-common.h | 5 ++++ 4 files changed, 39 insertions(+), 0 deletions(-) create mode 100644 arch/arm/plat-mxc/devices/platform-spi_imx.c
arch/arm/plat-mxc/devices/Kconfig +3 -0
@@ -3,3 +3,6 @@ config IMX_HAVE_PLATFORM_IMX_I2C config IMX_HAVE_PLATFORM_MXC_NAND bool + +config IMX_HAVE_PLATFORM_SPI_IMX + bool
arch/arm/plat-mxc/devices/Makefile +1 -0
@@ -1,2 +1,3 @@ obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_I2C) += platform-imx-i2c.o obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_NAND) += platform-mxc_nand.o +obj-$(CONFIG_IMX_HAVE_PLATFORM_SPI_IMX) += platform-spi_imx.o
arch/arm/plat-mxc/devices/platform-spi_imx.c new file +30 -0
@@ -0,0 +1,30 @@ +/* +* Copyright (C) 2009-2010 Pengutronix +* Uwe Kleine-Koenig <[email protected]> +* +* 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. +*/ +#include <asm/sizes.h> +#include <mach/devices-common.h> + +struct platform_device *__init imx_add_spi_imx (int id, +resource_size_t iobase,resource_size_t iosize,int irq, +const struct spi_imx_master *pdata) +{ +struct resource res[] = { + { + .start = iobase, + .end = iobase + iosize -1 , + .flags =IORESOURCE_MEM , + }, { + .start = irq, + .end = irq, + .flags =IORESOURCE_IRQ , + }, + }; + +return imx_add_platform_device ("spi_imx" , id, res,ARRAY_SIZE (res), + pdata,sizeof (*pdata)); +}
arch/arm/plat-mxc/include/mach/devices-common.h +5 -0
@@ -24,3 +24,8 @@ struct platform_device *__init imx_add_mxc_nand_v1(resource_size_t iobase, int irq, const struct mxc_nand_platform_data *pdata);struct platform_device *__init imx_add_mxc_nand_v21 (resource_size_t iobase,int irq,const struct mxc_nand_platform_data *pdata); + +#include <mach/spi.h> +struct platform_device *__init imx_add_spi_imx (int id, +resource_size_t iobase,resource_size_t iosize,int irq, +const struct spi_imx_master *pdata);
Signature · 1 line
1.7.1
PATCH 49/61 ARM: imx: dynamically register spi_imx devices (imx21)
In reply to Uwe Kleine-König--- arch/arm/mach-imx/devices-imx21.h | 5 +++++ arch/arm/mach-imx/devices.c | 3 +-- arch/arm/mach-imx/devices.h | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-)
arch/arm/mach-imx/devices-imx21.h +5 -0
@@ -14,3 +14,8 @@#define imx21_add_mxc_nand (pdata) \ imx_add_mxc_nand_v1(MX21_NFC_BASE_ADDR, MX21_INT_NANDFC, pdata) + +#define imx21_add_spi_imx0 (pdata) \ + imx_add_spi_imx(0, MX21_CSPI1_BASE_ADDR, SZ_4K, MX21_INT_CSPI1, pdata) +#define imx21_add_spi_imx1 (pdata) \ + imx_add_spi_imx(1, MX21_CSPI2_BASE_ADDR, SZ_4K, MX21_INT_CSPI2, pdata)
arch/arm/mach-imx/devices.c +1 -2
@@ -225,6 +225,7 @@ int __init imx1_register_gpios(void)* - i.MX21: 2 channel * - i.MX27: 3 channel */ +#ifdef CONFIG_MACH_MX27 #define DEFINE_IMX_SPI_DEVICE (n, baseaddr, irq) \ static struct resource mxc_spi_resources ## n[] = { \ { \
@@ -247,8 +248,6 @@ int __init imx1_register_gpios(void)DEFINE_IMX_SPI_DEVICE (0 , MX2x_CSPI1_BASE_ADDR, MX2x_INT_CSPI1);DEFINE_IMX_SPI_DEVICE (1 , MX2x_CSPI2_BASE_ADDR, MX2x_INT_CSPI2); - -#ifdef CONFIG_MACH_MX27 DEFINE_IMX_SPI_DEVICE (2 ,MX27_CSPI3_BASE_ADDR ,MX27_INT_CSPI3 );#endif
arch/arm/mach-imx/devices.h +1 -1
@@ -34,9 +34,9 @@ extern struct platform_device mxc_otg_udc_device;extern struct platform_device mxc_otg_host;extern struct platform_device mxc_usbh1;extern struct platform_device mxc_usbh2; +#ifdef CONFIG_MACH_MX27 extern struct platform_device mxc_spi_device0;extern struct platform_device mxc_spi_device1; -#ifdef CONFIG_MACH_MX27 extern struct platform_device mxc_spi_device2;#endif extern struct platform_device mx21_usbhc_device;
Signature · 1 line
1.7.1
PATCH 50/61 ARM: imx: dynamically register spi_imx devices (imx25)
In reply to Uwe Kleine-König--- arch/arm/mach-mx25/devices-imx25.h | 7 ++++ arch/arm/mach-mx25/devices.c | 57 --------------------------------- arch/arm/mach-mx25/devices.h | 3 -- arch/arm/plat-mxc/include/mach/mx25.h | 8 ++++- 4 files changed, 14 insertions(+), 61 deletions(-)
arch/arm/mach-mx25/devices-imx25.h +7 -0
@@ -18,3 +18,10 @@#define imx25_add_mxc_nand (pdata) \ imx_add_mxc_nand_v21(MX25_NFC_BASE_ADDR, MX25_INT_NANDFC, pdata) + +#define imx25_add_spi_imx0 (pdata) \ + imx_add_spi_imx(0, MX25_CSPI1_BASE_ADDR, SZ_16K, MX25_INT_CSPI1, pdata) +#define imx25_add_spi_imx1 (pdata) \ + imx_add_spi_imx(1, MX25_CSPI2_BASE_ADDR, SZ_16K, MX25_INT_CSPI2, pdata) +#define imx25_add_spi_imx2 (pdata) \ + imx_add_spi_imx(2, MX25_CSPI3_BASE_ADDR, SZ_16K, MX25_INT_CSPI3, pdata)
arch/arm/mach-mx25/devices.c +0 -57
63 lines not on this page · raw message
arch/arm/mach-mx25/devices.h +0 -3
@@ -6,9 +6,6 @@ extern struct platform_device mxc_uart_device4;extern struct platform_device mxc_otg;extern struct platform_device otg_udc_device;extern struct platform_device mxc_usbh2; -extern struct platform_device mxc_spi_device0; -extern struct platform_device mxc_spi_device1; -extern struct platform_device mxc_spi_device2;extern struct platform_device mxc_pwm_device0;extern struct platform_device mxc_pwm_device1;extern struct platform_device mxc_pwm_device2;
arch/arm/plat-mxc/include/mach/mx25.h +7 -1
@@ -14,6 +14,7 @@#define MX25_I2C1_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0x80000)#define MX25_I2C3_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0x84000)#define MX25_I2C2_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0x98000) +#define MX25_CSPI1_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0xa4000)#define MX25_IOMUXC_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0xac000)#define MX25_CRM_BASE_ADDR (MX25_AIPS2_BASE_ADDR + 0x80000)
@@ -33,18 +34,23 @@#define MX25_UART1_BASE_ADDR 0x43f90000#define MX25_UART2_BASE_ADDR 0x43f94000 +#define MX25_CSPI3_BASE_ADDR 0x50004000 +#define MX25_CSPI2_BASE_ADDR 0x50010000#define MX25_FEC_BASE_ADDR 0x50038000#define MX25_NFC_BASE_ADDR 0xbb000000#define MX25_DRYICE_BASE_ADDR 0x53ffc000#define MX25_LCDC_BASE_ADDR 0x53fbc000 +#define MX25_INT_CSPI3 0#define MX25_INT_I2C1 3#define MX25_INT_I2C2 4#define MX25_INT_I2C3 10 +#define MX25_INT_CSPI2 13 +#define MX25_INT_CSPI1 14#define MX25_INT_DRYICE 25 -#define MX25_INT_FEC 57#define MX25_INT_NANDFC 33#define MX25_INT_LCDC 39 +#define MX25_INT_FEC 57#if defined(IMX_NEEDS_DEPRECATED_SYMBOLS )#define UART1_BASE_ADDR MX25_UART1_BASE_ADDR
Signature · 1 line
1.7.1
PATCH 51/61 ARM: imx: dynamically register spi_imx devices (imx27)
In reply to Uwe Kleine-König--- arch/arm/mach-imx/Kconfig | 3 ++ arch/arm/mach-imx/devices-imx27.h | 7 +++++ arch/arm/mach-imx/devices.c | 33 -------------------------- arch/arm/mach-imx/devices.h | 5 ---- arch/arm/mach-imx/eukrea_mbimx27-baseboard.c | 5 ++- arch/arm/mach-imx/mach-pca100.c | 7 +---- arch/arm/mach-imx/mach-pcm038.c | 5 +-- 7 files changed, 17 insertions(+), 48 deletions(-)
arch/arm/mach-imx/Kconfig +3 -0
@@ -92,6 +92,7 @@ config MACH_PCM038 bool "Phytec phyCORE-i.MX27 CPU module (pcm038)" select IMX_HAVE_PLATFORM_IMX_I2C select IMX_HAVE_PLATFORM_MXC_NAND + select IMX_HAVE_PLATFORM_SPI_IMX select MXC_ULPI if USB_ULPI help Include support for phyCORE-i.MX27 (aka pcm038) platform. This
@@ -134,6 +135,7 @@ choice config MACH_EUKREA_MBIMX27_BASEBOARD prompt "Eukrea MBIMX27 development board" bool + select IMX_HAVE_PLATFORM_SPI_IMX help This adds board specific devices that can be found on Eukrea's MBIMX27 evaluation board.
@@ -156,6 +158,7 @@ config MACH_PCA100 bool "Phytec phyCARD-s (pca100)" select IMX_HAVE_PLATFORM_IMX_I2C select IMX_HAVE_PLATFORM_MXC_NAND + select IMX_HAVE_PLATFORM_SPI_IMX select MXC_ULPI if USB_ULPI help Include support for phyCARD-s (aka pca100) platform. This
arch/arm/mach-imx/devices-imx27.h +7 -0
@@ -16,3 +16,10 @@#define imx27_add_mxc_nand (pdata) \ imx_add_mxc_nand_v1(MX27_NFC_BASE_ADDR, MX27_INT_NANDFC, pdata) + +#define imx27_add_spi_imx0 (pdata) \ + imx_add_spi_imx(0, MX27_CSPI1_BASE_ADDR, SZ_4K, MX27_INT_CSPI1, pdata) +#define imx27_add_spi_imx1 (pdata) \ + imx_add_spi_imx(1, MX27_CSPI2_BASE_ADDR, SZ_4K, MX27_INT_CSPI2, pdata) +#define imx27_add_spi_imx2 (pdata) \ + imx_add_spi_imx(2, MX27_CSPI3_BASE_ADDR, SZ_4K, MX27_INT_CSPI3, pdata)
arch/arm/mach-imx/devices.c +0 -33
@@ -219,39 +219,6 @@ int __init imx1_register_gpios(void)#if defined(CONFIG_MACH_MX21 ) || defined(CONFIG_MACH_MX27 )/* -* SPI master controller -* -* - i.MX1: 2 channel (slighly different register setting) -* - i.MX21: 2 channel -* - i.MX27: 3 channel -*/ -#ifdef CONFIG_MACH_MX27 -#define DEFINE_IMX_SPI_DEVICE (n, baseaddr, irq) \ - static struct resource mxc_spi_resources ## n[] = { \ - { \ - .start = baseaddr, \ - .end = baseaddr + SZ_4K - 1, \ - .flags = IORESOURCE_MEM, \ - }, { \ - .start = irq, \ - .end = irq, \ - .flags = IORESOURCE_IRQ, \ - }, \ - }; \ - \ - struct platform_device mxc_spi_device ## n = { \ - .name = "spi_imx", \ - .id = n, \ - .num_resources = ARRAY_SIZE(mxc_spi_resources ## n), \ - .resource = mxc_spi_resources ## n, \ - } - -DEFINE_IMX_SPI_DEVICE (0 , MX2x_CSPI1_BASE_ADDR, MX2x_INT_CSPI1); -DEFINE_IMX_SPI_DEVICE (1 , MX2x_CSPI2_BASE_ADDR, MX2x_INT_CSPI2); -DEFINE_IMX_SPI_DEVICE (2 ,MX27_CSPI3_BASE_ADDR ,MX27_INT_CSPI3 ); -#endif - -/* * General Purpose Timer * - i.MX21: 3 timers * - i.MX27: 6 timers
arch/arm/mach-imx/devices.h +0 -5
@@ -34,11 +34,6 @@ extern struct platform_device mxc_otg_udc_device;extern struct platform_device mxc_otg_host;extern struct platform_device mxc_usbh1;extern struct platform_device mxc_usbh2; -#ifdef CONFIG_MACH_MX27 -extern struct platform_device mxc_spi_device0; -extern struct platform_device mxc_spi_device1; -extern struct platform_device mxc_spi_device2; -#endif extern struct platform_device mx21_usbhc_device;extern struct platform_device imx_ssi_device0;extern struct platform_device imx_ssi_device1;
arch/arm/mach-imx/eukrea_mbimx27-baseboard.c +3 -2
@@ -34,6 +34,7 @@#include <mach/mmc.h> #include <mach/imx-uart.h> +#include "devices-imx27.h" #include "devices.h" static int eukrea_mbimx27_pins[] = {
@@ -201,7 +202,7 @@ static struct spi_board_info eukrea_mbimx27_spi_board_info[] __initdata = {static int eukrea_mbimx27_spi_cs[] = {GPIO_PORTD |28 }; -static struct spi_imx_master eukrea_mbimx27_spi_0_data = { +static const struct spi_imx_master eukrea_mbimx27_spi0_data__initconst = { .chipselect = eukrea_mbimx27_spi_cs, .num_chipselect =ARRAY_SIZE (eukrea_mbimx27_spi_cs), };
@@ -233,7 +234,7 @@ void __init eukrea_mbimx27_baseboard_init(void)/* SPI and ADS7846 Touchscreen controler init */ mxc_gpio_mode (GPIO_PORTD |28 |GPIO_GPIO |GPIO_OUT );mxc_gpio_mode (GPIO_PORTD |25 |GPIO_GPIO |GPIO_IN ); -mxc_register_device (&mxc_spi_device0, &eukrea_mbimx27_spi_0_data); +imx27_add_spi_imx0 (&eukrea_mbimx27_spi0_data);spi_register_board_info (eukrea_mbimx27_spi_board_info,ARRAY_SIZE (eukrea_mbimx27_spi_board_info));ads7846_dev_init ();
arch/arm/mach-imx/mach-pca100.c +2 -5
@@ -37,9 +37,6 @@#include <mach/hardware.h> #include <mach/iomux-mx27.h> #include <asm/mach/time.h> -#if defined(CONFIG_SPI_IMX ) || defined(CONFIG_SPI_IMX_MODULE ) -#include <mach/spi.h> -#endif #include <mach/imx-uart.h> #include <mach/audmux.h> #include <mach/ssi.h>
@@ -192,7 +189,7 @@ static struct spi_board_info pca100_spi_board_info[] __initdata = {static int pca100_spi_cs[] = {GPIO_PORTD +28 ,GPIO_PORTD +27 }; -static struct spi_imx_master pca100_spi_0_data = { +static const struct spi_imx_master pca100_spi0_data__initconst = { .chipselect = pca100_spi_cs, .num_chipselect =ARRAY_SIZE (pca100_spi_cs), };
@@ -347,7 +344,7 @@ static void __init pca100_init(void)#if defined(CONFIG_SPI_IMX ) || defined(CONFIG_SPI_IMX_MODULE )spi_register_board_info (pca100_spi_board_info,ARRAY_SIZE (pca100_spi_board_info)); -mxc_register_device (&mxc_spi_device0, &pca100_spi_0_data); +imx27_add_spi_imx0 (&pca100_spi_0_data);#endif gpio_request (OTG_PHY_CS_GPIO ,"usb-otg-cs" );
arch/arm/mach-imx/mach-pcm038.c +2 -3
@@ -38,7 +38,6 @@#include <mach/iomux-mx27.h> #include <mach/imx-uart.h> #include <mach/mxc_nand.h> -#include <mach/spi.h> #include <mach/mxc_ehci.h> #include <mach/ulpi.h>
@@ -216,7 +215,7 @@ static struct i2c_board_info pcm038_i2c_devices[] = {static int pcm038_spi_cs[] = {GPIO_PORTD +28 }; -static struct spi_imx_master pcm038_spi_0_data = { +static const struct spi_imx_master pcm038_spi0_data__initconst = { .chipselect = pcm038_spi_cs, .num_chipselect =ARRAY_SIZE (pcm038_spi_cs), };
@@ -327,7 +326,7 @@ static void __init pcm038_init(void)/* MC13783 IRQ */ mxc_gpio_mode (GPIO_PORTB |23 |GPIO_GPIO |GPIO_IN ); -mxc_register_device (&mxc_spi_device0, &pcm038_spi_0_data); +imx27_add_spi_imx0 (&pcm038_spi0_data);spi_register_board_info (pcm038_spi_board_info,ARRAY_SIZE (pcm038_spi_board_info));
Signature · 1 line
1.7.1
PATCH 1/1 ARM: imx/pca100: Fix name of spi platform data
Commit
7536cf9 (ARM: imx: dynamically register spi_imx devices (imx27))
introduced a variable named "pca100_spi0_data" but passed "&pca100_spi_0_data" to imx27_add_spi_imx0. This wasn't noticed earlier because both SPI_IMX and MACH_PCA100 are not enabled in mx27_defconfig.
This fixes a build failure:
arch/arm/mach-imx/mach-pca100.c: In function 'pca100_init': arch/arm/mach-imx/mach-pca100.c:411: error: 'pca100_spi_0_data' undeclared (first use in this function) arch/arm/mach-imx/mach-pca100.c:411: error: (Each undeclared identifier is reported only once arch/arm/mach-imx/mach-pca100.c:411: error: for each function it appears in.)
---
KernelVersion: v2.6.35-rc1-49-g7536cf9
arch/arm/mach-imx/mach-pca100.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
arch/arm/mach-imx/mach-pca100.c +1 -1
@@ -408,7 +408,7 @@ static void __init pca100_init(void)mxc_gpio_mode (GPIO_PORTD |27 |GPIO_GPIO |GPIO_IN );spi_register_board_info (pca100_spi_board_info,ARRAY_SIZE (pca100_spi_board_info)); -imx27_add_spi_imx0 (&pca100_spi_0_data); +imx27_add_spi_imx0 (&pca100_spi0_data);#endif gpio_request (OTG_PHY_CS_GPIO ,"usb-otg-cs" );
Signature · 1 line
1.7.1
PATCH 52/61 ARM: imx: dynamically register spi_imx devices (imx31)
In reply to Uwe Kleine-König--- arch/arm/mach-mx3/Kconfig | 4 ++++ arch/arm/mach-mx3/devices-imx31.h | 7 +++++++ arch/arm/mach-mx3/devices.c | 2 +- arch/arm/mach-mx3/devices.h | 2 ++ arch/arm/mach-mx3/mach-mx31_3ds.c | 5 ++--- arch/arm/mach-mx3/mach-mx31lilly.c | 10 +++++----- arch/arm/mach-mx3/mach-mx31lite.c | 5 ++--- arch/arm/mach-mx3/mach-mx31moboard.c | 8 ++++---- arch/arm/mach-mx3/mx31lite-db.c | 6 +++--- 9 files changed, 30 insertions(+), 19 deletions(-)
arch/arm/mach-mx3/Kconfig +4 -0
@@ -55,6 +55,7 @@ config MACH_MX31LITE select ARCH_MX31 select MXC_ULPI if USB_ULPI select IMX_HAVE_PLATFORM_MXC_NAND + select IMX_HAVE_PLATFORM_SPI_IMX help Include support for MX31 LITEKIT platform. This includes specific configurations for the board and its peripherals.
@@ -63,6 +64,7 @@ config MACH_MX31_3DS bool "Support MX31PDK (3DS)" select ARCH_MX31 select IMX_HAVE_PLATFORM_MXC_NAND + select IMX_HAVE_PLATFORM_SPI_IMX help Include support for MX31PDK (3DS) platform. This includes specific configurations for the board and its peripherals.
@@ -80,6 +82,7 @@ config MACH_MX31MOBOARD bool "Support mx31moboard platforms (EPFL Mobots group)" select ARCH_MX31 select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_SPI_IMX select MXC_ULPI if USB_ULPI help Include support for mx31moboard platform. This includes specific
@@ -88,6 +91,7 @@ config MACH_MX31MOBOARD config MACH_MX31LILLY bool "Support MX31 LILLY-1131 platforms (INCO startec)" select ARCH_MX31 + select IMX_HAVE_PLATFORM_SPI_IMX select MXC_ULPI if USB_ULPI help Include support for mx31 based LILLY1131 modules. This includes
arch/arm/mach-mx3/devices-imx31.h +7 -0
@@ -18,3 +18,10 @@#define imx31_add_mxc_nand (pdata) \ imx_add_mxc_nand_v1(MX31_NFC_BASE_ADDR, MX31_INT_NANDFC, pdata) + +#define imx31_add_spi_imx0 (pdata) \ + imx_add_spi_imx(0, MX31_CSPI1_BASE_ADDR, SZ_4K, MX31_INT_CSPI1, pdata) +#define imx31_add_spi_imx1 (pdata) \ + imx_add_spi_imx(1, MX31_CSPI2_BASE_ADDR, SZ_4K, MX31_INT_CSPI2, pdata) +#define imx31_add_spi_imx2 (pdata) \ + imx_add_spi_imx(2, MX31_CSPI3_BASE_ADDR, SZ_4K, MX31_INT_CSPI3, pdata)
arch/arm/mach-mx3/devices.c +1 -1
@@ -379,6 +379,7 @@ struct platform_device mxc_usbh2 = { .num_resources = ARRAY_SIZE(mxc_usbh2_resources), }; +#if defined(CONFIG_ARCH_MX35 )/* * SPI master controller * 3 channels
@@ -440,7 +441,6 @@ struct platform_device mxc_spi_device2 = { .resource = mxc_spi_2_resources, }; -#ifdef CONFIG_ARCH_MX35static struct resource mxc_fec_resources[] = { { .start =MXC_FEC_BASE_ADDR ,
arch/arm/mach-mx3/devices.h +2 -0
@@ -16,9 +16,11 @@ extern struct platform_device mxc_otg_host;extern struct platform_device mxc_usbh1;extern struct platform_device mxc_usbh2;extern struct platform_device mxc_rnga_device; +#if defined(CONFIG_ARCH_MX35 )extern struct platform_device mxc_spi_device0;extern struct platform_device mxc_spi_device1;extern struct platform_device mxc_spi_device2; +#endif extern struct platform_device imx_ssi_device0;extern struct platform_device imx_ssi_device1;extern struct platform_device imx_ssi_device1;
arch/arm/mach-mx3/mach-mx31_3ds.c +2 -3
@@ -35,7 +35,6 @@#include <mach/common.h> #include <mach/imx-uart.h> #include <mach/iomux-mx3.h> -#include <mach/spi.h> #include "devices-imx31.h" #include "devices.h"
@@ -170,7 +169,7 @@ static int spi1_internal_chipselect[] = { MXC_SPI_CS(2), }; -static struct spi_imx_master spi1_pdata = { +static const struct spi_imx_master spi1_pdata__initconst = { .chipselect = spi1_internal_chipselect, .num_chipselect =ARRAY_SIZE (spi1_internal_chipselect), };
@@ -419,7 +418,7 @@ static void __init mxc_board_init(void)mxc_register_device (&mxc_uart_device0, &uart_pdata);imx31_add_mxc_nand (&mx31_3ds_nand_board_info); -mxc_register_device (&mxc_spi_device1, &spi1_pdata); +imx31_add_spi_imx0 (&spi1_pdata);spi_register_board_info (mx31_3ds_spi_devs,ARRAY_SIZE (mx31_3ds_spi_devs));
arch/arm/mach-mx3/mach-mx31lilly.c +5 -5
@@ -42,10 +42,10 @@#include <mach/common.h> #include <mach/iomux-mx3.h> #include <mach/board-mx31lilly.h> -#include <mach/spi.h> #include <mach/mxc_ehci.h> #include <mach/ulpi.h> +#include "devices-imx31.h" #include "devices.h" /*
@@ -265,12 +265,12 @@ static int spi_internal_chipselect[] = { MXC_SPI_CS(2), }; -static struct spi_imx_master spi0_pdata = { +static const struct spi_imx_master spi0_pdata__initconst = { .chipselect = spi_internal_chipselect, .num_chipselect =ARRAY_SIZE (spi_internal_chipselect), }; -static struct spi_imx_master spi1_pdata = { +static const struct spi_imx_master spi1_pdata__initconst = { .chipselect = spi_internal_chipselect, .num_chipselect =ARRAY_SIZE (spi_internal_chipselect), };
@@ -327,8 +327,8 @@ static void __init mx31lilly_board_init(void)mxc_iomux_alloc_pin (MX31_PIN_CSPI2_SS1__SS1 ,"SPI2_SS1" );mxc_iomux_alloc_pin (MX31_PIN_CSPI2_SS2__SS2 ,"SPI2_SS2" ); -mxc_register_device (&mxc_spi_device0, &spi0_pdata); -mxc_register_device (&mxc_spi_device1, &spi1_pdata); +imx31_add_spi_imx0 (&spi0_pdata); +imx31_add_spi_imx1 (&spi1_pdata);spi_register_board_info (&mc13783_dev,1 );platform_add_devices (devices,ARRAY_SIZE (devices));
arch/arm/mach-mx3/mach-mx31lite.c +2 -3
@@ -41,7 +41,6 @@#include <mach/imx-uart.h> #include <mach/iomux-mx3.h> #include <mach/irqs.h> -#include <mach/spi.h> #include <mach/mxc_ehci.h> #include <mach/ulpi.h>
@@ -109,7 +108,7 @@ static int spi_internal_chipselect[] = { MXC_SPI_CS(0), }; -static struct spi_imx_master spi1_pdata = { +static const struct spi_imx_master spi1_pdata__initconst = { .chipselect = spi_internal_chipselect, .num_chipselect =ARRAY_SIZE (spi_internal_chipselect), };
@@ -252,7 +251,7 @@ static void __init mxc_board_init(void)platform_device_register (&physmap_flash_device);imx31_add_mxc_nand (&mx31lite_nand_board_info); -mxc_register_device (&mxc_spi_device1, &spi1_pdata); +imx31_add_spi_imx1 (&spi1_pdata);spi_register_board_info (&mc13783_spi_dev,1 );#if defined(CONFIG_USB_ULPI )
arch/arm/mach-mx3/mach-mx31moboard.c +4 -4
@@ -152,7 +152,7 @@ static int moboard_spi1_cs[] = { MXC_SPI_CS(2), }; -static struct spi_imx_master moboard_spi1_master = { +static const struct spi_imx_master moboard_spi1_pdata__initconst = { .chipselect = moboard_spi1_cs, .num_chipselect =ARRAY_SIZE (moboard_spi1_cs), };
@@ -282,7 +282,7 @@ static int moboard_spi2_cs[] = { MXC_SPI_CS(1), }; -static struct spi_imx_master moboard_spi2_master = { +static const struct spi_imx_master moboard_spi2_pdata__initconst = { .chipselect = moboard_spi2_cs, .num_chipselect =ARRAY_SIZE (moboard_spi2_cs), };
@@ -502,8 +502,8 @@ static void __init mxc_board_init(void)imx31_add_imx_i2c0 (&moboard_i2c0_data);imx31_add_imx_i2c1 (&moboard_i2c1_data); -mxc_register_device (&mxc_spi_device1, &moboard_spi1_master); -mxc_register_device (&mxc_spi_device2, &moboard_spi2_master); +imx31_add_spi_imx1 (&moboard_spi1_pdata); +imx31_add_spi_imx2 (&moboard_spi2_pdata);gpio_request (IOMUX_TO_GPIO (MX31_PIN_GPIO1_3 ),"pmic-irq" );gpio_direction_input (IOMUX_TO_GPIO (MX31_PIN_GPIO1_3 ));
arch/arm/mach-mx3/mx31lite-db.c +3 -3
@@ -37,8 +37,8 @@#include <mach/iomux-mx3.h> #include <mach/board-mx31lite.h> #include <mach/mmc.h> -#include <mach/spi.h> +#include "devices-imx31.h" #include "devices.h" /*
@@ -157,7 +157,7 @@ static int spi_internal_chipselect[] = { MXC_SPI_CS(2), }; -static struct spi_imx_master spi0_pdata = { +static const struct spi_imx_master spi0_pdata__initconst = { .chipselect = spi_internal_chipselect, .num_chipselect =ARRAY_SIZE (spi_internal_chipselect), };
@@ -199,7 +199,7 @@ void __init mx31lite_db_init(void) "development board pins");mxc_register_device (&mxc_uart_device0, &uart_pdata);mxc_register_device (&mxcsdhc_device0, &mmc_pdata); -mxc_register_device (&mxc_spi_device0, &spi0_pdata); +imx31_add_spi_imx0 (&spi0_pdata);platform_device_register (&litekit_led_device);mxc_register_device (&imx_wdt_device0,NULL );mxc_register_device (&imx_rtc_device0,NULL );
Signature · 1 line
1.7.1
PATCH 53/61 ARM: imx: dynamically register spi_imx devices (imx35)
In reply to Uwe Kleine-König--- arch/arm/mach-mx3/Kconfig | 1 + arch/arm/mach-mx3/devices-imx35.h | 5 +++ arch/arm/mach-mx3/devices.c | 61 ----------------------------------- arch/arm/mach-mx3/devices.h | 5 --- arch/arm/mach-mx3/mach-pcm037_eet.c | 7 +--- 5 files changed, 8 insertions(+), 71 deletions(-)
arch/arm/mach-mx3/Kconfig +1 -0
@@ -45,6 +45,7 @@ config MACH_PCM037 config MACH_PCM037_EET bool "Support pcm037 EET board extensions" depends on MACH_PCM037 + select IMX_HAVE_PLATFORM_SPI_IMX help Add support for PCM037 EET baseboard extensions. If you are using the OLED display with EET, use "video=mx3fb:CMEL-OLED" kernel
arch/arm/mach-mx3/devices-imx35.h +5 -0
@@ -18,3 +18,8 @@#define imx35_add_mxc_nand (pdata) \ imx_add_mxc_nand_v21(MX35_NFC_BASE_ADDR, MX35_INT_NANDFC, pdata) + +#define imx35_add_spi_imx0 (pdata) \ + imx_add_spi_imx(0, MX35_CSPI1_BASE_ADDR, SZ_4K, MX35_INT_CSPI1, pdata) +#define imx35_add_spi_imx1 (pdata) \ + imx_add_spi_imx(1, MX35_CSPI2_BASE_ADDR, SZ_4K, MX35_INT_CSPI2, pdata)
arch/arm/mach-mx3/devices.c +0 -61
67 lines not on this page · raw message
arch/arm/mach-mx3/devices.h +0 -5
@@ -16,11 +16,6 @@ extern struct platform_device mxc_otg_host;extern struct platform_device mxc_usbh1;extern struct platform_device mxc_usbh2;extern struct platform_device mxc_rnga_device; -#if defined(CONFIG_ARCH_MX35 ) -extern struct platform_device mxc_spi_device0; -extern struct platform_device mxc_spi_device1; -extern struct platform_device mxc_spi_device2; -#endif extern struct platform_device imx_ssi_device0;extern struct platform_device imx_ssi_device1;extern struct platform_device imx_ssi_device1;
arch/arm/mach-mx3/mach-pcm037_eet.c +2 -5
@@ -13,9 +13,6 @@#include <linux/spi/spi.h> #include <mach/common.h> -#if defined(CONFIG_SPI_IMX ) || defined(CONFIG_SPI_IMX_MODULE ) -#include <mach/spi.h> -#endif #include <mach/iomux-mx3.h> #include <asm/mach-types.h>
@@ -64,7 +61,7 @@ static struct spi_board_info pcm037_spi_dev[] = {#if defined(CONFIG_SPI_IMX ) || defined(CONFIG_SPI_IMX_MODULE )static int pcm037_spi1_cs[] = {MXC_SPI_CS (1 ),IOMUX_TO_GPIO (MX31_PIN_KEY_COL7 )}; -struct spi_imx_master pcm037_spi1_master = { +static const struct spi_imx_master pcm037_spi1_pdata__initconst = { .chipselect = pcm037_spi1_cs, .num_chipselect =ARRAY_SIZE (pcm037_spi1_cs), };
@@ -184,7 +181,7 @@ static int eet_init_devices(void)/* SPI */ spi_register_board_info (pcm037_spi_dev,ARRAY_SIZE (pcm037_spi_dev));#if defined(CONFIG_SPI_IMX ) || defined(CONFIG_SPI_IMX_MODULE ) -mxc_register_device (&mxc_spi_device0, &pcm037_spi1_master); +imx35_add_spi_imx0 (&pcm037_spi1_pdata);#endif platform_device_register (&pcm037_gpio_keys_device);
Signature · 1 line
1.7.1
PATCH 54/61 ARM: imx: dynamically register imx-uart devices (generic part)
In reply to Uwe Kleine-König--- arch/arm/plat-mxc/devices/Kconfig | 3 + arch/arm/plat-mxc/devices/Makefile | 1 + arch/arm/plat-mxc/devices/platform-imx-uart.c | 60 +++++++++++++++++++++++ arch/arm/plat-mxc/include/mach/devices-common.h | 11 ++++ 4 files changed, 75 insertions(+), 0 deletions(-) create mode 100644 arch/arm/plat-mxc/devices/platform-imx-uart.c
arch/arm/plat-mxc/devices/Kconfig +3 -0
@@ -1,6 +1,9 @@ config IMX_HAVE_PLATFORM_IMX_I2C bool +config IMX_HAVE_PLATFORM_IMX_UART + bool + config IMX_HAVE_PLATFORM_MXC_NAND bool
arch/arm/plat-mxc/devices/Makefile +1 -0
@@ -1,3 +1,4 @@ obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_I2C) += platform-imx-i2c.o +obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_UART) += platform-imx-uart.o obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_NAND) += platform-mxc_nand.o obj-$(CONFIG_IMX_HAVE_PLATFORM_SPI_IMX) += platform-spi_imx.o
arch/arm/plat-mxc/devices/platform-imx-uart.c new file +60 -0
60 lines not on this page · raw message
arch/arm/plat-mxc/include/mach/devices-common.h +11 -0
@@ -19,6 +19,17 @@ struct platform_device *__init imx_add_imx_i2c(int id, resource_size_t iobase, resource_size_t iosize, int irq, const struct imxi2c_platform_data *pdata); +#include <mach/imx-uart.h> +struct platform_device *__init imx_add_imx_uart_3irq (int id, +resource_size_t iobase,resource_size_t iosize, +resource_size_t irqrx,resource_size_t irqtx, +resource_size_t irqrts, +const struct imxuart_platform_data *pdata); +struct platform_device *__init imx_add_imx_uart_1irq (int id, +resource_size_t iobase,resource_size_t iosize, +resource_size_t irq, +const struct imxuart_platform_data *pdata); +#include <mach/mxc_nand.h> struct platform_device *__init imx_add_mxc_nand_v1 (resource_size_t iobase,int irq,const struct mxc_nand_platform_data *pdata);
Signature · 1 line
1.7.1
PATCH 55/61 ARM: imx: dynamically register imx-uart devices (imx1)
In reply to Uwe Kleine-König--- arch/arm/mach-imx/Kconfig | 2 ++ arch/arm/mach-imx/devices-imx1.h | 5 +++++ arch/arm/mach-imx/devices.c | 31 ------------------------------- arch/arm/mach-imx/devices.h | 2 -- arch/arm/mach-imx/mach-mx1ads.c | 17 ++++++++--------- arch/arm/mach-imx/mach-scb9328.c | 6 +++--- arch/arm/plat-mxc/include/mach/mx1.h | 24 ++++++++++++------------ 7 files changed, 30 insertions(+), 57 deletions(-)
arch/arm/mach-imx/Kconfig +2 -0
@@ -17,11 +17,13 @@ config ARCH_MX1ADS bool "MX1ADS platform" select MACH_MXLADS select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_IMX_UART help Say Y here if you are using Motorola MX1ADS/MXLADS boards config MACH_SCB9328 bool "Synertronixx scb9328" + select IMX_HAVE_PLATFORM_IMX_UART help Say Y here if you are using a Synertronixx scb9328 board
arch/arm/mach-imx/devices-imx1.h +5 -0
@@ -11,3 +11,8 @@#define imx1_add_i2c_imx (pdata) \ imx_add_imx_i2c(0, MX1_I2C_BASE_ADDR, SZ_4K, MX1_INT_I2C, pdata) + +#define imx1_add_imx_uart0 (pdata) \ + imx_add_imx_uart_3irq(0, MX1_UART1_BASE_ADDR, 0xd0, MX1_INT_UART1RX, MX1_INT_UART1TX, MX1_INT_UART1RTS, pdata) +#define imx1_add_imx_uart1 (pdata) \ + imx_add_imx_uart_3irq(0, MX1_UART2_BASE_ADDR, 0xd0, MX1_INT_UART2RX, MX1_INT_UART2TX, MX1_INT_UART2RTS, pdata)
arch/arm/mach-imx/devices.c +0 -31
@@ -70,37 +70,6 @@ struct platform_device imx1_camera_device = { .num_resources = ARRAY_SIZE(imx1_camera_resources), }; -#define DEFINE_IMX1_UART_DEVICE (n, baseaddr, irqrx, irqtx, irqrts) \ - static struct resource imx1_uart_resources ## n[] = { \ - { \ - .start = baseaddr, \ - .end = baseaddr + 0xd0, \ - .flags = IORESOURCE_MEM, \ - }, { \ - .start = irqrx, \ - .end = irqrx, \ - .flags = IORESOURCE_IRQ, \ - }, { \ - .start = irqtx, \ - .end = irqtx, \ - .flags = IORESOURCE_IRQ, \ - }, { \ - .start = irqrts, \ - .end = irqrts, \ - .flags = IORESOURCE_IRQ, \ - }, \ - }; \ - \ - struct platform_device imx1_uart_device ## n = { \ - .name = "imx-uart", \ - .id = n, \ - .num_resources = ARRAY_SIZE(imx1_uart_resources ## n), \ - .resource = imx1_uart_resources ## n, \ - } - -DEFINE_IMX1_UART_DEVICE (0 ,MX1_UART1_BASE_ADDR ,MX1_UART1_MINT_RX ,MX1_UART1_MINT_TX ,MX1_UART1_MINT_RTS ); -DEFINE_IMX1_UART_DEVICE (1 ,MX1_UART2_BASE_ADDR ,MX1_UART2_MINT_RX ,MX1_UART2_MINT_TX ,MX1_UART2_MINT_RTS ); -static struct resource imx_rtc_resources[] = { { .start =0x00204000 ,
arch/arm/mach-imx/devices.h +0 -2
@@ -1,7 +1,5 @@#ifdef CONFIG_ARCH_MX1 extern struct platform_device imx1_camera_device; -extern struct platform_device imx1_uart_device0; -extern struct platform_device imx1_uart_device1;extern struct platform_device imx_rtc_device;extern struct platform_device imx_wdt_device;extern struct platform_device imx_usb_device;
arch/arm/mach-imx/mach-mx1ads.c +8 -9
@@ -26,7 +26,6 @@#include <mach/common.h> #include <mach/hardware.h> #include <mach/i2c.h> -#include <mach/imx-uart.h> #include <mach/iomux-mx1.h> #include <mach/irqs.h>
@@ -59,12 +58,12 @@ static int mx1ads_pins[] = {* UARTs platform data */ -static struct imxuart_platform_data uart_pdata[] = { - { - .flags =IMXUART_HAVE_RTSCTS , - }, { - .flags =IMXUART_HAVE_RTSCTS , - }, +static const struct imxuart_platform_data uart0_pdata__initconst = { + .flags =IMXUART_HAVE_RTSCTS , +}; + +static const struct imxuart_platform_data uart1_pdata__initconst = { + .flags =IMXUART_HAVE_RTSCTS , };/*
@@ -122,8 +121,8 @@ static void __init mx1ads_init(void) ARRAY_SIZE(mx1ads_pins), "mx1ads");/* UART */ -mxc_register_device (&imx1_uart_device0, &uart_pdata[0 ]); -mxc_register_device (&imx1_uart_device1, &uart_pdata[1 ]); +imx1_add_imx_uart0 (&uart0_pdata); +imx1_add_imx_uart1 (&uart1_pdata);/* Physmap flash */ mxc_register_device (&flash_device, &mx1ads_flash_data);
arch/arm/mach-imx/mach-scb9328.c +3 -3
@@ -22,9 +22,9 @@#include <mach/common.h> #include <mach/hardware.h> #include <mach/irqs.h> -#include <mach/imx-uart.h> #include <mach/iomux-mx1.h> +#include "devices-imx1.h" #include "devices.h" /*
@@ -114,7 +114,7 @@ static void uart1_mxc_exit(struct platform_device *pdev) ARRAY_SIZE(mxc_uart1_pins)); } -static struct imxuart_platform_data uart_pdata = { +static const struct imxuart_platform_data uart_pdata__initconst = { .init = uart1_mxc_init, .exit = uart1_mxc_exit, .flags =IMXUART_HAVE_RTSCTS ,
@@ -130,7 +130,7 @@ static struct platform_device *devices[] __initdata = {*/ static void __init scb9328_init (void ) { -mxc_register_device (&imx1_uart_device0, &uart_pdata); +imx1_add_imx_uart0 (&uart_pdata);printk (KERN_INFO "Scb9328: Adding devices\n" );platform_add_devices (devices,ARRAY_SIZE (devices));
arch/arm/plat-mxc/include/mach/mx1.h +12 -12
@@ -91,18 +91,18 @@#define MX1_SIM_DATA_INT 16#define MX1_RTC_INT 17#define MX1_RTC_SAMINT 18 -#define MX1_UART2_MINT_PFERR 19 -#define MX1_UART2_MINT_RTS 20 -#define MX1_UART2_MINT_DTR 21 -#define MX1_UART2_MINT_UARTC 22 -#define MX1_UART2_MINT_TX 23 -#define MX1_UART2_MINT_RX 24 -#define MX1_UART1_MINT_PFERR 25 -#define MX1_UART1_MINT_RTS 26 -#define MX1_UART1_MINT_DTR 27 -#define MX1_UART1_MINT_UARTC 28 -#define MX1_UART1_MINT_TX 29 -#define MX1_UART1_MINT_RX 30 +#define MX1_INT_UART2PFERR 19 +#define MX1_INT_UART2RTS 20 +#define MX1_INT_UART2DTR 21 +#define MX1_INT_UART2UARTC 22 +#define MX1_INT_UART2TX 23 +#define MX1_INT_UART2RX 24 +#define MX1_INT_UART1PFERR 25 +#define MX1_INT_UART1RTS 26 +#define MX1_INT_UART1DTR 27 +#define MX1_INT_UART1UARTC 28 +#define MX1_INT_UART1TX 29 +#define MX1_INT_UART1RX 30#define MX1_VOICE_DAC_INT 31#define MX1_VOICE_ADC_INT 32#define MX1_PEN_DATA_INT 33
Signature · 1 line
1.7.1
PATCH 56/61 ARM: imx: dynamically register imx-uart devices (imx21)
In reply to Uwe Kleine-König--- arch/arm/mach-imx/Kconfig | 1 + arch/arm/mach-imx/devices-imx21.h | 9 +++++++++ arch/arm/mach-imx/devices.c | 3 +-- arch/arm/mach-imx/devices.h | 2 +- arch/arm/mach-imx/mach-mx21ads.c | 12 +++++------- 5 files changed, 17 insertions(+), 10 deletions(-)
arch/arm/mach-imx/Kconfig +1 -0
@@ -71,6 +71,7 @@ comment "MX21 platforms:" config MACH_MX21ADS bool "MX21ADS platform" + select IMX_HAVE_PLATFORM_IMX_UART select IMX_HAVE_PLATFORM_MXC_NAND help Include support for MX21ADS platform. This includes specific
arch/arm/mach-imx/devices-imx21.h +9 -0
@@ -12,6 +12,15 @@#define imx21_add_i2c_imx (pdata) \ imx_add_imx_i2c(0, MX2x_I2C_BASE_ADDR, SZ_4K, MX2x_INT_I2C, pdata) +#define imx21_add_imx_uart0 (pdata) \ + imx_add_imx_uart_1irq(0, MX21_UART1_BASE_ADDR, SZ_4K, MX21_INT_UART1, pdata) +#define imx21_add_imx_uart1 (pdata) \ + imx_add_imx_uart_1irq(1, MX21_UART2_BASE_ADDR, SZ_4K, MX21_INT_UART2, pdata) +#define imx21_add_imx_uart2 (pdata) \ + imx_add_imx_uart_1irq(2, MX21_UART3_BASE_ADDR, SZ_4K, MX21_INT_UART3, pdata) +#define imx21_add_imx_uart3 (pdata) \ + imx_add_imx_uart_1irq(3, MX21_UART4_BASE_ADDR, SZ_4K, MX21_INT_UART4, pdata) +#define imx21_add_mxc_nand (pdata) \ imx_add_mxc_nand_v1(MX21_NFC_BASE_ADDR, MX21_INT_NANDFC, pdata)
arch/arm/mach-imx/devices.c +1 -2
@@ -483,6 +483,7 @@ struct platform_device mxc_usbh2 = {DEFINE_IMX_SSI_DEVICE (0 ,1 , MX2x_SSI1_BASE_ADDR, MX2x_INT_SSI1);DEFINE_IMX_SSI_DEVICE (1 ,2 , MX2x_SSI1_BASE_ADDR, MX2x_INT_SSI1); +#ifdef CONFIG_MACH_MX27 #define DEFINE_IMX2x_UART_DEVICE (n, baseaddr, irq) \ static struct resource imx2x_uart_resources ## n[] = { \ { \
@@ -507,8 +508,6 @@ DEFINE_IMX2x_UART_DEVICE(0, MX2x_UART1_BASE_ADDR, MX2x_INT_UART1);DEFINE_IMX2x_UART_DEVICE (1 , MX2x_UART2_BASE_ADDR, MX2x_INT_UART2);DEFINE_IMX2x_UART_DEVICE (2 , MX2x_UART3_BASE_ADDR, MX2x_INT_UART3);DEFINE_IMX2x_UART_DEVICE (3 , MX2x_UART4_BASE_ADDR, MX2x_INT_UART4); - -#ifdef CONFIG_MACH_MX27 DEFINE_IMX2x_UART_DEVICE (4 ,MX27_UART5_BASE_ADDR ,MX27_INT_UART5 );DEFINE_IMX2x_UART_DEVICE (5 ,MX27_UART6_BASE_ADDR ,MX27_INT_UART6 );#endif
arch/arm/mach-imx/devices.h +1 -1
@@ -14,11 +14,11 @@ extern struct platform_device mxc_gpt4;extern struct platform_device mxc_gpt5;#endif extern struct platform_device mxc_wdt; +#ifdef CONFIG_MACH_MX27 extern struct platform_device imx2x_uart_device0;extern struct platform_device imx2x_uart_device1;extern struct platform_device imx2x_uart_device2;extern struct platform_device imx2x_uart_device3; -#ifdef CONFIG_MACH_MX27 extern struct platform_device imx2x_uart_device4;extern struct platform_device imx2x_uart_device5;#endif
arch/arm/mach-imx/mach-mx21ads.c +5 -7
@@ -24,7 +24,6 @@#include <asm/mach/arch.h> #include <asm/mach/time.h> #include <asm/mach/map.h> -#include <mach/imx-uart.h> #include <mach/imxfb.h> #include <mach/iomux-mx21.h> #include <mach/mxc_nand.h>
@@ -164,14 +163,13 @@ static struct platform_device mx21ads_nor_mtd_device = { .resource = &mx21ads_flash_resource, }; -static struct imxuart_platform_data uart_pdata = { +static const struct imxuart_platform_data uart_pdata_rts__initconst = { .flags =IMXUART_HAVE_RTSCTS , }; -static struct imxuart_platform_data uart_norts_pdata = { +static const struct imxuart_platform_data uart_pdata_norts__initconst = { }; -static int mx21ads_fb_init (struct platform_device *pdev) {u16 tmp;
@@ -295,9 +293,9 @@ static void __init mx21ads_board_init(void)mxc_gpio_setup_multiple_pins (mx21ads_pins,ARRAY_SIZE (mx21ads_pins),"mx21ads" ); -mxc_register_device (&imx2x_uart_device0, &uart_pdata); -mxc_register_device (&imx2x_uart_device2, &uart_norts_pdata); -mxc_register_device (&imx2x_uart_device3, &uart_pdata); +imx21_add_imx_uart0 (&uart_pdata_rts); +imx21_add_imx_uart2 (&uart_pdata_norts); +imx21_add_imx_uart3 (&uart_pdata_rts);mxc_register_device (&mxc_fb_device, &mx21ads_fb_data);mxc_register_device (&mxc_sdhc_device0, &mx21ads_sdhc_pdata);imx21_add_mxc_nand (&mx21ads_nand_board_info);
Signature · 1 line
1.7.1
PATCH 57/61 ARM: imx: dynamically register imx-uart devices (imx25)
In reply to Uwe Kleine-König--- arch/arm/mach-mx25/Kconfig | 1 + arch/arm/mach-mx25/devices-imx25.h | 11 ++++ arch/arm/mach-mx25/devices.c | 95 --------------------------------- arch/arm/mach-mx25/devices.h | 5 -- arch/arm/mach-mx25/mach-mx25_3ds.c | 5 +- arch/arm/plat-mxc/include/mach/mx25.h | 8 +++ 6 files changed, 22 insertions(+), 103 deletions(-)
arch/arm/mach-mx25/Kconfig +1 -0
@@ -4,6 +4,7 @@ comment "MX25 platforms:" config MACH_MX25_3DS bool "Support MX25PDK (3DS) Platform" + select IMX_HAVE_PLATFORM_IMX_UART select IMX_HAVE_PLATFORM_MXC_NAND endif
arch/arm/mach-mx25/devices-imx25.h +11 -0
@@ -16,6 +16,17 @@#define imx25_add_imx_i2c2 (pdata) \ imx_add_imx_i2c(2, MX25_I2C3_BASE_ADDR, SZ_16K, MX25_INT_I2C3, pdata) +#define imx25_add_imx_uart0 (pdata) \ + imx_add_imx_uart_1irq(0, MX25_UART1_BASE_ADDR, SZ_16K, MX25_INT_UART1, pdata) +#define imx25_add_imx_uart1 (pdata) \ + imx_add_imx_uart_1irq(1, MX25_UART2_BASE_ADDR, SZ_16K, MX25_INT_UART2, pdata) +#define imx25_add_imx_uart2 (pdata) \ + imx_add_imx_uart_1irq(2, MX25_UART3_BASE_ADDR, SZ_16K, MX25_INT_UART3, pdata) +#define imx25_add_imx_uart3 (pdata) \ + imx_add_imx_uart_1irq(3, MX25_UART4_BASE_ADDR, SZ_16K, MX25_INT_UART4, pdata) +#define imx25_add_imx_uart4 (pdata) \ + imx_add_imx_uart_1irq(4, MX25_UART5_BASE_ADDR, SZ_16K, MX25_INT_UART5, pdata) +#define imx25_add_mxc_nand (pdata) \ imx_add_mxc_nand_v21(MX25_NFC_BASE_ADDR, MX25_INT_NANDFC, pdata)
arch/arm/mach-mx25/devices.c +0 -95
101 lines not on this page · raw message
arch/arm/mach-mx25/devices.h +0 -5
@@ -1,8 +1,3 @@ -extern struct platform_device mxc_uart_device0; -extern struct platform_device mxc_uart_device1; -extern struct platform_device mxc_uart_device2; -extern struct platform_device mxc_uart_device3; -extern struct platform_device mxc_uart_device4;extern struct platform_device mxc_otg;extern struct platform_device otg_udc_device;extern struct platform_device mxc_usbh2;
arch/arm/mach-mx25/mach-mx25_3ds.c +2 -3
@@ -38,7 +38,6 @@#include <asm/memory.h> #include <asm/mach/map.h> #include <mach/common.h> -#include <mach/imx-uart.h> #include <mach/mx25.h> #include <mach/imxfb.h> #include <mach/iomux-mx25.h>
@@ -46,7 +45,7 @@#include "devices-imx25.h" #include "devices.h" -static struct imxuart_platform_data uart_pdata = { +static const struct imxuart_platform_data uart_pdata__initconst = { .flags =IMXUART_HAVE_RTSCTS , };
@@ -150,7 +149,7 @@ static void __init mx25pdk_init(void)mxc_iomux_v3_setup_multiple_pads (mx25pdk_pads,ARRAY_SIZE (mx25pdk_pads)); -mxc_register_device (&mxc_uart_device0, &uart_pdata); +imx25_add_imx_uart0 (&uart_pdata);mxc_register_device (&mxc_usbh2,NULL );imx25_add_mxc_nand (&mx25pdk_nand_board_info);mxc_register_device (&mx25_rtc_device,NULL );
arch/arm/plat-mxc/include/mach/mx25.h +8 -0
@@ -33,6 +33,9 @@#define MX25_UART1_BASE_ADDR 0x43f90000#define MX25_UART2_BASE_ADDR 0x43f94000 +#define MX25_UART3_BASE_ADDR 0x5000c000 +#define MX25_UART4_BASE_ADDR 0x50008000 +#define MX25_UART5_BASE_ADDR 0x5002c000#define MX25_CSPI3_BASE_ADDR 0x50004000#define MX25_CSPI2_BASE_ADDR 0x50010000
@@ -44,12 +47,17 @@#define MX25_INT_CSPI3 0#define MX25_INT_I2C1 3#define MX25_INT_I2C2 4 +#define MX25_INT_UART4 5#define MX25_INT_I2C3 10#define MX25_INT_CSPI2 13#define MX25_INT_CSPI1 14 +#define MX25_INT_UART3 18#define MX25_INT_DRYICE 25 +#define MX25_INT_UART2 32#define MX25_INT_NANDFC 33#define MX25_INT_LCDC 39 +#define MX25_INT_UART5 40 +#define MX25_INT_UART1 45#define MX25_INT_FEC 57#if defined(IMX_NEEDS_DEPRECATED_SYMBOLS )
Signature · 1 line
1.7.1
PATCH 58/61 ARM: imx: dynamically register imx-uart devices (imx27)
In reply to Uwe Kleine-König--- arch/arm/mach-imx/Kconfig | 8 +++++++ arch/arm/mach-imx/devices-imx27.h | 13 +++++++++++ arch/arm/mach-imx/devices.c | 29 -------------------------- arch/arm/mach-imx/devices.h | 8 ------- arch/arm/mach-imx/eukrea_mbimx27-baseboard.c | 14 +++--------- arch/arm/mach-imx/mach-cpuimx27.c | 13 +++-------- arch/arm/mach-imx/mach-imx27lite.c | 6 ++-- arch/arm/mach-imx/mach-mx27_3ds.c | 6 ++-- arch/arm/mach-imx/mach-mx27ads.c | 29 +++++++------------------ arch/arm/mach-imx/mach-mxt_td60.c | 17 ++++---------- arch/arm/mach-imx/mach-pca100.c | 5 +-- arch/arm/mach-imx/mach-pcm038.c | 17 ++++---------- 12 files changed, 55 insertions(+), 110 deletions(-)
arch/arm/mach-imx/Kconfig +8 -0
@@ -86,6 +86,7 @@ comment "MX27 platforms:" config MACH_MX27ADS bool "MX27ADS platform" select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_IMX_UART select IMX_HAVE_PLATFORM_MXC_NAND help Include support for MX27ADS platform. This includes specific
@@ -94,6 +95,7 @@ config MACH_MX27ADS config MACH_PCM038 bool "Phytec phyCORE-i.MX27 CPU module (pcm038)" select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_IMX_UART select IMX_HAVE_PLATFORM_MXC_NAND select IMX_HAVE_PLATFORM_SPI_IMX select MXC_ULPI if USB_ULPI
@@ -118,6 +120,7 @@ endchoice config MACH_CPUIMX27 bool "Eukrea CPUIMX27 module" select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_IMX_UART select IMX_HAVE_PLATFORM_MXC_NAND help Include support for Eukrea CPUIMX27 platform. This includes
@@ -138,6 +141,7 @@ choice config MACH_EUKREA_MBIMX27_BASEBOARD prompt "Eukrea MBIMX27 development board" bool + select IMX_HAVE_PLATFORM_IMX_UART select IMX_HAVE_PLATFORM_SPI_IMX help This adds board specific devices that can be found on Eukrea's
@@ -147,12 +151,14 @@ endchoice config MACH_MX27_3DS bool "MX27PDK platform" + select IMX_HAVE_PLATFORM_IMX_UART help Include support for MX27PDK platform. This includes specific configurations for the board and its peripherals. config MACH_IMX27LITE bool "LogicPD MX27 LITEKIT platform" + select IMX_HAVE_PLATFORM_IMX_UART help Include support for MX27 LITEKIT platform. This includes specific configurations for the board and its peripherals.
@@ -160,6 +166,7 @@ config MACH_IMX27LITE config MACH_PCA100 bool "Phytec phyCARD-s (pca100)" select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_IMX_UART select IMX_HAVE_PLATFORM_MXC_NAND select IMX_HAVE_PLATFORM_SPI_IMX select MXC_ULPI if USB_ULPI
@@ -170,6 +177,7 @@ config MACH_PCA100 config MACH_MXT_TD60 bool "Maxtrack i-MXT TD60" select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_IMX_UART select IMX_HAVE_PLATFORM_MXC_NAND help Include support for i-MXT (aka td60) platform. This
arch/arm/mach-imx/devices-imx27.h +13 -0
@@ -14,6 +14,19 @@#define imx27_add_i2c_imx1 (pdata) \ imx_add_imx_i2c(1, MX27_I2C2_BASE_ADDR, SZ_4K, MX27_INT_I2C2, pdata) +#define imx27_add_imx_uart0 (pdata) \ + imx_add_imx_uart_1irq(0, MX27_UART1_BASE_ADDR, SZ_4K, MX27_INT_UART1, pdata) +#define imx27_add_imx_uart1 (pdata) \ + imx_add_imx_uart_1irq(1, MX27_UART2_BASE_ADDR, SZ_4K, MX27_INT_UART2, pdata) +#define imx27_add_imx_uart2 (pdata) \ + imx_add_imx_uart_1irq(2, MX27_UART3_BASE_ADDR, SZ_4K, MX27_INT_UART3, pdata) +#define imx27_add_imx_uart3 (pdata) \ + imx_add_imx_uart_1irq(3, MX27_UART4_BASE_ADDR, SZ_4K, MX27_INT_UART4, pdata) +#define imx27_add_imx_uart4 (pdata) \ + imx_add_imx_uart_1irq(4, MX27_UART5_BASE_ADDR, SZ_4K, MX27_INT_UART5, pdata) +#define imx27_add_imx_uart5 (pdata) \ + imx_add_imx_uart_1irq(5, MX27_UART6_BASE_ADDR, SZ_4K, MX27_INT_UART6, pdata) +#define imx27_add_mxc_nand (pdata) \ imx_add_mxc_nand_v1(MX27_NFC_BASE_ADDR, MX27_INT_NANDFC, pdata)
arch/arm/mach-imx/devices.c +0 -29
@@ -483,35 +483,6 @@ struct platform_device mxc_usbh2 = {DEFINE_IMX_SSI_DEVICE (0 ,1 , MX2x_SSI1_BASE_ADDR, MX2x_INT_SSI1);DEFINE_IMX_SSI_DEVICE (1 ,2 , MX2x_SSI1_BASE_ADDR, MX2x_INT_SSI1); -#ifdef CONFIG_MACH_MX27 -#define DEFINE_IMX2x_UART_DEVICE (n, baseaddr, irq) \ - static struct resource imx2x_uart_resources ## n[] = { \ - { \ - .start = baseaddr, \ - .end = baseaddr + 0xb5, \ - .flags = IORESOURCE_MEM, \ - }, { \ - .start = irq, \ - .end = irq, \ - .flags = IORESOURCE_IRQ, \ - }, \ - }; \ - \ - struct platform_device imx2x_uart_device ## n = { \ - .name = "imx-uart", \ - .id = n, \ - .num_resources = ARRAY_SIZE(imx2x_uart_resources ## n), \ - .resource = imx2x_uart_resources ## n, \ - } - -DEFINE_IMX2x_UART_DEVICE (0 , MX2x_UART1_BASE_ADDR, MX2x_INT_UART1); -DEFINE_IMX2x_UART_DEVICE (1 , MX2x_UART2_BASE_ADDR, MX2x_INT_UART2); -DEFINE_IMX2x_UART_DEVICE (2 , MX2x_UART3_BASE_ADDR, MX2x_INT_UART3); -DEFINE_IMX2x_UART_DEVICE (3 , MX2x_UART4_BASE_ADDR, MX2x_INT_UART4); -DEFINE_IMX2x_UART_DEVICE (4 ,MX27_UART5_BASE_ADDR ,MX27_INT_UART5 ); -DEFINE_IMX2x_UART_DEVICE (5 ,MX27_UART6_BASE_ADDR ,MX27_INT_UART6 ); -#endif -/* GPIO port description */ #define DEFINE_MXC_GPIO_PORT_IRQ (SOC , n, _irq) \ { \
arch/arm/mach-imx/devices.h +0 -8
@@ -14,14 +14,6 @@ extern struct platform_device mxc_gpt4;extern struct platform_device mxc_gpt5;#endif extern struct platform_device mxc_wdt; -#ifdef CONFIG_MACH_MX27 -extern struct platform_device imx2x_uart_device0; -extern struct platform_device imx2x_uart_device1; -extern struct platform_device imx2x_uart_device2; -extern struct platform_device imx2x_uart_device3; -extern struct platform_device imx2x_uart_device4; -extern struct platform_device imx2x_uart_device5; -#endif extern struct platform_device mxc_w1_master_device;extern struct platform_device mxc_fb_device;extern struct platform_device mxc_fec_device;
arch/arm/mach-imx/eukrea_mbimx27-baseboard.c +4 -10
@@ -32,7 +32,6 @@#include <mach/imxfb.h> #include <mach/hardware.h> #include <mach/mmc.h> -#include <mach/imx-uart.h> #include "devices-imx27.h" #include "devices.h"
@@ -154,13 +153,8 @@ static struct imx_fb_platform_data eukrea_mbimx27_fb_data = { .dmacr = 0x00040060, }; -static struct imxuart_platform_data uart_pdata[] = { - { - .flags =IMXUART_HAVE_RTSCTS , - }, - { - .flags =IMXUART_HAVE_RTSCTS , - }, +static const struct imxuart_platform_data uart_pdata__initconst = { + .flags =IMXUART_HAVE_RTSCTS , };#if defined(CONFIG_TOUCHSCREEN_ADS7846 )
@@ -223,8 +217,8 @@ void __init eukrea_mbimx27_baseboard_init(void)mxc_gpio_setup_multiple_pins (eukrea_mbimx27_pins,ARRAY_SIZE (eukrea_mbimx27_pins),"MBIMX27" ); -mxc_register_device (&imx2x_uart_device1, &uart_pdata[0 ]); -mxc_register_device (&imx2x_uart_device2, &uart_pdata[1 ]); +imx27_add_imx_uart1 (&uart_pdata); +imx27_add_imx_uart2 (&uart_pdata);mxc_register_device (&mxc_fb_device, &eukrea_mbimx27_fb_data);mxc_register_device (&mxc_sdhc_device0,NULL );
arch/arm/mach-imx/mach-cpuimx27.c +4 -9
@@ -36,7 +36,6 @@#include <mach/common.h> #include <mach/hardware.h> #include <mach/iomux-mx27.h> -#include <mach/imx-uart.h> #include <mach/mxc_nand.h> #include "devices-imx27.h"
@@ -111,12 +110,8 @@ static struct platform_device eukrea_cpuimx27_nor_mtd_device = { .resource = &eukrea_cpuimx27_flash_resource, }; -static struct imxuart_platform_data uart_pdata[] = { - { - .flags =IMXUART_HAVE_RTSCTS , - }, { - .flags =IMXUART_HAVE_RTSCTS , - }, +static const struct imxuart_platform_data uart_pdata__initconst = { + .flags =IMXUART_HAVE_RTSCTS , }; static const struct mxc_nand_platform_data
@@ -188,7 +183,7 @@ static void __init eukrea_cpuimx27_init(void)mxc_gpio_setup_multiple_pins (eukrea_cpuimx27_pins,ARRAY_SIZE (eukrea_cpuimx27_pins),"CPUIMX27" ); -mxc_register_device (&imx2x_uart_device0, &uart_pdata[0 ]); +imx27_add_imx_uart0 (&uart_pdata);imx27_add_mxc_nand (&cpuimx27_nand_board_info);
@@ -203,7 +198,7 @@ static void __init eukrea_cpuimx27_init(void)/* SDHC2 can be used for Wifi */ mxc_register_device (&mxc_sdhc_device1,NULL );/* in which case UART4 is also used for Bluetooth */ -mxc_register_device (&imx2x_uart_device3, &uart_pdata[1 ]); +imx27_add_imx_uart3 (&uart_pdata);#endif #if defined(CONFIG_SERIAL_8250 ) || defined(CONFIG_SERIAL_8250_MODULE )
arch/arm/mach-imx/mach-imx27lite.c +3 -3
@@ -22,9 +22,9 @@#include <asm/mach/map.h> #include <mach/hardware.h> #include <mach/common.h> -#include <mach/imx-uart.h> #include <mach/iomux-mx27.h> +#include "devices-imx27.h" #include "devices.h" static unsigned int mx27lite_pins[] = {
@@ -54,7 +54,7 @@ static unsigned int mx27lite_pins[] = { PF23_AIN_FEC_TX_EN, }; -static struct imxuart_platform_data uart_pdata = { +static const struct imxuart_platform_data uart_pdata__initconst = { .flags =IMXUART_HAVE_RTSCTS , };
@@ -66,7 +66,7 @@ static void __init mx27lite_init(void) {mxc_gpio_setup_multiple_pins (mx27lite_pins,ARRAY_SIZE (mx27lite_pins),"imx27lite" ); -mxc_register_device (&imx2x_uart_device0, &uart_pdata); +imx27_add_imx_uart0 (&uart_pdata);platform_add_devices (platform_devices,ARRAY_SIZE (platform_devices)); }
arch/arm/mach-imx/mach-mx27_3ds.c +3 -3
@@ -27,9 +27,9 @@#include <asm/mach/time.h> #include <mach/hardware.h> #include <mach/common.h> -#include <mach/imx-uart.h> #include <mach/iomux-mx27.h> +#include "devices-imx27.h" #include "devices.h" static unsigned int mx27pdk_pins[] = {
@@ -59,7 +59,7 @@ static unsigned int mx27pdk_pins[] = { PF23_AIN_FEC_TX_EN, }; -static struct imxuart_platform_data uart_pdata = { +static const struct imxuart_platform_data uart_pdata__initconst = { .flags =IMXUART_HAVE_RTSCTS , };
@@ -71,7 +71,7 @@ static void __init mx27pdk_init(void) {mxc_gpio_setup_multiple_pins (mx27pdk_pins,ARRAY_SIZE (mx27pdk_pins),"mx27pdk" ); -mxc_register_device (&imx2x_uart_device0, &uart_pdata); +imx27_add_imx_uart0 (&uart_pdata);platform_add_devices (platform_devices,ARRAY_SIZE (platform_devices)); }
arch/arm/mach-imx/mach-mx27ads.c +8 -21
@@ -28,7 +28,6 @@#include <asm/mach/time.h> #include <asm/mach/map.h> #include <mach/gpio.h> -#include <mach/imx-uart.h> #include <mach/iomux-mx27.h> #include <mach/mxc_nand.h> #include <mach/imxfb.h>
@@ -289,20 +288,8 @@ static struct platform_device *platform_devices[] __initdata = { &mxc_w1_master_device, }; -static struct imxuart_platform_data uart_pdata[] = { - { - .flags =IMXUART_HAVE_RTSCTS , - }, { - .flags =IMXUART_HAVE_RTSCTS , - }, { - .flags =IMXUART_HAVE_RTSCTS , - }, { - .flags =IMXUART_HAVE_RTSCTS , - }, { - .flags =IMXUART_HAVE_RTSCTS , - }, { - .flags =IMXUART_HAVE_RTSCTS , - }, +static const struct imxuart_platform_data uart_pdata__initconst = { + .flags =IMXUART_HAVE_RTSCTS , };static void __init mx27ads_board_init (void )
@@ -310,12 +297,12 @@ static void __init mx27ads_board_init(void)mxc_gpio_setup_multiple_pins (mx27ads_pins,ARRAY_SIZE (mx27ads_pins),"mx27ads" ); -mxc_register_device (&imx2x_uart_device0, &uart_pdata[0 ]); -mxc_register_device (&imx2x_uart_device1, &uart_pdata[1 ]); -mxc_register_device (&imx2x_uart_device2, &uart_pdata[2 ]); -mxc_register_device (&imx2x_uart_device3, &uart_pdata[3 ]); -mxc_register_device (&imx2x_uart_device4, &uart_pdata[4 ]); -mxc_register_device (&imx2x_uart_device5, &uart_pdata[5 ]); +imx27_add_imx_uart0 (&uart_pdata); +imx27_add_imx_uart1 (&uart_pdata); +imx27_add_imx_uart2 (&uart_pdata); +imx27_add_imx_uart3 (&uart_pdata); +imx27_add_imx_uart4 (&uart_pdata); +imx27_add_imx_uart5 (&uart_pdata);imx27_add_mxc_nand (&mx27ads_nand_board_info);/* only the i2c master 1 is used on this CPU card */
arch/arm/mach-imx/mach-mxt_td60.c +5 -12
@@ -28,7 +28,6 @@#include <asm/mach/time.h> #include <asm/mach/map.h> #include <linux/gpio.h> -#include <mach/imx-uart.h> #include <mach/iomux-mx27.h> #include <mach/mxc_nand.h> #include <linux/i2c/pca953x.h>
@@ -236,14 +235,8 @@ static struct platform_device *platform_devices[] __initdata = { &mxc_fec_device, }; -static struct imxuart_platform_data uart_pdata[] = { - { - .flags =IMXUART_HAVE_RTSCTS , - }, { - .flags =IMXUART_HAVE_RTSCTS , - }, { - .flags =IMXUART_HAVE_RTSCTS , - }, +static const struct imxuart_platform_data uart_pdata__initconst = { + .flags =IMXUART_HAVE_RTSCTS , };static void __init mxt_td60_board_init (void )
@@ -251,9 +244,9 @@ static void __init mxt_td60_board_init(void)mxc_gpio_setup_multiple_pins (mxt_td60_pins,ARRAY_SIZE (mxt_td60_pins),"MXT_TD60" ); -mxc_register_device (&imx2x_uart_device0, &uart_pdata[0 ]); -mxc_register_device (&imx2x_uart_device1, &uart_pdata[1 ]); -mxc_register_device (&imx2x_uart_device2, &uart_pdata[2 ]); +imx27_add_imx_uart0 (&uart_pdata); +imx27_add_imx_uart1 (&uart_pdata); +imx27_add_imx_uart2 (&uart_pdata);imx27_add_mxc_nand (&mxt_td60_nand_board_info); i2c_register_board_info(0, mxt_td60_i2c_devices,
arch/arm/mach-imx/mach-pca100.c +2 -3
@@ -37,7 +37,6 @@#include <mach/hardware.h> #include <mach/iomux-mx27.h> #include <asm/mach/time.h> -#include <mach/imx-uart.h> #include <mach/audmux.h> #include <mach/ssi.h> #include <mach/mxc_nand.h>
@@ -130,7 +129,7 @@ static int pca100_pins[] = { PD26_AF_USBH2_DATA5, }; -static struct imxuart_platform_data uart_pdata = { +static const struct imxuart_platform_data uart_pdata__initconst = { .flags =IMXUART_HAVE_RTSCTS , };
@@ -318,7 +317,7 @@ static void __init pca100_init(void)mxc_register_device (&imx_ssi_device0, &pca100_ssi_pdata); -mxc_register_device (&imx2x_uart_device0, &uart_pdata); +imx27_add_imx_uart0 (&uart_pdata);mxc_gpio_mode (GPIO_PORTC |29 |GPIO_GPIO |GPIO_IN );mxc_register_device (&mxc_sdhc_device1, &sdhc_pdata);
arch/arm/mach-imx/mach-pcm038.c +5 -12
@@ -36,7 +36,6 @@#include <mach/common.h> #include <mach/hardware.h> #include <mach/iomux-mx27.h> -#include <mach/imx-uart.h> #include <mach/mxc_nand.h> #include <mach/mxc_ehci.h> #include <mach/ulpi.h>
@@ -161,14 +160,8 @@ static struct platform_device pcm038_nor_mtd_device = { .resource = &pcm038_flash_resource, }; -static struct imxuart_platform_data uart_pdata[] = { - { - .flags =IMXUART_HAVE_RTSCTS , - }, { - .flags =IMXUART_HAVE_RTSCTS , - }, { - .flags =IMXUART_HAVE_RTSCTS , - }, +static const struct imxuart_platform_data uart_pdata__initconst = { + .flags =IMXUART_HAVE_RTSCTS , }; static const struct mxc_nand_platform_data
@@ -305,9 +298,9 @@ static void __init pcm038_init(void)pcm038_init_sram (); -mxc_register_device (&imx2x_uart_device0, &uart_pdata[0 ]); -mxc_register_device (&imx2x_uart_device1, &uart_pdata[1 ]); -mxc_register_device (&imx2x_uart_device2, &uart_pdata[2 ]); +imx27_add_imx_uart0 (&uart_pdata); +imx27_add_imx_uart1 (&uart_pdata); +imx27_add_imx_uart2 (&uart_pdata);mxc_gpio_mode (PE16_AF_OWIRE );imx27_add_mxc_nand (&pcm038_nand_board_info);
Signature · 1 line
1.7.1
PATCH 59/61 ARM: imx: dynamically register imx-uart devices (imx31)
In reply to Uwe Kleine-König--- arch/arm/mach-mx3/Kconfig | 9 ++++++ arch/arm/mach-mx3/devices-imx31.h | 11 +++++++ arch/arm/mach-mx3/devices.c | 43 +---------------------------- arch/arm/mach-mx3/devices.h | 5 +-- arch/arm/mach-mx3/mach-armadillo5x0.c | 7 ++--- arch/arm/mach-mx3/mach-kzm_arm11_01.c | 9 +++--- arch/arm/mach-mx3/mach-mx31_3ds.c | 5 +-- arch/arm/mach-mx3/mach-mx31ads.c | 5 +-- arch/arm/mach-mx3/mach-mx31lite.c | 1 - arch/arm/mach-mx3/mach-mx31moboard.c | 10 +++---- arch/arm/mach-mx3/mach-pcm037.c | 10 +++--- arch/arm/mach-mx3/mach-qong.c | 9 +++--- arch/arm/mach-mx3/mx31lilly-db.c | 10 +++--- arch/arm/mach-mx3/mx31lite-db.c | 5 +-- arch/arm/mach-mx3/mx31moboard-devboard.c | 6 ++-- arch/arm/mach-mx3/mx31moboard-smartbot.c | 7 ++--- 16 files changed, 62 insertions(+), 90 deletions(-)
arch/arm/mach-mx3/Kconfig +9 -0
@@ -16,6 +16,7 @@ config MACH_MX31ADS bool "Support MX31ADS platforms" select ARCH_MX31 select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_IMX_UART default y help Include support for MX31ADS platform. This includes specific
@@ -36,6 +37,7 @@ config MACH_PCM037 bool "Support Phytec pcm037 (i.MX31) platforms" select ARCH_MX31 select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_IMX_UART select IMX_HAVE_PLATFORM_MXC_NAND select MXC_ULPI if USB_ULPI help
@@ -55,6 +57,7 @@ config MACH_MX31LITE bool "Support MX31 LITEKIT (LogicPD)" select ARCH_MX31 select MXC_ULPI if USB_ULPI + select IMX_HAVE_PLATFORM_IMX_UART select IMX_HAVE_PLATFORM_MXC_NAND select IMX_HAVE_PLATFORM_SPI_IMX help
@@ -64,6 +67,7 @@ config MACH_MX31LITE config MACH_MX31_3DS bool "Support MX31PDK (3DS)" select ARCH_MX31 + select IMX_HAVE_PLATFORM_IMX_UART select IMX_HAVE_PLATFORM_MXC_NAND select IMX_HAVE_PLATFORM_SPI_IMX help
@@ -83,6 +87,7 @@ config MACH_MX31MOBOARD bool "Support mx31moboard platforms (EPFL Mobots group)" select ARCH_MX31 select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_IMX_UART select IMX_HAVE_PLATFORM_SPI_IMX select MXC_ULPI if USB_ULPI help
@@ -92,6 +97,7 @@ config MACH_MX31MOBOARD config MACH_MX31LILLY bool "Support MX31 LILLY-1131 platforms (INCO startec)" select ARCH_MX31 + select IMX_HAVE_PLATFORM_IMX_UART select IMX_HAVE_PLATFORM_SPI_IMX select MXC_ULPI if USB_ULPI help
@@ -101,6 +107,7 @@ config MACH_MX31LILLY config MACH_QONG bool "Support Dave/DENX QongEVB-LITE platform" select ARCH_MX31 + select IMX_HAVE_PLATFORM_IMX_UART help Include support for Dave/DENX QongEVB-LITE platform. This includes specific configurations for the board and its peripherals.
@@ -119,6 +126,7 @@ config MACH_ARMADILLO5X0 bool "Support Atmark Armadillo-500 Development Base Board" select ARCH_MX31 select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_IMX_UART select IMX_HAVE_PLATFORM_MXC_NAND select MXC_ULPI if USB_ULPI help
@@ -136,6 +144,7 @@ config MACH_MX35_3DS config MACH_KZM_ARM11_01 bool "Support KZM-ARM11-01(Kyoto Microcomputer)" select ARCH_MX31 + select IMX_HAVE_PLATFORM_IMX_UART help Include support for KZM-ARM11-01. This includes specific configurations for the board and its peripherals.
arch/arm/mach-mx3/devices-imx31.h +11 -0
@@ -16,6 +16,17 @@#define imx31_add_imx_i2c2 (pdata) \ imx_add_imx_i2c(2, MX31_I2C3_BASE_ADDR, SZ_4K, MX31_INT_I2C3, pdata) +#define imx31_add_imx_uart0 (pdata) \ + imx_add_imx_uart_1irq(0, MX31_UART1_BASE_ADDR, SZ_16K, MX31_INT_UART1, pdata) +#define imx31_add_imx_uart1 (pdata) \ + imx_add_imx_uart_1irq(1, MX31_UART2_BASE_ADDR, SZ_16K, MX31_INT_UART2, pdata) +#define imx31_add_imx_uart2 (pdata) \ + imx_add_imx_uart_1irq(2, MX31_UART3_BASE_ADDR, SZ_16K, MX31_INT_UART3, pdata) +#define imx31_add_imx_uart3 (pdata) \ + imx_add_imx_uart_1irq(3, MX31_UART4_BASE_ADDR, SZ_16K, MX31_INT_UART4, pdata) +#define imx31_add_imx_uart4 (pdata) \ + imx_add_imx_uart_1irq(4, MX31_UART5_BASE_ADDR, SZ_16K, MX31_INT_UART5, pdata) +#define imx31_add_mxc_nand (pdata) \ imx_add_mxc_nand_v1(MX31_NFC_BASE_ADDR, MX31_INT_NANDFC, pdata)
arch/arm/mach-mx3/devices.c +2 -41
59 lines not on this page · raw message
arch/arm/mach-mx3/devices.h +2 -3
@@ -1,9 +1,8 @@ - +#if defined(CONFIG_ARCH_MX35 )extern struct platform_device mxc_uart_device0;extern struct platform_device mxc_uart_device1;extern struct platform_device mxc_uart_device2; -extern struct platform_device mxc_uart_device3; -extern struct platform_device mxc_uart_device4; +#endif extern struct platform_device mxc_w1_master_device;extern struct platform_device mx3_ipu;extern struct platform_device mx3_fb;
arch/arm/mach-mx3/mach-armadillo5x0.c +3 -4
@@ -48,7 +48,6 @@#include <asm/mach/map.h> #include <mach/common.h> -#include <mach/imx-uart.h> #include <mach/iomux-mx3.h> #include <mach/mmc.h> #include <mach/ipu.h>
@@ -493,7 +492,7 @@ static struct platform_device armadillo5x0_smc911x_device = { };/* UART device data */ -static struct imxuart_platform_data uart_pdata = { +static const struct imxuart_platform_data uart_pdata__initconst = { .flags =IMXUART_HAVE_RTSCTS , };
@@ -514,8 +513,8 @@ static void __init armadillo5x0_init(void)imx31_add_imx_i2c1 (NULL );/* Register UART */ -mxc_register_device (&mxc_uart_device0, &uart_pdata); -mxc_register_device (&mxc_uart_device1, &uart_pdata); +imx31_add_imx_uart0 (&uart_pdata); +imx31_add_imx_uart1 (&uart_pdata);/* SMSC9118 IRQ pin */ gpio_direction_input (MX31_PIN_GPIO1_0 );
arch/arm/mach-mx3/mach-kzm_arm11_01.c +4 -5
@@ -35,10 +35,10 @@#include <mach/clock.h> #include <mach/common.h> -#include <mach/imx-uart.h> #include <mach/iomux-mx3.h> #include <mach/memory.h> +#include "devices-imx31.h" #include "devices.h" #define KZM_ARM11_IO_ADDRESS (x) ( \
@@ -185,15 +185,14 @@ static inline int kzm_init_smsc9118(void)#endif #if defined(CONFIG_SERIAL_IMX ) || defined(CONFIG_SERIAL_IMX_MODULE ) -static struct imxuart_platform_data uart_pdata = { +static const struct imxuart_platform_data uart_pdata__initconst = { .flags =IMXUART_HAVE_RTSCTS , };static void __init kzm_init_imx_uart (void ) { -mxc_register_device (&mxc_uart_device0, &uart_pdata); - -mxc_register_device (&mxc_uart_device1, &uart_pdata); +imx31_add_imx_uart0 (&uart_pdata); +imx31_add_imx_uart1 (&uart_pdata); }#else static inline void kzm_init_imx_uart (void )
arch/arm/mach-mx3/mach-mx31_3ds.c +2 -3
@@ -33,7 +33,6 @@#include <asm/memory.h> #include <asm/mach/map.h> #include <mach/common.h> -#include <mach/imx-uart.h> #include <mach/iomux-mx3.h> #include "devices-imx31.h"
@@ -233,7 +232,7 @@ static struct fsl_usb2_platform_data usbotg_pdata = { .phy_mode = FSL_USB2_PHY_ULPI, }; -static struct imxuart_platform_data uart_pdata = { +static const struct imxuart_platform_data uart_pdata__initconst = { .flags =IMXUART_HAVE_RTSCTS , };
@@ -415,7 +414,7 @@ static void __init mxc_board_init(void)mxc_iomux_setup_multiple_pins (mx31_3ds_pins,ARRAY_SIZE (mx31_3ds_pins),"mx31_3ds" ); -mxc_register_device (&mxc_uart_device0, &uart_pdata); +imx31_add_imx_uart0 (&uart_pdata);imx31_add_mxc_nand (&mx31_3ds_nand_board_info);imx31_add_spi_imx0 (&spi1_pdata);
arch/arm/mach-mx3/mach-mx31ads.c +2 -3
@@ -29,7 +29,6 @@#include <asm/memory.h> #include <asm/mach/map.h> #include <mach/common.h> -#include <mach/imx-uart.h> #include <mach/iomux-mx3.h> #ifdef CONFIG_MACH_MX31ADS_WM1133_EV1
@@ -124,7 +123,7 @@ static inline int mxc_init_extuart(void)#endif #if defined(CONFIG_SERIAL_IMX ) || defined(CONFIG_SERIAL_IMX_MODULE ) -static struct imxuart_platform_data uart_pdata = { +static const struct imxuart_platform_data uart_pdata__initconst = { .flags =IMXUART_HAVE_RTSCTS , };
@@ -138,7 +137,7 @@ static unsigned int uart_pins[] = {static inline void mxc_init_imx_uart (void ) {mxc_iomux_setup_multiple_pins (uart_pins,ARRAY_SIZE (uart_pins),"uart-0" ); -mxc_register_device (&mxc_uart_device0, &uart_pdata); +imx31_add_imx_uart0 (&uart_pdata); }#else /* !SERIAL_IMX */ static inline void mxc_init_imx_uart (void )
arch/arm/mach-mx3/mach-mx31lite.c +0 -1
@@ -38,7 +38,6 @@#include <mach/hardware.h> #include <mach/common.h> #include <mach/board-mx31lite.h> -#include <mach/imx-uart.h> #include <mach/iomux-mx3.h> #include <mach/irqs.h> #include <mach/mxc_ehci.h>
arch/arm/mach-mx3/mach-mx31moboard.c +4 -6
@@ -38,7 +38,6 @@#include <mach/board-mx31moboard.h> #include <mach/common.h> #include <mach/hardware.h> -#include <mach/imx-uart.h> #include <mach/iomux-mx3.h> #include <mach/ipu.h> #include <mach/mmc.h>
@@ -131,11 +130,11 @@ static int moboard_uart0_init(struct platform_device *pdev)return 0 ; } -static struct imxuart_platform_data uart0_pdata = { +static const struct imxuart_platform_data uart0_pdata__initconst = { .init = moboard_uart0_init, }; -static struct imxuart_platform_data uart4_pdata = { +static const struct imxuart_platform_data uart4_pdata__initconst = { .flags =IMXUART_HAVE_RTSCTS , };
@@ -495,9 +494,8 @@ static void __init mxc_board_init(void)platform_add_devices (devices,ARRAY_SIZE (devices)); -mxc_register_device (&mxc_uart_device0, &uart0_pdata); - -mxc_register_device (&mxc_uart_device4, &uart4_pdata); +imx31_add_imx_uart0 (&uart0_pdata); +imx31_add_imx_uart4 (&uart4_pdata);imx31_add_imx_i2c0 (&moboard_i2c0_data);imx31_add_imx_i2c1 (&moboard_i2c1_data);
arch/arm/mach-mx3/mach-pcm037.c +5 -5
@@ -41,7 +41,6 @@#include <asm/mach/map.h> #include <mach/common.h> #include <mach/hardware.h> -#include <mach/imx-uart.h> #include <mach/iomux-mx3.h> #include <mach/ipu.h> #include <mach/mmc.h>
@@ -219,7 +218,7 @@ static struct platform_device pcm037_flash = { .num_resources = 1, }; -static struct imxuart_platform_data uart_pdata = { +static const struct imxuart_platform_data uart_pdata__initconst = { .flags =IMXUART_HAVE_RTSCTS , };
@@ -609,9 +608,10 @@ static void __init mxc_board_init(void)platform_add_devices (devices,ARRAY_SIZE (devices)); -mxc_register_device (&mxc_uart_device0, &uart_pdata); -mxc_register_device (&mxc_uart_device1, &uart_pdata); -mxc_register_device (&mxc_uart_device2, &uart_pdata); +imx31_add_imx_uart0 (&uart_pdata); +/* XXX: should't this have .flags = 0 (i.e. no RTSCTS) on PCM037_EET? */ +imx31_add_imx_uart1 (&uart_pdata); +imx31_add_imx_uart2 (&uart_pdata);mxc_register_device (&mxc_w1_master_device,NULL );
arch/arm/mach-mx3/mach-qong.c +5 -4
@@ -30,8 +30,9 @@#include <mach/common.h> #include <asm/page.h> #include <asm/setup.h> -#include <mach/imx-uart.h> #include <mach/iomux-mx3.h> + +#include "devices-imx31.h" #include "devices.h" /* FPGA defines */
@@ -57,7 +58,7 @@* This file contains the board-specific initialization routines. */ -static struct imxuart_platform_data uart_pdata = { +static const struct imxuart_platform_data uart_pdata__initconst = { .flags =IMXUART_HAVE_RTSCTS , };
@@ -68,11 +69,11 @@ static int uart_pins[] = {MX31_PIN_RXD1__RXD1 }; -static inline void mxc_init_imx_uart (void ) +static inline void __init mxc_init_imx_uart (void ) {mxc_iomux_setup_multiple_pins (uart_pins,ARRAY_SIZE (uart_pins),"uart-0" ); -mxc_register_device (&mxc_uart_device0, &uart_pdata); +imx31_add_imx_uart0 (&uart_pdata); }static struct resource dnet_resources[] = {
arch/arm/mach-mx3/mx31lilly-db.c +5 -5
@@ -32,13 +32,13 @@#include <mach/hardware.h> #include <mach/common.h> -#include <mach/imx-uart.h> #include <mach/iomux-mx3.h> #include <mach/board-mx31lilly.h> #include <mach/mmc.h> #include <mach/mx3fb.h> #include <mach/ipu.h> +#include "devices-imx31.h" #include "devices.h" /*
@@ -92,7 +92,7 @@ static unsigned int lilly_db_board_pins[] __initdata = { };/* UART */ -static struct imxuart_platform_data uart_pdata__initdata = { +static const struct imxuart_platform_data uart_pdata__initconst = { .flags =IMXUART_HAVE_RTSCTS , };
@@ -213,9 +213,9 @@ void __init mx31lilly_db_init(void)mxc_iomux_setup_multiple_pins (lilly_db_board_pins,ARRAY_SIZE (lilly_db_board_pins),"development board pins" ); -mxc_register_device (&mxc_uart_device0, &uart_pdata); -mxc_register_device (&mxc_uart_device1, &uart_pdata); -mxc_register_device (&mxc_uart_device2, &uart_pdata); +imx31_add_imx_uart0 (&uart_pdata); +imx31_add_imx_uart1 (&uart_pdata); +imx31_add_imx_uart2 (&uart_pdata);mxc_register_device (&mxcsdhc_device0, &mmc_pdata);mx31lilly_init_fb (); }
arch/arm/mach-mx3/mx31lite-db.c +2 -3
@@ -33,7 +33,6 @@#include <mach/hardware.h> #include <mach/common.h> -#include <mach/imx-uart.h> #include <mach/iomux-mx3.h> #include <mach/board-mx31lite.h> #include <mach/mmc.h>
@@ -72,7 +71,7 @@ static unsigned int litekit_db_board_pins[] __initdata = { };/* UART */ -static struct imxuart_platform_data uart_pdata__initdata = { +static const struct imxuart_platform_data uart_pdata__initconst = { .flags =IMXUART_HAVE_RTSCTS , };
@@ -197,7 +196,7 @@ void __init mx31lite_db_init(void)mxc_iomux_setup_multiple_pins (litekit_db_board_pins,ARRAY_SIZE (litekit_db_board_pins),"development board pins" ); -mxc_register_device (&mxc_uart_device0, &uart_pdata); +imx31_add_imx_uart0 (&uart_pdata);mxc_register_device (&mxcsdhc_device0, &mmc_pdata);imx31_add_spi_imx0 (&spi0_pdata);platform_device_register (&litekit_led_device);
arch/arm/mach-mx3/mx31moboard-devboard.c +3 -3
@@ -23,13 +23,13 @@#include <linux/usb/otg.h> #include <mach/common.h> -#include <mach/imx-uart.h> #include <mach/iomux-mx3.h> #include <mach/hardware.h> #include <mach/mmc.h> #include <mach/mxc_ehci.h> #include <mach/ulpi.h> +#include "devices-imx31.h" #include "devices.h" static unsigned int devboard_pins[] = {
@@ -52,7 +52,7 @@ static unsigned int devboard_pins[] = { MX31_PIN_RI_DCE1__GPIO2_10, MX31_PIN_DCD_DCE1__GPIO2_11, }; -static struct imxuart_platform_data uart_pdata = { +static const struct imxuart_platform_data uart_pdata__initconst = { .flags =IMXUART_HAVE_RTSCTS , };
@@ -226,7 +226,7 @@ void __init mx31moboard_devboard_init(void)mxc_iomux_setup_multiple_pins (devboard_pins,ARRAY_SIZE (devboard_pins),"devboard" ); -mxc_register_device (&mxc_uart_device1, &uart_pdata); +imx31_add_imx_uart1 (&uart_pdata);mxc_register_device (&mxcsdhc_device1, &sdhc2_pdata);
arch/arm/mach-mx3/mx31moboard-smartbot.c +3 -4
@@ -26,7 +26,6 @@#include <mach/common.h> #include <mach/hardware.h> -#include <mach/imx-uart.h> #include <mach/iomux-mx3.h> #include <mach/board-mx31moboard.h> #include <mach/mxc_ehci.h>
@@ -34,6 +33,7 @@#include <media/soc_camera.h> +#include "devices-imx31.h" #include "devices.h" static unsigned int smartbot_pins[] = {
@@ -55,7 +55,7 @@ static unsigned int smartbot_pins[] = { MX31_PIN_RI_DCE1__GPIO2_10, MX31_PIN_DCD_DCE1__GPIO2_11, }; -static struct imxuart_platform_data uart_pdata = { +static const struct imxuart_platform_data uart_pdata__initconst = { .flags =IMXUART_HAVE_RTSCTS , };
@@ -179,8 +179,7 @@ void __init mx31moboard_smartbot_init(int board)mxc_iomux_setup_multiple_pins (smartbot_pins,ARRAY_SIZE (smartbot_pins),"smartbot" ); -mxc_register_device (&mxc_uart_device1, &uart_pdata); - +imx31_add_imx_uart1 (&uart_pdata);switch (board) {case MX31SMARTBOT :
Signature · 1 line
1.7.1
PATCH 60/61 ARM: imx: dynamically register imx-uart devices (imx35)
In reply to Uwe Kleine-König--- arch/arm/mach-mx3/Kconfig | 2 + arch/arm/mach-mx3/devices-imx35.h | 7 ++++ arch/arm/mach-mx3/devices.c | 59 ------------------------------------- arch/arm/mach-mx3/devices.h | 5 --- arch/arm/mach-mx3/mach-mx35_3ds.c | 6 ++-- arch/arm/mach-mx3/mach-pcm043.c | 7 ++-- 6 files changed, 15 insertions(+), 71 deletions(-)
arch/arm/mach-mx3/Kconfig +2 -0
@@ -116,6 +116,7 @@ config MACH_PCM043 bool "Support Phytec pcm043 (i.MX35) platforms" select ARCH_MX35 select IMX_HAVE_PLATFORM_IMX_I2C + select IMX_HAVE_PLATFORM_IMX_UART select IMX_HAVE_PLATFORM_MXC_NAND select MXC_ULPI if USB_ULPI help
@@ -136,6 +137,7 @@ config MACH_ARMADILLO5X0 config MACH_MX35_3DS bool "Support MX35PDK platform" select ARCH_MX35 + select IMX_HAVE_PLATFORM_IMX_UART default n help Include support for MX35PDK platform. This includes specific
arch/arm/mach-mx3/devices-imx35.h +7 -0
@@ -16,6 +16,13 @@#define imx35_add_imx_i2c2 (pdata) \ imx_add_imx_i2c(2, MX35_I2C3_BASE_ADDR, SZ_4K, MX35_INT_I2C3, pdata) +#define imx35_add_imx_uart0 (pdata) \ + imx_add_imx_uart_1irq(0, MX35_UART1_BASE_ADDR, SZ_16K, MX35_INT_UART1, pdata) +#define imx35_add_imx_uart1 (pdata) \ + imx_add_imx_uart_1irq(1, MX35_UART2_BASE_ADDR, SZ_16K, MX35_INT_UART2, pdata) +#define imx35_add_imx_uart2 (pdata) \ + imx_add_imx_uart_1irq(2, MX35_UART3_BASE_ADDR, SZ_16K, MX35_INT_UART3, pdata) +#define imx35_add_mxc_nand (pdata) \ imx_add_mxc_nand_v21(MX35_NFC_BASE_ADDR, MX35_INT_NANDFC, pdata)
arch/arm/mach-mx3/devices.c +0 -59
65 lines not on this page · raw message
arch/arm/mach-mx3/devices.h +0 -5
@@ -1,8 +1,3 @@ -#if defined(CONFIG_ARCH_MX35 ) -extern struct platform_device mxc_uart_device0; -extern struct platform_device mxc_uart_device1; -extern struct platform_device mxc_uart_device2; -#endif extern struct platform_device mxc_w1_master_device;extern struct platform_device mx3_ipu;extern struct platform_device mx3_fb;
arch/arm/mach-mx3/mach-mx35_3ds.c +3 -3
@@ -34,12 +34,12 @@#include <mach/hardware.h> #include <mach/common.h> -#include <mach/imx-uart.h> #include <mach/iomux-mx35.h> +#include "devices-imx35.h" #include "devices.h" -static struct imxuart_platform_data uart_pdata = { +static const struct imxuart_platform_data uart_pdata__initconst = { .flags =IMXUART_HAVE_RTSCTS , };
@@ -92,7 +92,7 @@ static void __init mxc_board_init(void)platform_add_devices (devices,ARRAY_SIZE (devices)); -mxc_register_device (&mxc_uart_device0, &uart_pdata); +imx35_add_imx_uart0 (&uart_pdata);mxc_register_device (&mxc_otg_udc_device, &usb_pdata); }
arch/arm/mach-mx3/mach-pcm043.c +3 -4
@@ -36,7 +36,6 @@#include <mach/hardware.h> #include <mach/common.h> -#include <mach/imx-uart.h> #include <mach/iomux-mx35.h> #include <mach/ipu.h> #include <mach/mx3fb.h>
@@ -115,7 +114,7 @@ static struct platform_device pcm043_flash = { .num_resources = 1, }; -static struct imxuart_platform_data uart_pdata = { +static const struct imxuart_platform_data uart_pdata__initconst = { .flags =IMXUART_HAVE_RTSCTS , };
@@ -355,11 +354,11 @@ static void __init mxc_board_init(void)platform_add_devices (devices,ARRAY_SIZE (devices)); -mxc_register_device (&mxc_uart_device0, &uart_pdata); +imx35_add_imx_uart0 (&uart_pdata);imx35_add_mxc_nand (&pcm037_nand_board_info);mxc_register_device (&imx_ssi_device0, &pcm043_ssi_pdata); -mxc_register_device (&mxc_uart_device1, &uart_pdata); +imx35_add_imx_uart1 (&uart_pdata);#if definedCONFIG_I2C_IMX || definedCONFIG_I2C_IMX_MODULE i2c_register_board_info(0, pcm043_i2c_devices,
Signature · 1 line
1.7.1
Hi Uwe,
Le 24/06/2010 15:48, Uwe Kleine-K?nig a ?crit :
Quoted 3 lines
this is the next step in the project "clean up the imx port" targeting 2.6.36. The highlights this time are:
maybe that would be interesting to rebase your patch serie against Sascha's imx-for-2.6.36 in order to include new boards (especially for the patches which change registering nand, i2c, spi and uart) ?
Eric
Hello Eric,
Quoted 9 lines · Eric B?nard
Hi Uwe,
Le 24/06/2010 15:48, Uwe Kleine-K?nig a ?crit :
Quoted 3 lines
this is the next step in the project "clean up the imx port" targeting 2.6.36. The highlights this time are:
maybe that would be interesting to rebase your patch serie against Sascha's imx-for-2.6.36 in order to include new boards (especially for the patches which change registering nand, i2c, spi and uart) ?
No, I don't want to rebase it. I hope Sascha just merges my tree. Do you know of any problems, I havn't checked if Sascha's branch introduces any new users of devices I removed. I make a mental note to check that after Sascha merged.
Best regards
Uwe
Signature · 2 lines
Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ |
Hi Uwe,
Le 24/06/2010 19:55, Uwe Kleine-K?nig a ?crit :
Quoted 5 lines · Eric B?nard
Quoted 4 lines
Le 24/06/2010 15:48, Uwe Kleine-K?nig a ?crit :
Quoted 3 lines
this is the next step in the project "clean up the imx port" targeting 2.6.36. The highlights this time are:
Quoted 8 lines
Quoted 3 lines
maybe that would be interesting to rebase your patch serie against Sascha's imx-for-2.6.36 in order to include new boards (especially for the patches which change registering nand, i2c, spi and uart) ?
No, I don't want to rebase it. I hope Sascha just merges my tree. Do you know of any problems, I havn't checked if Sascha's branch introduces any new users of devices I removed. I make a mental note to check thatOK after Sascha merged.
There are at least my i.MX25 and i.MX35 machines that I would have updated to you patch serie and tested but trying to merge your branch over Sasha's imx-for-2.6.36 + kernel.org tree at 2.6.35-rc3 leads to at least 9 conflitcs.
How do you manage to merge this simply in order to test it ? I added your branch as a remote tree, then fetched it, then merged it :
is there any magic git sequence missing here that would help to reduce the number of conflicts ?
Thanks,
Eric
Quoted 16 lines · Eric B?nard
Hi Uwe,
Le 24/06/2010 19:55, Uwe Kleine-K?nig a ?crit :
Quoted 5 lines · Eric B?nard
Quoted 4 lines
Le 24/06/2010 15:48, Uwe Kleine-K?nig a ?crit :
Quoted 3 lines
this is the next step in the project "clean up the imx port" targeting 2.6.36. The highlights this time are:
Quoted 8 lines
Quoted 3 lines
maybe that would be interesting to rebase your patch serie against Sascha's imx-for-2.6.36 in order to include new boards (especially for the patches which change registering nand, i2c, spi and uart) ?
No, I don't want to rebase it. I hope Sascha just merges my tree. Do you know of any problems, I havn't checked if Sascha's branch introduces any new users of devices I removed. I make a mental note to check thatOK after Sascha merged.
Quoted 8 lines
There are at least my i.MX25 and i.MX35 machines that I would have updated to you patch serie and tested but trying to merge your branch over Sasha's imx-for-2.6.36 + kernel.org tree at 2.6.35-rc3 leads to at least 9 conflitcs.
How do you manage to merge this simply in order to test it ? I added your branch as a remote tree, then fetched it, then merged it :
is there any magic git sequence missing here that would help to reduce the number of conflicts ?
No, but these conflicts aren't that hard to resolve. Check out my imx/for-2.6.36-merged branch.
BTW there are two warnings about 'otg_pdata' and 'usbh2_pdata' defined but not used with the config I tested. And it would have been more consistent to name your machine source file mach-eukrea_cpuimx25.c.
Best regards
Uwe
Signature · 2 lines
Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ |
Le 25/06/2010 07:10, Uwe Kleine-K?nig a ?crit :
Quoted 7 lines · Eric B?nard
Quoted 4 lines
How do you manage to merge this simply in order to test it ? I added your branch as a remote tree, then fetched it, then merged it :
is there any magic git sequence missing here that would help to reduce the number of conflicts ?No, but these conflicts aren't that hard to resolve. Check out my imx/for-2.6.36-merged branch.
most of them may not be hard to resolve but that creates more work to test the patches (and that create more work for Sascha to integrate the patches in its tree). Thanks for your merged branch, I'll test asap.
Quoted 1 line
BTW there are two warnings about '
otg_pdata' and 'usbh2_pdata' defined
should already be fixed in :
http://git.pengutronix.de/?p=imx/linux-2.6.git;a=commit;h=4ecca63bf70aec86745c4bb631ada8b15e02e855
Quoted 3 lines
but not used with the config I tested. And it would have been more consistent to name your machine source file
mach-eukrea_cpuimx25.c.
OK so this would require the same renaming for cpuimx27 & 35 as actually its consitent between the 3 boards. Should I send a patch to rename them ?
Thanks,
Eric
Quoted 8 lines · Eric B?nard
Le 25/06/2010 07:10, Uwe Kleine-K?nig a ?crit :
Quoted 7 lines · Eric B?nard
Quoted 4 lines
How do you manage to merge this simply in order to test it ? I added your branch as a remote tree, then fetched it, then merged it :
is there any magic git sequence missing here that would help to reduce the number of conflicts ?No, but these conflicts aren't that hard to resolve. Check out my imx/for-2.6.36-merged branch.
I'm currently fixing mx3, I missed that there appeared a new machine, too. I give you a ping via PM when I'm done.
Quoted 3 lines
most of them may not be hard to resolve but that creates more work to test the patches (and that create more work for Sascha to integrate the patches in its tree). Thanks for your merged branch, I'll test asap.
rebasing creates more work for me, and if Sascha pulls my merge he has no problems.
Quoted 11 lines
Quoted 1 line
BTW there are two warnings about '
otg_pdata' and 'usbh2_pdata' definedshould already be fixed in :
http://git.pengutronix.de/?p=imx/linux-2.6.git;a=commit;h=4ecca63bf70aec86745c4bb631ada8b15e02e855Quoted 3 lines
but not used with the config I tested. And it would have been more consistent to name your machine source file
mach-eukrea_cpuimx25.c.OK so this would require the same renaming for cpuimx27 & 35 as actually its consitent between the 3 boards. Should I send a patch to rename them ?
If you don't, then I will do :-) I would recommend to wait until Sascha merged though.
While testing I found another problem. There are two definitions of MACH_EUKREA_MBIMXSD_BASEBOARD that conflict. For me MACH_EUKREA_MBIMXSD_BASEBOARD doesn't appear in .config if I select MACH_EUKREA_CPUIMX25.
Best regards
Uwe
Signature · 2 lines
Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ |
Le 25/06/2010 09:17, Uwe Kleine-K?nig a ?crit :
Quoted 9 lines
Quoted 6 lines
Quoted 3 lines
but not used with the config I tested. And it would have been more consistent to name your machine source file
mach-eukrea_cpuimx25.c.OK so this would require the same renaming for cpuimx27& 35 as actually its consitent between the 3 boards. Should I send a patch to rename them ?
If you don't, then I will do :-) I would recommend to wait until Sascha merged though.
OK will do.
Quoted 5 lines
While testing I found another problem. There are two definitions of
MACH_EUKREA_MBIMXSD_BASEBOARDthat conflict. For meMACH_EUKREA_MBIMXSD_BASEBOARDdoesn't appear in .config if I selectMACH_EUKREA_CPUIMX25.
Yes I saw this after tewting Sascha's tree as I was initialy working on different branches. I would have expected Kconfig to not care about the one of the unselected architecture but that not the case.
Please see the patch I just sent to merge the baseboard support in one file.
Eric
PATCH 61/61 ARM: mx3: complement uart init routine with an exit routine
In reply to Uwe Kleine-Königmoboard_uart0_init requests a gpio. Without an exit function that
frees that gpio again binding the uart a second time doesn't work.
--- arch/arm/mach-mx3/mach-mx31moboard.c | 18 +++++++++++++++--- 1 files changed, 15 insertions(+), 3 deletions(-)
arch/arm/mach-mx3/mach-mx31moboard.c +15 -3
@@ -125,13 +125,25 @@ static struct platform_device mx31moboard_flash = {static int moboard_uart0_init (struct platform_device *pdev) { -gpio_request (IOMUX_TO_GPIO (MX31_PIN_CTS1 ),"uart0-cts-hack" ); -gpio_direction_output (IOMUX_TO_GPIO (MX31_PIN_CTS1 ),0 ); -return 0 ; +int ret =gpio_request (IOMUX_TO_GPIO (MX31_PIN_CTS1 ),"uart0-cts-hack" ); +if (ret) +return ret; + + ret =gpio_direction_output (IOMUX_TO_GPIO (MX31_PIN_CTS1 ),0 ); +if (ret) +gpio_free (IOMUX_TO_GPIO (MX31_PIN_CTS1 )); + +return ret; +} + +static void moboard_uart0_exit (struct platform_device *pdev) +{ +gpio_free (IOMUX_TO_GPIO (MX31_PIN_CTS1 )); }static const struct imxuart_platform_data uart0_pdata__initconst = { .init = moboard_uart0_init, + .exit = moboard_uart0_exit, };static const struct imxuart_platform_data uart4_pdata__initconst = {
Signature · 1 line
1.7.1