Thread (49 messages) flat view 49 messages, 8 authors, 2013-04-02
STALE4902d

[PATCH 00/23] RFC: exynos multiplatform support

From: Tomasz Figa <hidden>
Date: 2013-03-05 18:28:01
Also in: linux-samsung-soc

Hi Arnd,

First of all, thanks for your great effort on making Exynos multiplatform-
friendly.

I have added my two cents inline.

On Tuesday 05 of March 2013 18:42:10 Arnd Bergmann wrote:
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
As far as I'm aware, there are plans to drop non-DT Exynos support. Kgene 
should know more on this.
* Moving to common-clk breaks things including cpufreq
  and others. Thomas is working on a patch for this
We have several patches internally for fixing things up to run correclty with 
common-clk. I'll see if we can post some patches.
* We disable the gpio implementation, which also breaks
  stuff, but Thomas has a patch already
The legacy GPIO code is needed only for non-DT case. DT-case uses the new 
pinctrl-samsung driver, which is (AFAIK) multiplatform-aware.
* 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
There was some discussion some time ago whether we really need sparsemem on 
Exynos. If I remember correctly, it turned out that we don't. So this is not 
really an issue.
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
I'm currently working (in my free time) on a series of cleanup patches 
sanitizing Samsung PWM code for S3C64xx and S5PV210 DT (and multiplatform) 
support.

On those platforms it is a bit more complex case as there are two blocks of 
code that access the same hardware - samsung-time (using two PWM channels for 
clocksource and clock events) and pwm-samsung.

Hopefully, I will have some patches ready soon.

Best regards,
-- 
Tomasz Figa
Samsung Poland R&D Center
SW Solution Development, Kernel and System Framework
  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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help