[PATCH 00/23] RFC: exynos multiplatform support

Arnd Bergmann arnd at arndb.de
Tue Mar 5 12:42:10 EST 2013


Hi everyone,

Although I'm not present at the Linaro Connect hacking
sessions, I am participating remotely and have tried
hacking on multiplatform support for Exynos. This patch
set is far from complete, but I think the patches
can be useful anyway.

The series gets increasingly fishy towards the end,
and we should probably not apply any of the last nine
patches as-is, nor do I expect everything to work, since
I have not tested them at all.

With this patch set, we can build mach-exynos as part
of a multiplatform kernel, with the following caveats:

* Only DT based boards are supported
* Moving to common-clk breaks things including cpufreq
  and others. Thomas is working on a patch for this
* We disable the gpio implementation, which also breaks
  stuff, but Thomas has a patch already
* Using the generic DMA engine API in SPI and ASoC
  means they no longer work on S3C
* I did not like the solution for the UART driver, but
  could also not think of a better one.
* The FB_S3C, S3C2410_WATCHDOG and S3C_ADC drivers
  are left as an exercise to the reader, they are
  currently disabled with multiplatform
* sparsemem support is not available on multiplatform

The patches are based on v3.9-rc1 and I have pushed
the git branch to

git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc.git testing/exynos-multiplatform

I have not yet added subsystem maintainers to Cc on the
patches, I'd like to coordinate with the other people
involved first, so see if they already have patches
for the same drivers.

	Arnd

Arnd Bergmann (23):
  ARM: exynos: introduce EXYNOS_ATAGS symbol
  irqchip: exynos: remove dependency on mach/irqs.h
  tty: serial/samsung: prepare for common clock API
  tty: serial/samsung: make register definitions global
  tty: serial/samsung: fix modular build
  ARM: exynos: move debug-macro.S to include/debug/
  i2c: s3c2410: make header file local
  mmc: sdhci-s3c: remove platform dependencies
  usb: exynos: do not include plat/usb-phy.h
  [media] exynos: remove unnecessary header inclusions
  video/exynos: remove unnecessary header inclusions
  thermal/exynos: remove unnecessary header inclusions
  mtd: onenand/samsung: make regs-onenand.h file local
  rtc: s3c: make header file local
  spi: s3c64xx: move to generic dmaengine API
  pwm: samsung: repair the worst MMIO abuses
  ASoC: samsung: move plat/ headers to local directory
  ASoC: samsung: convert to dmaengine API
  ASoC: samsung: use irq resource for idma
  ARM: exynos: prepare for sparse IRQ
  ARM: exynos: hack to disable private clock code
  ARM: exynos: work around missing gpio code on multiplatform
  ARM: exynos: experimental multiplatform support

 arch/arm/Kconfig                                  |  11 +-
 arch/arm/Kconfig.debug                            |   8 +
 arch/arm/include/debug/exynos.S                   |  39 +++
 arch/arm/include/debug/samsung.S                  |  87 +++++++
 arch/arm/mach-exynos/Kconfig                      |  36 ++-
 arch/arm/mach-exynos/Makefile                     |   5 +
 arch/arm/mach-exynos/common.c                     |  14 +-
 arch/arm/mach-exynos/common.h                     |   2 +-
 arch/arm/mach-exynos/dev-audio.c                  |   1 +
 arch/arm/mach-exynos/dev-uart.c                   |   1 +
 arch/arm/mach-exynos/include/mach/debug-macro.S   |  39 ---
 arch/arm/mach-exynos/include/mach/gpio.h          |   2 +
 arch/arm/mach-exynos/include/mach/irqs.h          |   5 +-
 arch/arm/mach-exynos/mach-armlex4210.c            |   3 +
 arch/arm/mach-exynos/mach-exynos4-dt.c            |   2 +
 arch/arm/mach-exynos/mach-exynos5-dt.c            |   2 +
 arch/arm/mach-exynos/mach-nuri.c                  |   2 +
 arch/arm/mach-exynos/mach-origen.c                |   3 +
 arch/arm/mach-exynos/mach-smdk4x12.c              |   2 +
 arch/arm/mach-exynos/mach-smdkv310.c              |   3 +
 arch/arm/mach-exynos/setup-i2c0.c                 |   3 +-
 arch/arm/mach-exynos/setup-sdhci-gpio.c           |   2 +-
 arch/arm/mach-exynos/setup-usb-phy.c              |   8 +-
 arch/arm/mach-s3c24xx/clock-s3c2440.c             |   5 +
 arch/arm/mach-s3c24xx/common.c                    |   5 +
 arch/arm/mach-s3c24xx/dma-s3c2410.c               |   2 -
 arch/arm/mach-s3c24xx/dma-s3c2412.c               |   2 -
 arch/arm/mach-s3c24xx/dma-s3c2440.c               |   2 -
 arch/arm/mach-s3c24xx/dma-s3c2443.c               |   2 -
 arch/arm/mach-s3c24xx/include/mach/debug-macro.S  |   2 +-
 arch/arm/mach-s3c24xx/mach-rx1950.c               |   1 -
 arch/arm/mach-s3c64xx/include/mach/debug-macro.S  |   2 +-
 arch/arm/mach-s3c64xx/include/mach/gpio.h         |   4 +
 arch/arm/mach-s3c64xx/setup-usb-phy.c             |   4 +-
 arch/arm/mach-s5p64x0/include/mach/debug-macro.S  |   2 +-
 arch/arm/mach-s5pc100/include/mach/debug-macro.S  |   2 +-
 arch/arm/mach-s5pc100/setup-sdhci-gpio.c          |   1 -
 arch/arm/mach-s5pv210/include/mach/debug-macro.S  |   2 +-
 arch/arm/mach-s5pv210/setup-sdhci-gpio.c          |   1 -
 arch/arm/mach-s5pv210/setup-usb-phy.c             |   4 +-
 arch/arm/plat-samsung/Kconfig                     |   5 +
 arch/arm/plat-samsung/Makefile                    |   3 +
 arch/arm/plat-samsung/clock-clksrc.c              |   3 +
 arch/arm/plat-samsung/devs.c                      |  17 +-
 arch/arm/plat-samsung/include/plat/debug-macro.S  |  87 -------
 arch/arm/plat-samsung/include/plat/gpio-core.h    |   3 +
 arch/arm/plat-samsung/include/plat/regs-ac97.h    |  67 -----
 arch/arm/plat-samsung/include/plat/regs-iic.h     |  56 -----
 arch/arm/plat-samsung/include/plat/regs-iis.h     |  70 ------
 arch/arm/plat-samsung/include/plat/regs-onenand.h |  63 -----
 arch/arm/plat-samsung/include/plat/regs-rtc.h     |  71 ------
 arch/arm/plat-samsung/include/plat/regs-sdhci.h   |  87 -------
 arch/arm/plat-samsung/include/plat/regs-serial.h  | 282 +---------------------
 arch/arm/plat-samsung/include/plat/sdhci.h        |  56 +----
 arch/arm/plat-samsung/include/plat/usb-phy.h      |   5 +-
 arch/arm/plat-samsung/irq-vic-timer.c             |   1 +
 arch/arm/plat-samsung/pm-gpio.c                   |   1 +
 arch/arm/plat-samsung/pm.c                        |   1 +
 arch/arm/plat-samsung/s5p-clock.c                 |   3 +
 arch/arm/plat-samsung/s5p-irq.c                   |   1 +
 drivers/cpufreq/Kconfig.arm                       |   4 +-
 drivers/devfreq/Kconfig                           |   1 +
 drivers/gpio/Makefile                             |   2 +-
 drivers/i2c/busses/i2c-s3c2410.c                  |   3 +-
 drivers/i2c/busses/i2c-s3c2410.h                  |  56 +++++
 drivers/irqchip/exynos-combiner.c                 | 113 +++++----
 drivers/media/platform/exynos-gsc/gsc-regs.c      |   1 -
 drivers/media/platform/s5p-tv/sii9234_drv.c       |   3 -
 drivers/mmc/host/Kconfig                          |   2 +-
 drivers/mmc/host/sdhci-s3c-regs.h                 |  87 +++++++
 drivers/mmc/host/sdhci-s3c.c                      |   5 +-
 drivers/mtd/onenand/samsung.c                     |   4 +-
 drivers/mtd/onenand/samsung.h                     |  61 +++++
 drivers/pwm/pwm-samsung.c                         |  60 +++--
 drivers/rtc/rtc-s3c.c                             |   3 +-
 drivers/rtc/rtc-s3c.h                             |  70 ++++++
 drivers/spi/spi-s3c64xx.c                         | 107 ++++----
 drivers/thermal/exynos_thermal.c                  |   2 -
 drivers/tty/serial/samsung.c                      |  17 +-
 drivers/tty/serial/samsung.h                      |   4 +-
 drivers/usb/host/ehci-s5p.c                       |   1 -
 drivers/usb/host/ohci-exynos.c                    |   1 -
 drivers/video/Kconfig                             |   2 +-
 drivers/video/exynos/exynos_mipi_dsi.c            |   2 -
 drivers/video/exynos/exynos_mipi_dsi_common.c     |   2 -
 drivers/video/exynos/exynos_mipi_dsi_lowlevel.c   |   2 -
 drivers/watchdog/Kconfig                          |   1 +
 include/linux/platform_data/mmc-sdhci-s3c.h       |  56 +++++
 include/linux/platform_data/spi-s3c64xx.h         |   3 +
 include/linux/serial_s3c.h                        | 260 ++++++++++++++++++++
 sound/soc/samsung/ac97.c                          |  17 +-
 sound/soc/samsung/dma.c                           | 104 ++++----
 sound/soc/samsung/dma.h                           |   4 +-
 sound/soc/samsung/h1940_uda1380.c                 |   2 +-
 sound/soc/samsung/i2s.c                           |   9 +-
 sound/soc/samsung/idma.c                          |  10 +-
 sound/soc/samsung/neo1973_wm8753.c                |   2 +-
 sound/soc/samsung/pcm.c                           |  13 -
 sound/soc/samsung/regs-ac97.h                     |  67 +++++
 sound/soc/samsung/regs-iis.h                      |  70 ++++++
 sound/soc/samsung/rx1950_uda1380.c                |   2 +-
 sound/soc/samsung/s3c2412-i2s.c                   |  10 -
 sound/soc/samsung/s3c24xx-i2s.c                   |  12 +-
 sound/soc/samsung/s3c24xx_uda134x.c               |   2 +-
 sound/soc/samsung/spdif.c                         |   6 -
 105 files changed, 1262 insertions(+), 1208 deletions(-)
 create mode 100644 arch/arm/include/debug/exynos.S
 create mode 100644 arch/arm/include/debug/samsung.S
 delete mode 100644 arch/arm/mach-exynos/include/mach/debug-macro.S
 delete mode 100644 arch/arm/plat-samsung/include/plat/debug-macro.S
 delete mode 100644 arch/arm/plat-samsung/include/plat/regs-ac97.h
 delete mode 100644 arch/arm/plat-samsung/include/plat/regs-iic.h
 delete mode 100644 arch/arm/plat-samsung/include/plat/regs-iis.h
 delete mode 100644 arch/arm/plat-samsung/include/plat/regs-onenand.h
 delete mode 100644 arch/arm/plat-samsung/include/plat/regs-rtc.h
 delete mode 100644 arch/arm/plat-samsung/include/plat/regs-sdhci.h
 create mode 100644 drivers/i2c/busses/i2c-s3c2410.h
 create mode 100644 drivers/mmc/host/sdhci-s3c-regs.h
 create mode 100644 drivers/mtd/onenand/samsung.h
 create mode 100644 drivers/rtc/rtc-s3c.h
 create mode 100644 include/linux/platform_data/mmc-sdhci-s3c.h
 create mode 100644 include/linux/serial_s3c.h
 create mode 100644 sound/soc/samsung/regs-ac97.h
 create mode 100644 sound/soc/samsung/regs-iis.h

-- 
1.8.1.2




More information about the linux-arm-kernel mailing list