* [PATCH 00/46] ARM: pxa: towards multiplatform support
@ 2019-10-18 15:40 Arnd Bergmann
2019-10-18 15:41 ` [PATCH 05/46] ARM: pxa: split up mach/hardware.h Arnd Bergmann
` (3 more replies)
0 siblings, 4 replies; 21+ messages in thread
From: Arnd Bergmann @ 2019-10-18 15:40 UTC (permalink / raw)
To: Daniel Mack, Haojian Zhuang, Robert Jarzmik
Cc: linux-rtc, linux-fbdev, linux-watchdog, Arnd Bergmann, linux-pm,
Linus Walleij, linux-usb, linux-mmc, linux-kernel, linux-ide,
linux-mtd, linux-leds, linux-input, linux-clk, linux-arm-kernel
Hi PXA maintainers,
I'm in the process of getting the old ARM platforms to all build
in a single kernel. The largest part of that work is changing all
the device drivers to no longer require mach/*.h header files.
This series does it for arch/pxa/.
As with the omap1 and s3c24xx series I sent before, I don't
expect this all to be correct in the first version, though
a lot of the patches are fairly simple and I did exhaustive
compile-time testing on them.
Please test if you have the hardware, or review!
Arnd
Bcc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Bcc: alsa-devel@alsa-project.org
Bcc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Bcc: Brian Norris <computersforpeace@gmail.com>
Bcc: Daniel Thompson <daniel.thompson@linaro.org>
Bcc: David Woodhouse <dwmw2@infradead.org>
Bcc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Bcc: Dominik Brodowski <linux@dominikbrodowski.net>
Bcc: dri-devel@lists.freedesktop.org
Bcc: Felipe Balbi <balbi@kernel.org>
Bcc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bcc: Guenter Roeck <linux@roeck-us.net>
Bcc: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Bcc: Jens Axboe <axboe@kernel.dk>
Bcc: Jingoo Han <jingoohan1@gmail.com>
Bcc: Jonathan Cameron <jic23@cam.ac.uk>
Bcc: Lee Jones <lee.jones@linaro.org>
Bcc: Lubomir Rintel <lkundrak@v3.sk>
Bcc: Marek Vasut <marek.vasut@gmail.com>
Bcc: Mark Brown <broonie@kernel.org>
Bcc: Michael Turquette <mturquette@baylibre.com>
Bcc: Miquel Raynal <miquel.raynal@bootlin.com>
Bcc: Paul Parsons <lost.distance@yahoo.com>
Bcc: Pavel Machek <pavel@ucw.cz>
Bcc: Philipp Zabel <philipp.zabel@gmail.com>
Bcc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Bcc: Richard Weinberger <richard@nod.at>
Bcc: Russell King <linux@armlinux.org.uk>
Bcc: Sebastian Reichel <sre@kernel.org>
Bcc: Sergey Lapin <slapin@ossfans.org>
Bcc: Stephen Boyd <sboyd@kernel.org>
Bcc: Tomas Cech <sleep_walker@suse.com>
Bcc: Ulf Hansson <ulf.hansson@linaro.org>
Bcc: Vignesh Raghavendra <vigneshr@ti.com>
Bcc: Viresh Kumar <viresh.kumar@linaro.org>
Bcc: Wim Van Sebroeck <wim@linux-watchdog.org>
Cc: linux-clk@vger.kernel.org
Cc: linux-fbdev@vger.kernel.org
Cc: linux-ide@vger.kernel.org
Cc: linux-input@vger.kernel.org
Cc: linux-leds@vger.kernel.org
Cc: linux-mmc@vger.kernel.org
Cc: linux-mtd@lists.infradead.org
Cc: linux-pm@vger.kernel.org
Cc: linux-rtc@vger.kernel.org
Cc: linux-usb@vger.kernel.org
Cc: linux-watchdog@vger.kernel.org
Arnd Bergmann (46):
ARM: pxa: split mach/generic.h
ARM: pxa: make mainstone.h private
ARM: pxa: make mach/regs-uart.h private
ARM: pxa: remove mach/dma.h
ARM: pxa: split up mach/hardware.h
ARM: pxa: stop using mach/bitfield.h
ARM: pxa: move mach/sound.h to linux/platform_data/
ARM: pxa: move regs-lcd.h into driver
watchdog: sa1100: use platform device registration
ARM: pxa: pxa2xx-ac97-lib: use IRQ resource
ARM: pxa: cmx270: use platform device for nand
ARM: pxa: make addr-map.h header local
ARM: pxa: move pcmcia board data into mach-pxa
ARM: pxa: use pdev resource for palmld mmio
ARM: pxa: maybe fix gpio lookup tables
ARM: pxa: tosa: use gpio descriptor for audio
ARM: pxa: poodle: use platform data for poodle asoc driver
ARM: pxa: corgi: use gpio descriptors for audio
ARM: pxa: hx4700: use gpio descriptors for audio
ARM: pxa: lubbock: pass udc irqs as resource
ARM: pxa: spitz: use gpio descriptors for audio
ARM: pxa: eseries: use gpio lookup for audio
ARM: pxa: z2: use gpio lookup for audio device
ARM: pxa: magician: use platform driver for audio
ARM: pxa: mainstone-wm97xx: use gpio lookup table
ARM: pxa: zylonite: use gpio lookup instead mfp header
input: touchscreen: mainstone: fix pxa2xx+pxa3xx configuration
input: touchscreen: mainstone: sync with zylonite driver
Input: touchscreen: use wrapper for pxa2xx ac97 registers
SoC: pxa: use pdev resource for FIFO regs
ASoC: pxa: ac97: use normal MMIO accessors
ASoC: pxa: i2s: use normal MMIO accessors
ARM: pxa: pcmcia: move smemc configuration back to arch
ARM: pxa: remove get_clk_frequency_khz()
cpufreq: pxa3: move clk register access to clk driver
ARM: pxa: move smemc register access from clk to platform
ARM: pxa: move clk register definitions to driver
video: backlight: tosa: use gpio lookup table
power: tosa: simplify probe function
ARM: pxa: tosa: use gpio lookup for battery
ARM: pxa: move it8152 PCI support into machine
ARM: pxa: remove unused mach/bitfield.h
ARM: pxa: pci-it8152: add platform checks
ARM: mmp: remove tavorevb board support
ARM: mmp: rename pxa_register_device
ARM: pxa: move plat-pxa to drivers/soc/
arch/arm/Kconfig | 9 -
arch/arm/Makefile | 1 -
arch/arm/common/Makefile | 1 -
arch/arm/common/locomo.c | 1 -
arch/arm/common/sa1111.c | 5 +-
arch/arm/include/asm/hardware/sa1111.h | 2 -
arch/arm/mach-mmp/Kconfig | 10 +-
arch/arm/mach-mmp/Makefile | 1 -
arch/arm/mach-mmp/devices.c | 2 +-
arch/arm/mach-mmp/devices.h | 10 +-
arch/arm/mach-mmp/mfp.h | 2 +-
arch/arm/mach-mmp/mmp2.h | 48 ++---
arch/arm/mach-mmp/pxa168.h | 60 +++---
arch/arm/mach-mmp/pxa910.h | 38 ++--
arch/arm/mach-mmp/tavorevb.c | 113 -----------
arch/arm/mach-mmp/ttc_dkb.c | 6 +-
arch/arm/mach-pxa/Kconfig | 8 +-
arch/arm/mach-pxa/Makefile | 22 +-
.../mach-pxa/{include/mach => }/addr-map.h | 0
.../arm/mach-pxa/balloon3-pcmcia.c | 4 +-
arch/arm/mach-pxa/balloon3.c | 4 +-
.../mach-pxa/{include/mach => }/balloon3.h | 2 +-
arch/arm/mach-pxa/cm-x270.c | 25 +++
arch/arm/mach-pxa/cm-x2xx-pci.c | 2 +-
arch/arm/mach-pxa/cm-x2xx.c | 7 +-
arch/arm/mach-pxa/cm-x300.c | 12 +-
.../arm/mach-pxa/cm_x255-pcmcia.c | 2 +-
.../arm/mach-pxa/cm_x270-pcmcia.c | 2 +-
.../arm/mach-pxa/cm_x2xx-pcmcia.c | 2 +-
arch/arm/mach-pxa/colibri-evalboard.c | 1 -
.../arm/mach-pxa/colibri-pcmcia.c | 2 +-
arch/arm/mach-pxa/colibri-pxa270-income.c | 1 -
arch/arm/mach-pxa/colibri-pxa270.c | 2 +-
arch/arm/mach-pxa/colibri-pxa300.c | 3 +-
arch/arm/mach-pxa/colibri-pxa320.c | 2 +-
arch/arm/mach-pxa/colibri-pxa3xx.c | 1 -
arch/arm/mach-pxa/corgi.c | 23 ++-
arch/arm/mach-pxa/{include/mach => }/corgi.h | 2 +-
arch/arm/mach-pxa/corgi_pm.c | 3 +-
arch/arm/mach-pxa/csb726.c | 3 +-
arch/arm/mach-pxa/devices.c | 15 +-
.../arm/mach-pxa/e740-pcmcia.c | 2 +-
arch/arm/mach-pxa/em-x270.c | 2 +-
arch/arm/mach-pxa/eseries.c | 34 +++-
arch/arm/mach-pxa/ezx.c | 1 -
arch/arm/mach-pxa/generic.c | 78 ++++++--
arch/arm/mach-pxa/generic.h | 9 -
arch/arm/mach-pxa/gumstix.c | 1 -
.../arm/mach-pxa/hx4700-pcmcia.c | 4 +-
arch/arm/mach-pxa/hx4700.c | 18 +-
arch/arm/mach-pxa/{include/mach => }/hx4700.h | 2 +-
arch/arm/mach-pxa/idp.c | 2 -
arch/arm/mach-pxa/include/mach/bitfield.h | 114 -----------
arch/arm/mach-pxa/include/mach/dma.h | 17 --
arch/arm/mach-pxa/include/mach/generic.h | 1 -
arch/arm/mach-pxa/include/mach/mfp.h | 2 +-
arch/arm/mach-pxa/include/mach/pxa-regs.h | 52 +++++
arch/arm/mach-pxa/include/mach/pxa2xx-regs.h | 47 +----
arch/arm/mach-pxa/include/mach/pxa3xx-regs.h | 71 +------
arch/arm/mach-pxa/include/mach/regs-ost.h | 4 +-
arch/arm/mach-pxa/include/mach/reset.h | 2 +-
arch/arm/mach-pxa/include/mach/tosa.h | 15 --
arch/arm/mach-pxa/irq.c | 3 +-
arch/arm/mach-pxa/littleton.c | 1 -
arch/arm/mach-pxa/lpd270.c | 4 +-
arch/arm/mach-pxa/lubbock.c | 15 +-
.../arm/mach-pxa/{include/mach => }/lubbock.h | 2 -
arch/arm/mach-pxa/magician.c | 54 ++++-
arch/arm/mach-pxa/mainstone.c | 15 +-
.../mach-pxa/{include/mach => }/mainstone.h | 2 -
arch/arm/mach-pxa/mfp-pxa2xx.c | 1 +
arch/arm/mach-pxa/mfp-pxa2xx.h | 2 +-
arch/arm/mach-pxa/mfp-pxa3xx.c | 1 -
arch/arm/mach-pxa/mfp-pxa3xx.h | 2 +-
arch/arm/mach-pxa/mioa701.c | 2 +-
arch/arm/mach-pxa/mxm8x10.c | 8 +-
arch/arm/mach-pxa/palm27x.c | 2 +-
.../arm/mach-pxa/palmld-pcmcia.c | 5 +-
arch/arm/mach-pxa/palmld.c | 23 ++-
arch/arm/mach-pxa/{include/mach => }/palmld.h | 2 +-
arch/arm/mach-pxa/palmt5.c | 11 +-
.../arm/mach-pxa/palmtc-pcmcia.c | 4 +-
arch/arm/mach-pxa/palmtc.c | 4 +-
arch/arm/mach-pxa/{include/mach => }/palmtc.h | 2 +-
arch/arm/mach-pxa/palmte2.c | 2 +-
arch/arm/mach-pxa/palmtreo.c | 2 +-
.../arm/mach-pxa/palmtx-pcmcia.c | 4 +-
arch/arm/mach-pxa/palmtx.c | 13 +-
arch/arm/mach-pxa/{include/mach => }/palmtx.h | 2 +-
arch/arm/mach-pxa/palmz72.c | 2 +-
.../it8152.c => mach-pxa/pci-it8152.c} | 25 ++-
.../it8152.h => mach-pxa/pci-it8152.h} | 2 -
arch/arm/mach-pxa/pcm990-baseboard.c | 2 +-
arch/arm/mach-pxa/poodle.c | 31 ++-
arch/arm/mach-pxa/{include/mach => }/poodle.h | 4 +-
arch/arm/mach-pxa/pxa-regs.h | 1 +
arch/arm/mach-pxa/pxa25x.c | 6 +-
arch/arm/mach-pxa/pxa25x.h | 2 +-
arch/arm/mach-pxa/pxa27x-udc.h | 2 +
arch/arm/mach-pxa/pxa27x.c | 6 +-
arch/arm/mach-pxa/pxa27x.h | 2 +-
arch/arm/mach-pxa/pxa2xx.c | 1 -
arch/arm/mach-pxa/pxa300.c | 1 +
arch/arm/mach-pxa/pxa320.c | 1 +
arch/arm/mach-pxa/pxa3xx-ulpi.c | 2 +-
arch/arm/mach-pxa/pxa3xx.c | 11 +-
arch/arm/mach-pxa/pxa3xx.h | 2 +-
arch/arm/mach-pxa/pxa930.c | 1 +
arch/arm/mach-pxa/regs-rtc.h | 2 +-
arch/arm/mach-pxa/regs-u2d.h | 2 -
.../mach-pxa/{include/mach => }/regs-uart.h | 2 +
arch/arm/mach-pxa/reset.c | 3 -
arch/arm/mach-pxa/sleep.S | 5 +-
arch/arm/mach-pxa/smemc.c | 11 +-
arch/arm/mach-pxa/spitz.c | 33 ++-
arch/arm/mach-pxa/{include/mach => }/spitz.h | 2 +-
arch/arm/mach-pxa/spitz_pm.c | 3 +-
arch/arm/mach-pxa/standby.S | 1 -
.../arm/mach-pxa/stargate2-pcmcia.c | 2 +-
arch/arm/mach-pxa/tosa.c | 63 +++++-
.../arm/mach-pxa/trizeps4-pcmcia.c | 4 +-
arch/arm/mach-pxa/trizeps4.c | 4 +-
.../mach-pxa/{include/mach => }/trizeps4.h | 3 +-
.../arm/mach-pxa/viper-pcmcia.c | 6 +-
.../arm/mach-pxa/viper-pcmcia.h | 0
arch/arm/mach-pxa/viper.c | 8 +-
.../arm/mach-pxa/vpac270-pcmcia.c | 4 +-
arch/arm/mach-pxa/vpac270.c | 4 +-
.../arm/mach-pxa/{include/mach => }/vpac270.h | 0
arch/arm/mach-pxa/xcep.c | 2 +-
arch/arm/mach-pxa/z2.c | 11 +
arch/arm/mach-pxa/zeus.c | 6 +-
arch/arm/mach-pxa/zylonite.c | 34 +++-
arch/arm/mach-pxa/zylonite.h | 2 +
arch/arm/mach-pxa/zylonite_pxa300.c | 1 +
arch/arm/mach-pxa/zylonite_pxa320.c | 1 +
arch/arm/mach-sa1100/generic.c | 6 +-
arch/arm/mach-sa1100/include/mach/reset.h | 1 -
drivers/ata/pata_palmld.c | 3 +-
drivers/clk/pxa/clk-pxa.c | 8 +-
drivers/clk/pxa/clk-pxa.h | 9 +-
drivers/clk/pxa/clk-pxa25x.c | 46 ++---
drivers/clk/pxa/clk-pxa27x.c | 68 +++----
drivers/clk/pxa/clk-pxa3xx.c | 139 +++++++++++--
drivers/cpufreq/pxa2xx-cpufreq.c | 6 +-
drivers/cpufreq/pxa3xx-cpufreq.c | 65 +++---
drivers/input/mouse/pxa930_trkball.c | 1 -
drivers/input/touchscreen/Kconfig | 2 +
drivers/input/touchscreen/mainstone-wm97xx.c | 123 ++++++------
drivers/input/touchscreen/zylonite-wm97xx.c | 34 ++--
drivers/leds/leds-locomo.c | 1 -
drivers/mmc/host/pxamci.c | 2 +-
drivers/mtd/maps/pxa2xx-flash.c | 2 -
drivers/mtd/nand/raw/cmx270_nand.c | 89 +++------
drivers/pcmcia/Makefile | 16 --
drivers/pcmcia/pxa2xx_base.c | 48 ++---
drivers/pcmcia/pxa2xx_sharpsl.c | 3 +-
drivers/pcmcia/sa1111_generic.c | 1 -
drivers/pcmcia/sa1111_lubbock.c | 1 -
drivers/pcmcia/soc_common.c | 2 -
drivers/pcmcia/soc_common.h | 120 +----------
drivers/power/supply/tosa_battery.c | 189 ++++++++++--------
drivers/rtc/rtc-pxa.c | 2 -
drivers/soc/Kconfig | 1 +
drivers/soc/Makefile | 1 +
.../arm/plat-pxa => drivers/soc/pxa}/Kconfig | 5 +-
.../arm/plat-pxa => drivers/soc/pxa}/Makefile | 4 -
{arch/arm/plat-pxa => drivers/soc/pxa}/mfp.c | 2 +-
{arch/arm/plat-pxa => drivers/soc/pxa}/ssp.c | 0
drivers/usb/gadget/udc/pxa25x_udc.c | 37 ++--
drivers/usb/gadget/udc/pxa25x_udc.h | 7 +-
drivers/usb/host/ohci-pxa27x.c | 3 +-
drivers/video/backlight/tosa_bl.c | 10 +-
drivers/video/backlight/tosa_bl.h | 8 +
drivers/video/backlight/tosa_lcd.c | 28 ++-
.../video/fbdev/pxa3xx-regs.h | 24 +--
drivers/video/fbdev/pxafb.c | 4 +-
drivers/watchdog/sa1100_wdt.c | 88 +++++---
include/linux/clk/pxa.h | 16 ++
include/linux/platform_data/asoc-poodle.h | 16 ++
.../linux/platform_data/asoc-pxa.h | 4 +-
include/linux/platform_data/video-pxafb.h | 22 +-
.../hardware.h => include/linux/soc/pxa/cpu.h | 61 +-----
.../plat => include/linux/soc/pxa}/mfp.h | 6 +-
include/linux/soc/pxa/smemc.h | 13 ++
include/pcmcia/soc_common.h | 125 ++++++++++++
include/sound/pxa2xx-lib.h | 4 +
sound/arm/pxa2xx-ac97-lib.c | 145 +++++++++-----
.../arm/pxa2xx-ac97-regs.h | 42 ++--
sound/arm/pxa2xx-ac97.c | 3 +-
sound/soc/pxa/corgi.c | 42 ++--
sound/soc/pxa/e740_wm9705.c | 37 ++--
sound/soc/pxa/e750_wm9705.c | 33 ++-
sound/soc/pxa/e800_wm9712.c | 33 ++-
sound/soc/pxa/em-x270.c | 2 +-
sound/soc/pxa/hx4700.c | 34 ++--
sound/soc/pxa/magician.c | 141 ++++---------
sound/soc/pxa/mioa701_wm9713.c | 2 +-
sound/soc/pxa/palm27x.c | 2 +-
sound/soc/pxa/poodle.c | 51 ++---
sound/soc/pxa/pxa2xx-ac97.c | 24 ++-
sound/soc/pxa/pxa2xx-i2s.c | 112 ++++++-----
sound/soc/pxa/spitz.c | 58 +++---
sound/soc/pxa/tosa.c | 18 +-
sound/soc/pxa/z2.c | 8 +-
205 files changed, 1916 insertions(+), 1795 deletions(-)
delete mode 100644 arch/arm/mach-mmp/tavorevb.c
rename arch/arm/mach-pxa/{include/mach => }/addr-map.h (100%)
rename drivers/pcmcia/pxa2xx_balloon3.c => arch/arm/mach-pxa/balloon3-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/balloon3.h (99%)
rename drivers/pcmcia/pxa2xx_cm_x255.c => arch/arm/mach-pxa/cm_x255-pcmcia.c (98%)
rename drivers/pcmcia/pxa2xx_cm_x270.c => arch/arm/mach-pxa/cm_x270-pcmcia.c (98%)
rename drivers/pcmcia/pxa2xx_cm_x2xx.c => arch/arm/mach-pxa/cm_x2xx-pcmcia.c (96%)
rename drivers/pcmcia/pxa2xx_colibri.c => arch/arm/mach-pxa/colibri-pcmcia.c (99%)
rename arch/arm/mach-pxa/{include/mach => }/corgi.h (98%)
rename drivers/pcmcia/pxa2xx_e740.c => arch/arm/mach-pxa/e740-pcmcia.c (98%)
rename drivers/pcmcia/pxa2xx_hx4700.c => arch/arm/mach-pxa/hx4700-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/hx4700.h (99%)
delete mode 100644 arch/arm/mach-pxa/include/mach/bitfield.h
delete mode 100644 arch/arm/mach-pxa/include/mach/dma.h
delete mode 100644 arch/arm/mach-pxa/include/mach/generic.h
create mode 100644 arch/arm/mach-pxa/include/mach/pxa-regs.h
rename arch/arm/mach-pxa/{include/mach => }/lubbock.h (97%)
rename arch/arm/mach-pxa/{include/mach => }/mainstone.h (99%)
rename drivers/pcmcia/pxa2xx_palmld.c => arch/arm/mach-pxa/palmld-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/palmld.h (98%)
rename drivers/pcmcia/pxa2xx_palmtc.c => arch/arm/mach-pxa/palmtc-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/palmtc.h (98%)
rename drivers/pcmcia/pxa2xx_palmtx.c => arch/arm/mach-pxa/palmtx-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/palmtx.h (98%)
rename arch/arm/{common/it8152.c => mach-pxa/pci-it8152.c} (95%)
rename arch/arm/{include/asm/hardware/it8152.h => mach-pxa/pci-it8152.h} (98%)
rename arch/arm/mach-pxa/{include/mach => }/poodle.h (97%)
create mode 100644 arch/arm/mach-pxa/pxa-regs.h
rename arch/arm/mach-pxa/{include/mach => }/regs-uart.h (99%)
rename arch/arm/mach-pxa/{include/mach => }/spitz.h (99%)
rename drivers/pcmcia/pxa2xx_stargate2.c => arch/arm/mach-pxa/stargate2-pcmcia.c (99%)
rename drivers/pcmcia/pxa2xx_trizeps4.c => arch/arm/mach-pxa/trizeps4-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/trizeps4.h (98%)
rename drivers/pcmcia/pxa2xx_viper.c => arch/arm/mach-pxa/viper-pcmcia.c (97%)
rename include/linux/platform_data/pcmcia-pxa2xx_viper.h => arch/arm/mach-pxa/viper-pcmcia.h (100%)
rename drivers/pcmcia/pxa2xx_vpac270.c => arch/arm/mach-pxa/vpac270-pcmcia.c (98%)
rename arch/arm/mach-pxa/{include/mach => }/vpac270.h (100%)
rename {arch/arm/plat-pxa => drivers/soc/pxa}/Kconfig (83%)
rename {arch/arm/plat-pxa => drivers/soc/pxa}/Makefile (51%)
rename {arch/arm/plat-pxa => drivers/soc/pxa}/mfp.c (99%)
rename {arch/arm/plat-pxa => drivers/soc/pxa}/ssp.c (100%)
create mode 100644 drivers/video/backlight/tosa_bl.h
rename arch/arm/mach-pxa/include/mach/regs-lcd.h => drivers/video/fbdev/pxa3xx-regs.h (90%)
create mode 100644 include/linux/clk/pxa.h
create mode 100644 include/linux/platform_data/asoc-poodle.h
rename arch/arm/mach-pxa/include/mach/audio.h => include/linux/platform_data/asoc-pxa.h (93%)
rename arch/arm/mach-pxa/include/mach/hardware.h => include/linux/soc/pxa/cpu.h (75%)
rename {arch/arm/plat-pxa/include/plat => include/linux/soc/pxa}/mfp.h (98%)
create mode 100644 include/linux/soc/pxa/smemc.h
create mode 100644 include/pcmcia/soc_common.h
rename arch/arm/mach-pxa/include/mach/regs-ac97.h => sound/arm/pxa2xx-ac97-regs.h (71%)
--
2.20.0
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH 05/46] ARM: pxa: split up mach/hardware.h
2019-10-18 15:40 [PATCH 00/46] ARM: pxa: towards multiplatform support Arnd Bergmann
@ 2019-10-18 15:41 ` Arnd Bergmann
2019-10-18 18:37 ` Dmitry Torokhov
` (6 more replies)
2019-10-18 15:41 ` [PATCH 11/46] ARM: pxa: cmx270: use platform device for nand Arnd Bergmann
` (2 subsequent siblings)
3 siblings, 7 replies; 21+ messages in thread
From: Arnd Bergmann @ 2019-10-18 15:41 UTC (permalink / raw)
To: Daniel Mack, Haojian Zhuang, Robert Jarzmik
Cc: Ulf Hansson, linux-usb, Viresh Kumar, Michael Turquette,
Alexandre Belloni, Dominik Brodowski, linux-mtd, Pavel Machek,
linux-clk, linux-leds, linux-rtc, linux-input, Linus Walleij,
Guenter Roeck, linux-watchdog, Arnd Bergmann, linux-pm,
Mark Brown, Jacek Anaszewski, linux-fbdev, linux-arm-kernel,
Stephen Boyd, Greg Kroah-Hartman, dri-devel, Dmitry Torokhov,
linux-mmc, linux-kernel, alsa-devel
The mach/hardware.h is included in lots of places, and it provides
three different things on pxa:
- the cpu_is_pxa* macros
- an indirect inclusion of mach/addr-map.h
- the __REG() and io_pv2() helper macros
Split it up into separate <linux/soc/pxa/cpu.h> and mach/pxa-regs.h
headers, then change all the files that use mach/hardware.h to
include the exact set of those three headers that they actually
need, allowing for further more targeted cleanup.
linux/soc/pxa/cpu.h can remain permanently exported and is now in
a global location along with similar headers. pxa-regs.h and
addr-map.h are only used in a very small number of drivers now
and can be moved to arch/arm/mach-pxa/ directly when those drivers
are to pass the necessary data as resources.
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Ulf Hansson <ulf.hansson@linaro.org>
Cc: Dominik Brodowski <linux@dominikbrodowski.net>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: Mark Brown <broonie@kernel.org>
Cc: linux-clk@vger.kernel.org
Cc: linux-pm@vger.kernel.org
Cc: linux-input@vger.kernel.org
Cc: linux-leds@vger.kernel.org
Cc: linux-mmc@vger.kernel.org
Cc: linux-mtd@lists.infradead.org
Cc: linux-rtc@vger.kernel.org
Cc: linux-usb@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linux-fbdev@vger.kernel.org
Cc: linux-watchdog@vger.kernel.org
Cc: alsa-devel@alsa-project.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
arch/arm/common/locomo.c | 1 -
arch/arm/common/sa1111.c | 5 +-
arch/arm/mach-pxa/cm-x2xx.c | 2 +
arch/arm/mach-pxa/cm-x300.c | 2 +
arch/arm/mach-pxa/colibri-evalboard.c | 1 -
arch/arm/mach-pxa/colibri-pxa270-income.c | 1 -
arch/arm/mach-pxa/colibri-pxa300.c | 1 +
arch/arm/mach-pxa/colibri-pxa3xx.c | 1 -
arch/arm/mach-pxa/corgi.c | 1 -
arch/arm/mach-pxa/corgi_pm.c | 1 -
arch/arm/mach-pxa/csb726.c | 1 +
arch/arm/mach-pxa/devices.c | 2 +-
arch/arm/mach-pxa/ezx.c | 1 -
arch/arm/mach-pxa/generic.c | 3 +-
arch/arm/mach-pxa/gumstix.c | 1 -
arch/arm/mach-pxa/hx4700.c | 2 +-
arch/arm/mach-pxa/idp.c | 1 -
arch/arm/mach-pxa/include/mach/pxa-regs.h | 52 ++++++++++++++++
arch/arm/mach-pxa/include/mach/pxa2xx-regs.h | 2 +-
arch/arm/mach-pxa/include/mach/pxa3xx-regs.h | 2 +-
arch/arm/mach-pxa/include/mach/regs-ac97.h | 2 +-
arch/arm/mach-pxa/include/mach/regs-ost.h | 2 +-
arch/arm/mach-pxa/include/mach/trizeps4.h | 1 +
arch/arm/mach-pxa/irq.c | 3 +-
arch/arm/mach-pxa/littleton.c | 1 -
arch/arm/mach-pxa/lpd270.c | 2 +-
arch/arm/mach-pxa/lubbock.c | 1 -
arch/arm/mach-pxa/magician.c | 2 +-
arch/arm/mach-pxa/mainstone.c | 2 +-
arch/arm/mach-pxa/mfp-pxa2xx.c | 1 +
arch/arm/mach-pxa/mfp-pxa3xx.c | 1 -
arch/arm/mach-pxa/poodle.c | 1 -
arch/arm/mach-pxa/pxa-regs.h | 1 +
arch/arm/mach-pxa/pxa25x.c | 3 +-
arch/arm/mach-pxa/pxa25x.h | 2 +-
arch/arm/mach-pxa/pxa27x-udc.h | 2 +
arch/arm/mach-pxa/pxa27x.c | 3 +-
arch/arm/mach-pxa/pxa27x.h | 2 +-
arch/arm/mach-pxa/pxa2xx.c | 1 -
arch/arm/mach-pxa/pxa300.c | 1 +
arch/arm/mach-pxa/pxa320.c | 1 +
arch/arm/mach-pxa/pxa3xx-ulpi.c | 2 +-
arch/arm/mach-pxa/pxa3xx.c | 3 +-
arch/arm/mach-pxa/pxa3xx.h | 2 +-
arch/arm/mach-pxa/pxa930.c | 1 +
arch/arm/mach-pxa/regs-rtc.h | 2 +-
arch/arm/mach-pxa/regs-uart.h | 2 +
arch/arm/mach-pxa/sleep.S | 1 -
arch/arm/mach-pxa/smemc.c | 2 +-
arch/arm/mach-pxa/spitz_pm.c | 1 -
arch/arm/mach-pxa/standby.S | 1 -
arch/arm/mach-pxa/xcep.c | 2 +-
arch/arm/mach-pxa/zylonite.c | 1 +
arch/arm/mach-pxa/zylonite.h | 2 +
arch/arm/mach-pxa/zylonite_pxa300.c | 1 +
arch/arm/mach-pxa/zylonite_pxa320.c | 1 +
drivers/clk/pxa/clk-pxa3xx.c | 1 +
drivers/cpufreq/pxa2xx-cpufreq.c | 1 +
drivers/cpufreq/pxa3xx-cpufreq.c | 1 +
drivers/input/mouse/pxa930_trkball.c | 1 -
drivers/input/touchscreen/zylonite-wm97xx.c | 2 +-
drivers/leds/leds-locomo.c | 1 -
drivers/mmc/host/pxamci.c | 2 +-
drivers/mtd/maps/pxa2xx-flash.c | 2 -
drivers/mtd/nand/raw/cmx270_nand.c | 3 +-
drivers/pcmcia/pxa2xx_base.c | 2 +-
drivers/pcmcia/pxa2xx_cm_x2xx.c | 2 +-
drivers/pcmcia/pxa2xx_sharpsl.c | 1 -
drivers/pcmcia/sa1111_generic.c | 1 -
drivers/pcmcia/sa1111_lubbock.c | 1 -
drivers/pcmcia/soc_common.c | 2 -
drivers/rtc/rtc-pxa.c | 2 -
drivers/usb/host/ohci-pxa27x.c | 3 +-
drivers/video/fbdev/pxafb.c | 2 +-
drivers/watchdog/sa1100_wdt.c | 1 -
.../hardware.h => include/linux/soc/pxa/cpu.h | 61 ++-----------------
sound/arm/pxa2xx-ac97-lib.c | 1 +
sound/soc/pxa/pxa2xx-ac97.c | 2 +-
sound/soc/pxa/pxa2xx-i2s.c | 2 +-
sound/soc/pxa/z2.c | 1 -
80 files changed, 121 insertions(+), 119 deletions(-)
create mode 100644 arch/arm/mach-pxa/include/mach/pxa-regs.h
create mode 100644 arch/arm/mach-pxa/pxa-regs.h
rename arch/arm/mach-pxa/include/mach/hardware.h => include/linux/soc/pxa/cpu.h (75%)
diff --git a/arch/arm/common/locomo.c b/arch/arm/common/locomo.c
index 62f241b09fe3..fd9157121406 100644
--- a/arch/arm/common/locomo.c
+++ b/arch/arm/common/locomo.c
@@ -23,7 +23,6 @@
#include <linux/spinlock.h>
#include <linux/io.h>
-#include <mach/hardware.h>
#include <asm/irq.h>
#include <asm/mach/irq.h>
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c
index 947ef7981d92..e2829af69f96 100644
--- a/arch/arm/common/sa1111.c
+++ b/arch/arm/common/sa1111.c
@@ -26,13 +26,16 @@
#include <linux/clk.h>
#include <linux/io.h>
-#include <mach/hardware.h>
#include <asm/mach/irq.h>
#include <asm/mach-types.h>
#include <linux/sizes.h>
#include <asm/hardware/sa1111.h>
+#ifdef CONFIG_ARCH_SA1100
+#include <mach/hardware.h>
+#endif
+
/* SA1111 IRQs */
#define IRQ_GPAIN0 (0)
#define IRQ_GPAIN1 (1)
diff --git a/arch/arm/mach-pxa/cm-x2xx.c b/arch/arm/mach-pxa/cm-x2xx.c
index ff976d1217eb..c731539add9f 100644
--- a/arch/arm/mach-pxa/cm-x2xx.c
+++ b/arch/arm/mach-pxa/cm-x2xx.c
@@ -14,6 +14,7 @@
#include <linux/dm9000.h>
#include <linux/leds.h>
+#include <linux/soc/pxa/cpu.h>
#include <asm/mach/arch.h>
#include <asm/mach-types.h>
@@ -32,6 +33,7 @@
#undef GPIO88_GPIO
#undef GPIO89_GPIO
#include <mach/audio.h>
+#include <mach/addr-map.h>
#include <linux/platform_data/video-pxafb.h>
#include <mach/smemc.h>
diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c
index 425855f456f2..f3f2703fffc6 100644
--- a/arch/arm/mach-pxa/cm-x300.c
+++ b/arch/arm/mach-pxa/cm-x300.c
@@ -40,6 +40,8 @@
#include <linux/spi/spi_gpio.h>
#include <linux/spi/tdo24m.h>
+#include <linux/soc/pxa/cpu.h>
+
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/setup.h>
diff --git a/arch/arm/mach-pxa/colibri-evalboard.c b/arch/arm/mach-pxa/colibri-evalboard.c
index b9c173ede891..b62af07b8f96 100644
--- a/arch/arm/mach-pxa/colibri-evalboard.c
+++ b/arch/arm/mach-pxa/colibri-evalboard.c
@@ -13,7 +13,6 @@
#include <linux/interrupt.h>
#include <linux/gpio/machine.h>
#include <asm/mach-types.h>
-#include <mach/hardware.h>
#include <asm/mach/arch.h>
#include <linux/i2c.h>
#include <linux/platform_data/i2c-pxa.h>
diff --git a/arch/arm/mach-pxa/colibri-pxa270-income.c b/arch/arm/mach-pxa/colibri-pxa270-income.c
index dbad2f13706c..957dc9ad4873 100644
--- a/arch/arm/mach-pxa/colibri-pxa270-income.c
+++ b/arch/arm/mach-pxa/colibri-pxa270-income.c
@@ -25,7 +25,6 @@
#include <asm/irq.h>
#include <asm/mach-types.h>
-#include <mach/hardware.h>
#include <linux/platform_data/mmc-pxamci.h>
#include <linux/platform_data/usb-ohci-pxa27x.h>
#include "pxa27x.h"
diff --git a/arch/arm/mach-pxa/colibri-pxa300.c b/arch/arm/mach-pxa/colibri-pxa300.c
index 82052dfd96b6..4ceeea142bfd 100644
--- a/arch/arm/mach-pxa/colibri-pxa300.c
+++ b/arch/arm/mach-pxa/colibri-pxa300.c
@@ -13,6 +13,7 @@
#include <linux/platform_device.h>
#include <linux/gpio.h>
#include <linux/interrupt.h>
+#include <linux/soc/pxa/cpu.h>
#include <asm/mach-types.h>
#include <linux/sizes.h>
diff --git a/arch/arm/mach-pxa/colibri-pxa3xx.c b/arch/arm/mach-pxa/colibri-pxa3xx.c
index 3cead80a2b37..701dfef930eb 100644
--- a/arch/arm/mach-pxa/colibri-pxa3xx.c
+++ b/arch/arm/mach-pxa/colibri-pxa3xx.c
@@ -13,7 +13,6 @@
#include <linux/gpio.h>
#include <linux/etherdevice.h>
#include <asm/mach-types.h>
-#include <mach/hardware.h>
#include <linux/sizes.h>
#include <asm/system_info.h>
#include <asm/mach/arch.h>
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c
index f2d73289230f..e9743ebbee86 100644
--- a/arch/arm/mach-pxa/corgi.c
+++ b/arch/arm/mach-pxa/corgi.c
@@ -39,7 +39,6 @@
#include <asm/setup.h>
#include <asm/memory.h>
#include <asm/mach-types.h>
-#include <mach/hardware.h>
#include <asm/irq.h>
#include <asm/mach/arch.h>
diff --git a/arch/arm/mach-pxa/corgi_pm.c b/arch/arm/mach-pxa/corgi_pm.c
index 092dcb9fced5..ff1ac9bf37cb 100644
--- a/arch/arm/mach-pxa/corgi_pm.c
+++ b/arch/arm/mach-pxa/corgi_pm.c
@@ -19,7 +19,6 @@
#include <asm/irq.h>
#include <asm/mach-types.h>
-#include <mach/hardware.h>
#include <mach/corgi.h>
#include <mach/pxa2xx-regs.h>
diff --git a/arch/arm/mach-pxa/csb726.c b/arch/arm/mach-pxa/csb726.c
index 98fcdc6e2944..d48493445ae5 100644
--- a/arch/arm/mach-pxa/csb726.c
+++ b/arch/arm/mach-pxa/csb726.c
@@ -17,6 +17,7 @@
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
+
#include "csb726.h"
#include "pxa27x.h"
#include <linux/platform_data/mmc-pxamci.h>
diff --git a/arch/arm/mach-pxa/devices.c b/arch/arm/mach-pxa/devices.c
index 524d6093e0c7..c289a6c2311d 100644
--- a/arch/arm/mach-pxa/devices.c
+++ b/arch/arm/mach-pxa/devices.c
@@ -8,6 +8,7 @@
#include <linux/dmaengine.h>
#include <linux/spi/pxa2xx_spi.h>
#include <linux/platform_data/i2c-pxa.h>
+#include <linux/soc/pxa/cpu.h>
#include "udc.h"
#include <linux/platform_data/usb-pxa3xx-ulpi.h>
@@ -19,7 +20,6 @@
#include <linux/platform_data/keypad-pxa27x.h>
#include <linux/platform_data/media/camera-pxa.h>
#include <mach/audio.h>
-#include <mach/hardware.h>
#include <linux/platform_data/mmp_dma.h>
#include <linux/platform_data/mtd-nand-pxa3xx.h>
diff --git a/arch/arm/mach-pxa/ezx.c b/arch/arm/mach-pxa/ezx.c
index ec10851b63cf..a77c5988a446 100644
--- a/arch/arm/mach-pxa/ezx.c
+++ b/arch/arm/mach-pxa/ezx.c
@@ -29,7 +29,6 @@
#include "pxa27x.h"
#include <linux/platform_data/video-pxafb.h>
#include <linux/platform_data/usb-ohci-pxa27x.h>
-#include <mach/hardware.h>
#include <linux/platform_data/keypad-pxa27x.h>
#include <linux/platform_data/media/camera-pxa.h>
diff --git a/arch/arm/mach-pxa/generic.c b/arch/arm/mach-pxa/generic.c
index ab7cdffd7ea8..3c3cd90bb9b4 100644
--- a/arch/arm/mach-pxa/generic.c
+++ b/arch/arm/mach-pxa/generic.c
@@ -17,11 +17,12 @@
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
+#include <linux/soc/pxa/cpu.h>
-#include <mach/hardware.h>
#include <asm/mach/map.h>
#include <asm/mach-types.h>
+#include <mach/addr-map.h>
#include <mach/irqs.h>
#include <mach/reset.h>
#include <mach/smemc.h>
diff --git a/arch/arm/mach-pxa/gumstix.c b/arch/arm/mach-pxa/gumstix.c
index 4b4589cf431f..b50080d55fa4 100644
--- a/arch/arm/mach-pxa/gumstix.c
+++ b/arch/arm/mach-pxa/gumstix.c
@@ -28,7 +28,6 @@
#include <asm/setup.h>
#include <asm/memory.h>
#include <asm/mach-types.h>
-#include <mach/hardware.h>
#include <asm/irq.h>
#include <linux/sizes.h>
diff --git a/arch/arm/mach-pxa/hx4700.c b/arch/arm/mach-pxa/hx4700.c
index 311268d186ab..4dce8834c5b6 100644
--- a/arch/arm/mach-pxa/hx4700.c
+++ b/arch/arm/mach-pxa/hx4700.c
@@ -37,11 +37,11 @@
#include <linux/usb/gpio_vbus.h>
#include <linux/platform_data/i2c-pxa.h>
-#include <mach/hardware.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include "pxa27x.h"
+#include <mach/addr-map.h>
#include <mach/hx4700.h>
#include <linux/platform_data/irda-pxaficp.h>
diff --git a/arch/arm/mach-pxa/idp.c b/arch/arm/mach-pxa/idp.c
index fb0850af8496..57c0511472bc 100644
--- a/arch/arm/mach-pxa/idp.c
+++ b/arch/arm/mach-pxa/idp.c
@@ -22,7 +22,6 @@
#include <asm/setup.h>
#include <asm/memory.h>
#include <asm/mach-types.h>
-#include <mach/hardware.h>
#include <asm/irq.h>
#include <asm/mach/arch.h>
diff --git a/arch/arm/mach-pxa/include/mach/pxa-regs.h b/arch/arm/mach-pxa/include/mach/pxa-regs.h
new file mode 100644
index 000000000000..ba5120c06b8a
--- /dev/null
+++ b/arch/arm/mach-pxa/include/mach/pxa-regs.h
@@ -0,0 +1,52 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Author: Nicolas Pitre
+ * Created: Jun 15, 2001
+ * Copyright: MontaVista Software Inc.
+ */
+#ifndef __ASM_MACH_PXA_REGS_H
+#define __ASM_MACH_PXA_REGS_H
+
+/*
+ * Workarounds for at least 2 errata so far require this.
+ * The mapping is set in mach-pxa/generic.c.
+ */
+#define UNCACHED_PHYS_0 0xfe000000
+#define UNCACHED_PHYS_0_SIZE 0x00100000
+
+/*
+ * Intel PXA2xx internal register mapping:
+ *
+ * 0x40000000 - 0x41ffffff <--> 0xf2000000 - 0xf3ffffff
+ * 0x44000000 - 0x45ffffff <--> 0xf4000000 - 0xf5ffffff
+ * 0x48000000 - 0x49ffffff <--> 0xf6000000 - 0xf7ffffff
+ * 0x4c000000 - 0x4dffffff <--> 0xf8000000 - 0xf9ffffff
+ * 0x50000000 - 0x51ffffff <--> 0xfa000000 - 0xfbffffff
+ * 0x54000000 - 0x55ffffff <--> 0xfc000000 - 0xfdffffff
+ * 0x58000000 - 0x59ffffff <--> 0xfe000000 - 0xffffffff
+ *
+ * Note that not all PXA2xx chips implement all those addresses, and the
+ * kernel only maps the minimum needed range of this mapping.
+ */
+#define io_v2p(x) (0x3c000000 + ((x) & 0x01ffffff) + (((x) & 0x0e000000) << 1))
+#define io_p2v(x) IOMEM(0xf2000000 + ((x) & 0x01ffffff) + (((x) & 0x1c000000) >> 1))
+
+#ifndef __ASSEMBLY__
+# define __REG(x) (*((volatile u32 __iomem *)io_p2v(x)))
+
+/* With indexed regs we don't want to feed the index through io_p2v()
+ especially if it is a variable, otherwise horrible code will result. */
+# define __REG2(x,y) \
+ (*(volatile u32 __iomem*)((u32)&__REG(x) + (y)))
+
+# define __PREG(x) (io_v2p((u32)&(x)))
+
+#else
+
+# define __REG(x) io_p2v(x)
+# define __PREG(x) io_v2p(x)
+
+#endif
+
+
+#endif
diff --git a/arch/arm/mach-pxa/include/mach/pxa2xx-regs.h b/arch/arm/mach-pxa/include/mach/pxa2xx-regs.h
index fa121e135915..f68b573ab4a0 100644
--- a/arch/arm/mach-pxa/include/mach/pxa2xx-regs.h
+++ b/arch/arm/mach-pxa/include/mach/pxa2xx-regs.h
@@ -11,7 +11,7 @@
#ifndef __PXA2XX_REGS_H
#define __PXA2XX_REGS_H
-#include <mach/hardware.h>
+#include "pxa-regs.h"
/*
* Power Manager
diff --git a/arch/arm/mach-pxa/include/mach/pxa3xx-regs.h b/arch/arm/mach-pxa/include/mach/pxa3xx-regs.h
index 070f6c74196e..8eb1ba533e1c 100644
--- a/arch/arm/mach-pxa/include/mach/pxa3xx-regs.h
+++ b/arch/arm/mach-pxa/include/mach/pxa3xx-regs.h
@@ -10,7 +10,7 @@
#ifndef __ASM_ARCH_PXA3XX_REGS_H
#define __ASM_ARCH_PXA3XX_REGS_H
-#include <mach/hardware.h>
+#include "pxa-regs.h"
/*
* Oscillator Configuration Register (OSCC)
diff --git a/arch/arm/mach-pxa/include/mach/regs-ac97.h b/arch/arm/mach-pxa/include/mach/regs-ac97.h
index 1db96fd4df32..ec09b9635e25 100644
--- a/arch/arm/mach-pxa/include/mach/regs-ac97.h
+++ b/arch/arm/mach-pxa/include/mach/regs-ac97.h
@@ -2,7 +2,7 @@
#ifndef __ASM_ARCH_REGS_AC97_H
#define __ASM_ARCH_REGS_AC97_H
-#include <mach/hardware.h>
+#include "pxa-regs.h"
/*
* AC97 Controller registers
diff --git a/arch/arm/mach-pxa/include/mach/regs-ost.h b/arch/arm/mach-pxa/include/mach/regs-ost.h
index deb564ed8ee7..109d0ed264df 100644
--- a/arch/arm/mach-pxa/include/mach/regs-ost.h
+++ b/arch/arm/mach-pxa/include/mach/regs-ost.h
@@ -2,7 +2,7 @@
#ifndef __ASM_MACH_REGS_OST_H
#define __ASM_MACH_REGS_OST_H
-#include <mach/hardware.h>
+#include "pxa-regs.h"
/*
* OS Timer & Match Registers
diff --git a/arch/arm/mach-pxa/include/mach/trizeps4.h b/arch/arm/mach-pxa/include/mach/trizeps4.h
index 3cddb1428c5e..27926629f9c6 100644
--- a/arch/arm/mach-pxa/include/mach/trizeps4.h
+++ b/arch/arm/mach-pxa/include/mach/trizeps4.h
@@ -11,6 +11,7 @@
#ifndef _TRIPEPS4_H_
#define _TRIPEPS4_H_
+#include <mach/addr-map.h>
#include "irqs.h" /* PXA_GPIO_TO_IRQ */
/* physical memory regions */
diff --git a/arch/arm/mach-pxa/irq.c b/arch/arm/mach-pxa/irq.c
index 74efc3ab595f..f25c30e8a834 100644
--- a/arch/arm/mach-pxa/irq.c
+++ b/arch/arm/mach-pxa/irq.c
@@ -17,13 +17,14 @@
#include <linux/irq.h>
#include <linux/of_address.h>
#include <linux/of_irq.h>
+#include <linux/soc/pxa/cpu.h>
#include <asm/exception.h>
-#include <mach/hardware.h>
#include <mach/irqs.h>
#include "generic.h"
+#include "pxa-regs.h"
#define ICIP (0x000)
#define ICMR (0x004)
diff --git a/arch/arm/mach-pxa/littleton.c b/arch/arm/mach-pxa/littleton.c
index 793f61375ee8..7486056e6cce 100644
--- a/arch/arm/mach-pxa/littleton.c
+++ b/arch/arm/mach-pxa/littleton.c
@@ -31,7 +31,6 @@
#include <asm/setup.h>
#include <asm/memory.h>
#include <asm/mach-types.h>
-#include <mach/hardware.h>
#include <asm/irq.h>
#include <asm/mach/arch.h>
diff --git a/arch/arm/mach-pxa/lpd270.c b/arch/arm/mach-pxa/lpd270.c
index 20e00e970385..1b7c2def3033 100644
--- a/arch/arm/mach-pxa/lpd270.c
+++ b/arch/arm/mach-pxa/lpd270.c
@@ -28,7 +28,6 @@
#include <asm/setup.h>
#include <asm/memory.h>
#include <asm/mach-types.h>
-#include <mach/hardware.h>
#include <asm/irq.h>
#include <linux/sizes.h>
@@ -39,6 +38,7 @@
#include "pxa27x.h"
#include "lpd270.h"
+#include <mach/addr-map.h>
#include <mach/audio.h>
#include <linux/platform_data/video-pxafb.h>
#include <linux/platform_data/mmc-pxamci.h>
diff --git a/arch/arm/mach-pxa/lubbock.c b/arch/arm/mach-pxa/lubbock.c
index 742d18a1f7dc..477d144f039c 100644
--- a/arch/arm/mach-pxa/lubbock.c
+++ b/arch/arm/mach-pxa/lubbock.c
@@ -34,7 +34,6 @@
#include <asm/setup.h>
#include <asm/memory.h>
#include <asm/mach-types.h>
-#include <mach/hardware.h>
#include <asm/irq.h>
#include <linux/sizes.h>
diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c
index e1a394ac3eea..ce4c677be868 100644
--- a/arch/arm/mach-pxa/magician.c
+++ b/arch/arm/mach-pxa/magician.c
@@ -30,12 +30,12 @@
#include <linux/usb/gpio_vbus.h>
#include <linux/platform_data/i2c-pxa.h>
-#include <mach/hardware.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/system_info.h>
#include "pxa27x.h"
+#include <mach/addr-map.h>
#include <mach/magician.h>
#include <linux/platform_data/video-pxafb.h>
#include <linux/platform_data/mmc-pxamci.h>
diff --git a/arch/arm/mach-pxa/mainstone.c b/arch/arm/mach-pxa/mainstone.c
index ef79417ca001..16883c996c45 100644
--- a/arch/arm/mach-pxa/mainstone.c
+++ b/arch/arm/mach-pxa/mainstone.c
@@ -35,7 +35,6 @@
#include <asm/setup.h>
#include <asm/memory.h>
#include <asm/mach-types.h>
-#include <mach/hardware.h>
#include <asm/irq.h>
#include <linux/sizes.h>
@@ -52,6 +51,7 @@
#include <linux/platform_data/irda-pxaficp.h>
#include <linux/platform_data/usb-ohci-pxa27x.h>
#include <linux/platform_data/keypad-pxa27x.h>
+#include <mach/addr-map.h>
#include <mach/smemc.h>
#include "generic.h"
diff --git a/arch/arm/mach-pxa/mfp-pxa2xx.c b/arch/arm/mach-pxa/mfp-pxa2xx.c
index 6a5451b186c2..6bc7206fd2ac 100644
--- a/arch/arm/mach-pxa/mfp-pxa2xx.c
+++ b/arch/arm/mach-pxa/mfp-pxa2xx.c
@@ -16,6 +16,7 @@
#include <linux/init.h>
#include <linux/io.h>
#include <linux/syscore_ops.h>
+#include <linux/soc/pxa/cpu.h>
#include <mach/pxa2xx-regs.h>
#include "mfp-pxa2xx.h"
diff --git a/arch/arm/mach-pxa/mfp-pxa3xx.c b/arch/arm/mach-pxa/mfp-pxa3xx.c
index 56114df9700d..f26b5e5412cf 100644
--- a/arch/arm/mach-pxa/mfp-pxa3xx.c
+++ b/arch/arm/mach-pxa/mfp-pxa3xx.c
@@ -16,7 +16,6 @@
#include <linux/io.h>
#include <linux/syscore_ops.h>
-#include <mach/hardware.h>
#include "mfp-pxa3xx.h"
#include <mach/pxa3xx-regs.h>
diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c
index 3a4ecc3c8f8b..8dd791ee49bf 100644
--- a/arch/arm/mach-pxa/poodle.c
+++ b/arch/arm/mach-pxa/poodle.c
@@ -30,7 +30,6 @@
#include <linux/mtd/sharpsl.h>
#include <linux/memblock.h>
-#include <mach/hardware.h>
#include <asm/mach-types.h>
#include <asm/irq.h>
#include <asm/setup.h>
diff --git a/arch/arm/mach-pxa/pxa-regs.h b/arch/arm/mach-pxa/pxa-regs.h
new file mode 100644
index 000000000000..584d2ac592cc
--- /dev/null
+++ b/arch/arm/mach-pxa/pxa-regs.h
@@ -0,0 +1 @@
+#include <mach/pxa-regs.h>
diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c
index 0d25cc45f825..305047ebd2f1 100644
--- a/arch/arm/mach-pxa/pxa25x.c
+++ b/arch/arm/mach-pxa/pxa25x.c
@@ -26,14 +26,15 @@
#include <linux/irq.h>
#include <linux/irqchip.h>
#include <linux/platform_data/mmp_dma.h>
+#include <linux/soc/pxa/cpu.h>
#include <asm/mach/map.h>
#include <asm/suspend.h>
-#include <mach/hardware.h>
#include <mach/irqs.h>
#include "pxa25x.h"
#include <mach/reset.h>
#include "pm.h"
+#include <mach/addr-map.h>
#include <mach/smemc.h>
#include "generic.h"
diff --git a/arch/arm/mach-pxa/pxa25x.h b/arch/arm/mach-pxa/pxa25x.h
index b58d0fbdb4db..403bc16c2ed2 100644
--- a/arch/arm/mach-pxa/pxa25x.h
+++ b/arch/arm/mach-pxa/pxa25x.h
@@ -2,7 +2,7 @@
#ifndef __MACH_PXA25x_H
#define __MACH_PXA25x_H
-#include <mach/hardware.h>
+#include <mach/addr-map.h>
#include <mach/pxa2xx-regs.h>
#include "mfp-pxa25x.h"
#include <mach/irqs.h>
diff --git a/arch/arm/mach-pxa/pxa27x-udc.h b/arch/arm/mach-pxa/pxa27x-udc.h
index faf73804697f..2d3df3b1cb68 100644
--- a/arch/arm/mach-pxa/pxa27x-udc.h
+++ b/arch/arm/mach-pxa/pxa27x-udc.h
@@ -2,6 +2,8 @@
#ifndef _ASM_ARCH_PXA27X_UDC_H
#define _ASM_ARCH_PXA27X_UDC_H
+#include "pxa-regs.h"
+
#ifdef _ASM_ARCH_PXA25X_UDC_H
#error You cannot include both PXA25x and PXA27x UDC support
#endif
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c
index f7e89831e85b..a81ac88ecbfd 100644
--- a/arch/arm/mach-pxa/pxa27x.c
+++ b/arch/arm/mach-pxa/pxa27x.c
@@ -23,9 +23,9 @@
#include <linux/irq.h>
#include <linux/platform_data/i2c-pxa.h>
#include <linux/platform_data/mmp_dma.h>
+#include <linux/soc/pxa/cpu.h>
#include <asm/mach/map.h>
-#include <mach/hardware.h>
#include <asm/irq.h>
#include <asm/suspend.h>
#include <mach/irqs.h>
@@ -33,6 +33,7 @@
#include <mach/reset.h>
#include <linux/platform_data/usb-ohci-pxa27x.h>
#include "pm.h"
+#include <mach/addr-map.h>
#include <mach/smemc.h>
#include "generic.h"
diff --git a/arch/arm/mach-pxa/pxa27x.h b/arch/arm/mach-pxa/pxa27x.h
index abdc02fb4f03..6c99090647d2 100644
--- a/arch/arm/mach-pxa/pxa27x.h
+++ b/arch/arm/mach-pxa/pxa27x.h
@@ -3,7 +3,7 @@
#define __MACH_PXA27x_H
#include <linux/suspend.h>
-#include <mach/hardware.h>
+#include <mach/addr-map.h>
#include <mach/pxa2xx-regs.h>
#include "mfp-pxa27x.h"
#include <mach/irqs.h>
diff --git a/arch/arm/mach-pxa/pxa2xx.c b/arch/arm/mach-pxa/pxa2xx.c
index 2d26cd2afbf3..ac72acb43e26 100644
--- a/arch/arm/mach-pxa/pxa2xx.c
+++ b/arch/arm/mach-pxa/pxa2xx.c
@@ -12,7 +12,6 @@
#include <linux/device.h>
#include <linux/io.h>
-#include <mach/hardware.h>
#include <mach/pxa2xx-regs.h>
#include "mfp-pxa25x.h"
#include <mach/reset.h>
diff --git a/arch/arm/mach-pxa/pxa300.c b/arch/arm/mach-pxa/pxa300.c
index 7f2f5a6a2263..f77ec118d5b9 100644
--- a/arch/arm/mach-pxa/pxa300.c
+++ b/arch/arm/mach-pxa/pxa300.c
@@ -14,6 +14,7 @@
#include <linux/kernel.h>
#include <linux/platform_device.h>
#include <linux/io.h>
+#include <linux/soc/pxa/cpu.h>
#include "pxa300.h"
diff --git a/arch/arm/mach-pxa/pxa320.c b/arch/arm/mach-pxa/pxa320.c
index 78abcc741df7..e372e6c118de 100644
--- a/arch/arm/mach-pxa/pxa320.c
+++ b/arch/arm/mach-pxa/pxa320.c
@@ -14,6 +14,7 @@
#include <linux/kernel.h>
#include <linux/platform_device.h>
#include <linux/io.h>
+#include <linux/soc/pxa/cpu.h>
#include "pxa320.h"
diff --git a/arch/arm/mach-pxa/pxa3xx-ulpi.c b/arch/arm/mach-pxa/pxa3xx-ulpi.c
index 4bd7da1f8657..c29a7f0fa1b0 100644
--- a/arch/arm/mach-pxa/pxa3xx-ulpi.c
+++ b/arch/arm/mach-pxa/pxa3xx-ulpi.c
@@ -21,8 +21,8 @@
#include <linux/clk.h>
#include <linux/usb.h>
#include <linux/usb/otg.h>
+#include <linux/soc/pxa/cpu.h>
-#include <mach/hardware.h>
#include "regs-u2d.h"
#include <linux/platform_data/usb-pxa3xx-ulpi.h>
diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c
index 6eb1c24d7395..fc84aed99481 100644
--- a/arch/arm/mach-pxa/pxa3xx.c
+++ b/arch/arm/mach-pxa/pxa3xx.c
@@ -24,14 +24,15 @@
#include <linux/syscore_ops.h>
#include <linux/platform_data/i2c-pxa.h>
#include <linux/platform_data/mmp_dma.h>
+#include <linux/soc/pxa/cpu.h>
#include <asm/mach/map.h>
#include <asm/suspend.h>
-#include <mach/hardware.h>
#include <mach/pxa3xx-regs.h>
#include <mach/reset.h>
#include <linux/platform_data/usb-ohci-pxa27x.h>
#include "pm.h"
+#include <mach/addr-map.h>
#include <mach/smemc.h>
#include <mach/irqs.h>
diff --git a/arch/arm/mach-pxa/pxa3xx.h b/arch/arm/mach-pxa/pxa3xx.h
index 6d4502aa9d06..22ace053ea25 100644
--- a/arch/arm/mach-pxa/pxa3xx.h
+++ b/arch/arm/mach-pxa/pxa3xx.h
@@ -2,7 +2,7 @@
#ifndef __MACH_PXA3XX_H
#define __MACH_PXA3XX_H
-#include <mach/hardware.h>
+#include <mach/addr-map.h>
#include <mach/pxa3xx-regs.h>
#include <mach/irqs.h>
diff --git a/arch/arm/mach-pxa/pxa930.c b/arch/arm/mach-pxa/pxa930.c
index bf91de4267e5..b9021a40cbd1 100644
--- a/arch/arm/mach-pxa/pxa930.c
+++ b/arch/arm/mach-pxa/pxa930.c
@@ -13,6 +13,7 @@
#include <linux/irq.h>
#include <linux/gpio-pxa.h>
#include <linux/platform_device.h>
+#include <linux/soc/pxa/cpu.h>
#include "pxa930.h"
diff --git a/arch/arm/mach-pxa/regs-rtc.h b/arch/arm/mach-pxa/regs-rtc.h
index b1f9ff14e335..96255a0f595e 100644
--- a/arch/arm/mach-pxa/regs-rtc.h
+++ b/arch/arm/mach-pxa/regs-rtc.h
@@ -2,7 +2,7 @@
#ifndef __ASM_MACH_REGS_RTC_H
#define __ASM_MACH_REGS_RTC_H
-#include <mach/hardware.h>
+#include "pxa-regs.h"
/*
* Real Time Clock
diff --git a/arch/arm/mach-pxa/regs-uart.h b/arch/arm/mach-pxa/regs-uart.h
index 9a168f83afeb..490e9ca16297 100644
--- a/arch/arm/mach-pxa/regs-uart.h
+++ b/arch/arm/mach-pxa/regs-uart.h
@@ -2,6 +2,8 @@
#ifndef __ASM_ARCH_REGS_UART_H
#define __ASM_ARCH_REGS_UART_H
+#include "pxa-regs.h"
+
/*
* UARTs
*/
diff --git a/arch/arm/mach-pxa/sleep.S b/arch/arm/mach-pxa/sleep.S
index 6c5b3ffd2cd3..272efeb954f4 100644
--- a/arch/arm/mach-pxa/sleep.S
+++ b/arch/arm/mach-pxa/sleep.S
@@ -13,7 +13,6 @@
#include <linux/linkage.h>
#include <asm/assembler.h>
-#include <mach/hardware.h>
#include <mach/smemc.h>
#include <mach/pxa2xx-regs.h>
diff --git a/arch/arm/mach-pxa/smemc.c b/arch/arm/mach-pxa/smemc.c
index 32e82cc92ea5..47b99549d616 100644
--- a/arch/arm/mach-pxa/smemc.c
+++ b/arch/arm/mach-pxa/smemc.c
@@ -8,8 +8,8 @@
#include <linux/init.h>
#include <linux/io.h>
#include <linux/syscore_ops.h>
+#include <linux/soc/pxa/cpu.h>
-#include <mach/hardware.h>
#include <mach/smemc.h>
#ifdef CONFIG_PM
diff --git a/arch/arm/mach-pxa/spitz_pm.c b/arch/arm/mach-pxa/spitz_pm.c
index 25a1f8c5a738..201dabe883b6 100644
--- a/arch/arm/mach-pxa/spitz_pm.c
+++ b/arch/arm/mach-pxa/spitz_pm.c
@@ -18,7 +18,6 @@
#include <asm/irq.h>
#include <asm/mach-types.h>
-#include <mach/hardware.h>
#include <mach/spitz.h>
#include "pxa27x.h"
diff --git a/arch/arm/mach-pxa/standby.S b/arch/arm/mach-pxa/standby.S
index eab1645bb4ad..626fecdefb1c 100644
--- a/arch/arm/mach-pxa/standby.S
+++ b/arch/arm/mach-pxa/standby.S
@@ -11,7 +11,6 @@
#include <linux/linkage.h>
#include <asm/assembler.h>
-#include <mach/hardware.h>
#include <mach/pxa2xx-regs.h>
diff --git a/arch/arm/mach-pxa/xcep.c b/arch/arm/mach-pxa/xcep.c
index f485146b899f..e6ab428287ae 100644
--- a/arch/arm/mach-pxa/xcep.c
+++ b/arch/arm/mach-pxa/xcep.c
@@ -24,8 +24,8 @@
#include <asm/mach/irq.h>
#include <asm/mach/map.h>
-#include <mach/hardware.h>
#include "pxa25x.h"
+#include <mach/addr-map.h>
#include <mach/smemc.h>
#include "generic.h"
diff --git a/arch/arm/mach-pxa/zylonite.c b/arch/arm/mach-pxa/zylonite.c
index bf2ab5bd49ec..c56c86b35025 100644
--- a/arch/arm/mach-pxa/zylonite.c
+++ b/arch/arm/mach-pxa/zylonite.c
@@ -20,6 +20,7 @@
#include <linux/pwm.h>
#include <linux/pwm_backlight.h>
#include <linux/smc91x.h>
+#include <linux/soc/pxa/cpu.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
diff --git a/arch/arm/mach-pxa/zylonite.h b/arch/arm/mach-pxa/zylonite.h
index 7300ec2aac0d..afe3efcb8e04 100644
--- a/arch/arm/mach-pxa/zylonite.h
+++ b/arch/arm/mach-pxa/zylonite.h
@@ -2,6 +2,8 @@
#ifndef __ASM_ARCH_ZYLONITE_H
#define __ASM_ARCH_ZYLONITE_H
+#include <linux/soc/pxa/cpu.h>
+
#define ZYLONITE_ETH_PHYS 0x14000000
#define EXT_GPIO(x) (128 + (x))
diff --git a/arch/arm/mach-pxa/zylonite_pxa300.c b/arch/arm/mach-pxa/zylonite_pxa300.c
index 956fec1c4940..50a8a3547dbc 100644
--- a/arch/arm/mach-pxa/zylonite_pxa300.c
+++ b/arch/arm/mach-pxa/zylonite_pxa300.c
@@ -17,6 +17,7 @@
#include <linux/platform_data/i2c-pxa.h>
#include <linux/platform_data/pca953x.h>
#include <linux/gpio.h>
+#include <linux/soc/pxa/cpu.h>
#include "pxa300.h"
#include "devices.h"
diff --git a/arch/arm/mach-pxa/zylonite_pxa320.c b/arch/arm/mach-pxa/zylonite_pxa320.c
index 94cb834f36cd..67cab4f1194b 100644
--- a/arch/arm/mach-pxa/zylonite_pxa320.c
+++ b/arch/arm/mach-pxa/zylonite_pxa320.c
@@ -14,6 +14,7 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/gpio.h>
+#include <linux/soc/pxa/cpu.h>
#include "pxa320.h"
#include "zylonite.h"
diff --git a/drivers/clk/pxa/clk-pxa3xx.c b/drivers/clk/pxa/clk-pxa3xx.c
index 60db92772e72..027b78183565 100644
--- a/drivers/clk/pxa/clk-pxa3xx.c
+++ b/drivers/clk/pxa/clk-pxa3xx.c
@@ -14,6 +14,7 @@
#include <linux/clk-provider.h>
#include <linux/clkdev.h>
#include <linux/of.h>
+#include <linux/soc/pxa/cpu.h>
#include <mach/smemc.h>
#include <mach/pxa3xx-regs.h>
diff --git a/drivers/cpufreq/pxa2xx-cpufreq.c b/drivers/cpufreq/pxa2xx-cpufreq.c
index f0b6f52eb2c3..0f0e676ff781 100644
--- a/drivers/cpufreq/pxa2xx-cpufreq.c
+++ b/drivers/cpufreq/pxa2xx-cpufreq.c
@@ -24,6 +24,7 @@
#include <linux/cpufreq.h>
#include <linux/err.h>
#include <linux/regulator/consumer.h>
+#include <linux/soc/pxa/cpu.h>
#include <linux/io.h>
#include <mach/pxa2xx-regs.h>
diff --git a/drivers/cpufreq/pxa3xx-cpufreq.c b/drivers/cpufreq/pxa3xx-cpufreq.c
index 32f993c94675..d3b398b4aa6a 100644
--- a/drivers/cpufreq/pxa3xx-cpufreq.c
+++ b/drivers/cpufreq/pxa3xx-cpufreq.c
@@ -8,6 +8,7 @@
#include <linux/sched.h>
#include <linux/init.h>
#include <linux/cpufreq.h>
+#include <linux/soc/pxa/cpu.h>
#include <linux/slab.h>
#include <linux/io.h>
diff --git a/drivers/input/mouse/pxa930_trkball.c b/drivers/input/mouse/pxa930_trkball.c
index 41acde60b60f..fb04c851aaa7 100644
--- a/drivers/input/mouse/pxa930_trkball.c
+++ b/drivers/input/mouse/pxa930_trkball.c
@@ -15,7 +15,6 @@
#include <linux/io.h>
#include <linux/slab.h>
-#include <mach/hardware.h>
#include <linux/platform_data/mouse-pxa930_trkball.h>
/* Trackball Controller Register Definitions */
diff --git a/drivers/input/touchscreen/zylonite-wm97xx.c b/drivers/input/touchscreen/zylonite-wm97xx.c
index 0f4ac7f844ce..f57bdf083188 100644
--- a/drivers/input/touchscreen/zylonite-wm97xx.c
+++ b/drivers/input/touchscreen/zylonite-wm97xx.c
@@ -21,9 +21,9 @@
#include <linux/irq.h>
#include <linux/interrupt.h>
#include <linux/io.h>
+#include <linux/soc/pxa/cpu.h>
#include <linux/wm97xx.h>
-#include <mach/hardware.h>
#include <mach/mfp.h>
#include <mach/regs-ac97.h>
diff --git a/drivers/leds/leds-locomo.c b/drivers/leds/leds-locomo.c
index 42dc46e3f00f..9aa3fccd71fb 100644
--- a/drivers/leds/leds-locomo.c
+++ b/drivers/leds/leds-locomo.c
@@ -11,7 +11,6 @@
#include <linux/device.h>
#include <linux/leds.h>
-#include <mach/hardware.h>
#include <asm/hardware/locomo.h>
static void locomoled_brightness_set(struct led_classdev *led_cdev,
diff --git a/drivers/mmc/host/pxamci.c b/drivers/mmc/host/pxamci.c
index 024acc1b0a2e..26740966ca76 100644
--- a/drivers/mmc/host/pxamci.c
+++ b/drivers/mmc/host/pxamci.c
@@ -31,10 +31,10 @@
#include <linux/gfp.h>
#include <linux/of.h>
#include <linux/of_device.h>
+#include <linux/soc/pxa/cpu.h>
#include <linux/sizes.h>
-#include <mach/hardware.h>
#include <linux/platform_data/mmc-pxamci.h>
#include "pxamci.h"
diff --git a/drivers/mtd/maps/pxa2xx-flash.c b/drivers/mtd/maps/pxa2xx-flash.c
index 7d96758a8f04..1749dbbacc13 100644
--- a/drivers/mtd/maps/pxa2xx-flash.c
+++ b/drivers/mtd/maps/pxa2xx-flash.c
@@ -16,8 +16,6 @@
#include <linux/mtd/partitions.h>
#include <asm/io.h>
-#include <mach/hardware.h>
-
#include <asm/mach/flash.h>
#define CACHELINESIZE 32
diff --git a/drivers/mtd/nand/raw/cmx270_nand.c b/drivers/mtd/nand/raw/cmx270_nand.c
index 045b6175ae79..7af3d0bdcdb8 100644
--- a/drivers/mtd/nand/raw/cmx270_nand.c
+++ b/drivers/mtd/nand/raw/cmx270_nand.c
@@ -17,12 +17,13 @@
#include <linux/slab.h>
#include <linux/gpio.h>
#include <linux/module.h>
+#include <linux/soc/pxa/cpu.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/mach-types.h>
-#include <mach/pxa2xx-regs.h>
+#include <mach/addr-map.h>
#define GPIO_NAND_CS (11)
#define GPIO_NAND_RB (89)
diff --git a/drivers/pcmcia/pxa2xx_base.c b/drivers/pcmcia/pxa2xx_base.c
index d6d2f75f8f47..7cd1375d6087 100644
--- a/drivers/pcmcia/pxa2xx_base.c
+++ b/drivers/pcmcia/pxa2xx_base.c
@@ -23,8 +23,8 @@
#include <linux/kernel.h>
#include <linux/spinlock.h>
#include <linux/platform_device.h>
+#include <linux/soc/pxa/cpu.h>
-#include <mach/hardware.h>
#include <mach/smemc.h>
#include <asm/io.h>
#include <asm/irq.h>
diff --git a/drivers/pcmcia/pxa2xx_cm_x2xx.c b/drivers/pcmcia/pxa2xx_cm_x2xx.c
index 14eae238131d..8c5040e55e24 100644
--- a/drivers/pcmcia/pxa2xx_cm_x2xx.c
+++ b/drivers/pcmcia/pxa2xx_cm_x2xx.c
@@ -7,9 +7,9 @@
*/
#include <linux/module.h>
+#include <linux/soc/pxa/cpu.h>
#include <asm/mach-types.h>
-#include <mach/hardware.h>
int cmx255_pcmcia_init(void);
int cmx270_pcmcia_init(void);
diff --git a/drivers/pcmcia/pxa2xx_sharpsl.c b/drivers/pcmcia/pxa2xx_sharpsl.c
index 5fdd25a9e28e..66fe1d1af12a 100644
--- a/drivers/pcmcia/pxa2xx_sharpsl.c
+++ b/drivers/pcmcia/pxa2xx_sharpsl.c
@@ -15,7 +15,6 @@
#include <linux/platform_device.h>
#include <asm/mach-types.h>
-#include <mach/hardware.h>
#include <asm/irq.h>
#include <asm/hardware/scoop.h>
diff --git a/drivers/pcmcia/sa1111_generic.c b/drivers/pcmcia/sa1111_generic.c
index 11783410223b..2f556fa37c43 100644
--- a/drivers/pcmcia/sa1111_generic.c
+++ b/drivers/pcmcia/sa1111_generic.c
@@ -17,7 +17,6 @@
#include <pcmcia/ss.h>
-#include <mach/hardware.h>
#include <asm/hardware/sa1111.h>
#include <asm/mach-types.h>
#include <asm/irq.h>
diff --git a/drivers/pcmcia/sa1111_lubbock.c b/drivers/pcmcia/sa1111_lubbock.c
index 7feb8d61c639..f1b5160cb8fa 100644
--- a/drivers/pcmcia/sa1111_lubbock.c
+++ b/drivers/pcmcia/sa1111_lubbock.c
@@ -17,7 +17,6 @@
#include <linux/init.h>
#include <linux/delay.h>
-#include <mach/hardware.h>
#include <asm/hardware/sa1111.h>
#include <asm/mach-types.h>
diff --git a/drivers/pcmcia/soc_common.c b/drivers/pcmcia/soc_common.c
index 3a8c84bb174d..9276a628473d 100644
--- a/drivers/pcmcia/soc_common.c
+++ b/drivers/pcmcia/soc_common.c
@@ -47,8 +47,6 @@
#include <linux/spinlock.h>
#include <linux/timer.h>
-#include <mach/hardware.h>
-
#include "soc_common.h"
static irqreturn_t soc_common_pcmcia_interrupt(int irq, void *dev);
diff --git a/drivers/rtc/rtc-pxa.c b/drivers/rtc/rtc-pxa.c
index d2f1d8f754bf..ea5da3edacd8 100644
--- a/drivers/rtc/rtc-pxa.c
+++ b/drivers/rtc/rtc-pxa.c
@@ -16,8 +16,6 @@
#include <linux/of.h>
#include <linux/of_device.h>
-#include <mach/hardware.h>
-
#include "rtc-sa1100.h"
#define RTC_DEF_DIVIDER (32768 - 1)
diff --git a/drivers/usb/host/ohci-pxa27x.c b/drivers/usb/host/ohci-pxa27x.c
index 7679fb583e41..0dfe9b7c02e2 100644
--- a/drivers/usb/host/ohci-pxa27x.c
+++ b/drivers/usb/host/ohci-pxa27x.c
@@ -36,8 +36,7 @@
#include <linux/usb.h>
#include <linux/usb/hcd.h>
#include <linux/usb/otg.h>
-
-#include <mach/hardware.h>
+#include <linux/soc/pxa/cpu.h>
#include "ohci.h"
diff --git a/drivers/video/fbdev/pxafb.c b/drivers/video/fbdev/pxafb.c
index f70c9f79622e..ece691a0f18a 100644
--- a/drivers/video/fbdev/pxafb.c
+++ b/drivers/video/fbdev/pxafb.c
@@ -57,10 +57,10 @@
#include <linux/console.h>
#include <linux/of_graph.h>
#include <linux/regulator/consumer.h>
+#include <linux/soc/pxa/cpu.h>
#include <video/of_display_timing.h>
#include <video/videomode.h>
-#include <mach/hardware.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/div64.h>
diff --git a/drivers/watchdog/sa1100_wdt.c b/drivers/watchdog/sa1100_wdt.c
index cbd8c957182f..0f6ffc1e7f4e 100644
--- a/drivers/watchdog/sa1100_wdt.c
+++ b/drivers/watchdog/sa1100_wdt.c
@@ -35,7 +35,6 @@
#endif
#include <mach/reset.h>
-#include <mach/hardware.h>
static unsigned long oscr_freq;
static unsigned long sa1100wdt_users;
diff --git a/arch/arm/mach-pxa/include/mach/hardware.h b/include/linux/soc/pxa/cpu.h
similarity index 75%
rename from arch/arm/mach-pxa/include/mach/hardware.h
rename to include/linux/soc/pxa/cpu.h
index ee7eab16135f..5782450ee45c 100644
--- a/arch/arm/mach-pxa/include/mach/hardware.h
+++ b/include/linux/soc/pxa/cpu.h
@@ -1,61 +1,16 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
- * arch/arm/mach-pxa/include/mach/hardware.h
- *
* Author: Nicolas Pitre
* Created: Jun 15, 2001
* Copyright: MontaVista Software Inc.
*/
-#ifndef __ASM_ARCH_HARDWARE_H
-#define __ASM_ARCH_HARDWARE_H
-
-#include <mach/addr-map.h>
-
-/*
- * Workarounds for at least 2 errata so far require this.
- * The mapping is set in mach-pxa/generic.c.
- */
-#define UNCACHED_PHYS_0 0xfe000000
-#define UNCACHED_PHYS_0_SIZE 0x00100000
-
-/*
- * Intel PXA2xx internal register mapping:
- *
- * 0x40000000 - 0x41ffffff <--> 0xf2000000 - 0xf3ffffff
- * 0x44000000 - 0x45ffffff <--> 0xf4000000 - 0xf5ffffff
- * 0x48000000 - 0x49ffffff <--> 0xf6000000 - 0xf7ffffff
- * 0x4c000000 - 0x4dffffff <--> 0xf8000000 - 0xf9ffffff
- * 0x50000000 - 0x51ffffff <--> 0xfa000000 - 0xfbffffff
- * 0x54000000 - 0x55ffffff <--> 0xfc000000 - 0xfdffffff
- * 0x58000000 - 0x59ffffff <--> 0xfe000000 - 0xffffffff
- *
- * Note that not all PXA2xx chips implement all those addresses, and the
- * kernel only maps the minimum needed range of this mapping.
- */
-#define io_v2p(x) (0x3c000000 + ((x) & 0x01ffffff) + (((x) & 0x0e000000) << 1))
-#define io_p2v(x) IOMEM(0xf2000000 + ((x) & 0x01ffffff) + (((x) & 0x1c000000) >> 1))
-
-#ifndef __ASSEMBLY__
-# define __REG(x) (*((volatile u32 __iomem *)io_p2v(x)))
-
-/* With indexed regs we don't want to feed the index through io_p2v()
- especially if it is a variable, otherwise horrible code will result. */
-# define __REG2(x,y) \
- (*(volatile u32 __iomem*)((u32)&__REG(x) + (y)))
-
-# define __PREG(x) (io_v2p((u32)&(x)))
-
-#else
-
-# define __REG(x) io_p2v(x)
-# define __PREG(x) io_v2p(x)
-
-#endif
-
-#ifndef __ASSEMBLY__
+#ifndef __SOC_PXA_CPU_H
+#define __SOC_PXA_CPU_H
+#ifdef CONFIG_ARM
#include <asm/cputype.h>
+#endif
/*
* CPU Stepping CPU_ID JTAG_ID
@@ -294,12 +249,4 @@
__cpu_is_pxa93x(read_cpuid_id()); \
})
-
-/*
- * return current memory and LCD clock frequency in units of 10kHz
- */
-extern unsigned int get_memclk_frequency_10khz(void);
-
#endif
-
-#endif /* _ASM_ARCH_HARDWARE_H */
diff --git a/sound/arm/pxa2xx-ac97-lib.c b/sound/arm/pxa2xx-ac97-lib.c
index 58274b4a1f09..84d5f85073b9 100644
--- a/sound/arm/pxa2xx-ac97-lib.c
+++ b/sound/arm/pxa2xx-ac97-lib.c
@@ -17,6 +17,7 @@
#include <linux/io.h>
#include <linux/gpio.h>
#include <linux/of_gpio.h>
+#include <linux/soc/pxa/cpu.h>
#include <sound/pxa2xx-lib.h>
diff --git a/sound/soc/pxa/pxa2xx-ac97.c b/sound/soc/pxa/pxa2xx-ac97.c
index bf28187315db..eb99e01ee26f 100644
--- a/sound/soc/pxa/pxa2xx-ac97.c
+++ b/sound/soc/pxa/pxa2xx-ac97.c
@@ -21,7 +21,7 @@
#include <sound/pxa2xx-lib.h>
#include <sound/dmaengine_pcm.h>
-#include <mach/hardware.h>
+#include <mach/pxa-regs.h>
#include <mach/regs-ac97.h>
#include <mach/audio.h>
diff --git a/sound/soc/pxa/pxa2xx-i2s.c b/sound/soc/pxa/pxa2xx-i2s.c
index 9f7fb7335ac0..e7c43fe46dff 100644
--- a/sound/soc/pxa/pxa2xx-i2s.c
+++ b/sound/soc/pxa/pxa2xx-i2s.c
@@ -21,7 +21,7 @@
#include <sound/pxa2xx-lib.h>
#include <sound/dmaengine_pcm.h>
-#include <mach/hardware.h>
+#include <mach/pxa-regs.h>
#include <mach/audio.h>
#include "pxa2xx-i2s.h"
diff --git a/sound/soc/pxa/z2.c b/sound/soc/pxa/z2.c
index f9a33cb36f5b..8f121ca13eee 100644
--- a/sound/soc/pxa/z2.c
+++ b/sound/soc/pxa/z2.c
@@ -21,7 +21,6 @@
#include <sound/jack.h>
#include <asm/mach-types.h>
-#include <mach/hardware.h>
#include <mach/audio.h>
#include <mach/z2.h>
--
2.20.0
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 11/46] ARM: pxa: cmx270: use platform device for nand
2019-10-18 15:40 [PATCH 00/46] ARM: pxa: towards multiplatform support Arnd Bergmann
2019-10-18 15:41 ` [PATCH 05/46] ARM: pxa: split up mach/hardware.h Arnd Bergmann
@ 2019-10-18 15:41 ` Arnd Bergmann
2019-10-19 9:44 ` Miquel Raynal
2019-10-28 20:25 ` Robert Jarzmik
2019-10-18 19:03 ` [PATCH 00/46] ARM: pxa: towards multiplatform support Robert Jarzmik
2019-10-19 1:02 ` Guenter Roeck
3 siblings, 2 replies; 21+ messages in thread
From: Arnd Bergmann @ 2019-10-18 15:41 UTC (permalink / raw)
To: Daniel Mack, Haojian Zhuang, Robert Jarzmik
Cc: Vignesh Raghavendra, Arnd Bergmann, Richard Weinberger,
Linus Walleij, linux-kernel, Marek Vasut, linux-mtd,
Miquel Raynal, Brian Norris, David Woodhouse, linux-arm-kernel
The driver traditionally hardcodes the MMIO register address and
the GPIO numbers from data defined in platform header files.
To make it indepdendent of that, use a memory resource for the
registers, and a gpio lookup table to replace the gpio numbers.
Cc: Miquel Raynal <miquel.raynal@bootlin.com>
Cc: Richard Weinberger <richard@nod.at>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Brian Norris <computersforpeace@gmail.com>
Cc: Marek Vasut <marek.vasut@gmail.com>
Cc: Vignesh Raghavendra <vigneshr@ti.com>
Cc: linux-mtd@lists.infradead.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
arch/arm/mach-pxa/cm-x270.c | 25 +++++++++
drivers/mtd/nand/raw/cmx270_nand.c | 88 +++++++++++-------------------
2 files changed, 56 insertions(+), 57 deletions(-)
diff --git a/arch/arm/mach-pxa/cm-x270.c b/arch/arm/mach-pxa/cm-x270.c
index 9baad11314f2..6d80400d8887 100644
--- a/arch/arm/mach-pxa/cm-x270.c
+++ b/arch/arm/mach-pxa/cm-x270.c
@@ -40,6 +40,10 @@
#define GPIO19_WLAN_STRAP (19)
#define GPIO102_WLAN_RST (102)
+/* NAND GPIOS */
+#define GPIO_NAND_CS (11)
+#define GPIO_NAND_RB (89)
+
static unsigned long cmx270_pin_config[] = {
/* AC'97 */
GPIO28_AC97_BITCLK,
@@ -403,6 +407,26 @@ static void __init cmx270_init_spi(void)
static inline void cmx270_init_spi(void) {}
#endif
+static struct gpiod_lookup_table cmx270_nand_gpio_table = {
+ .dev_id = "cmx270-nand",
+ .table = {
+ GPIO_LOOKUP("gpio-pxa", GPIO_NAND_CS, "cs", GPIO_ACTIVE_HIGH),
+ GPIO_LOOKUP("gpio-pxa", GPIO_NAND_RB, "rb", GPIO_ACTIVE_HIGH),
+ { },
+ },
+};
+
+static struct resource cmx270_nand_resources[] __initdata = {
+ DEFINE_RES_MEM(PXA_CS1_PHYS, 12),
+};
+
+static void __init cmx270_init_nand(void)
+{
+ platform_device_register_simple("cmx270-nand", -1,
+ cmx270_nand_resources, 1);
+ gpiod_add_lookup_table(&cmx270_nand_gpio_table);
+}
+
void __init cmx270_init(void)
{
pxa2xx_mfp_config(ARRAY_AND_SIZE(cmx270_pin_config));
@@ -416,4 +440,5 @@ void __init cmx270_init(void)
cmx270_init_ohci();
cmx270_init_2700G();
cmx270_init_spi();
+ cmx270_init_nand();
}
diff --git a/drivers/mtd/nand/raw/cmx270_nand.c b/drivers/mtd/nand/raw/cmx270_nand.c
index 7af3d0bdcdb8..31cb20858c46 100644
--- a/drivers/mtd/nand/raw/cmx270_nand.c
+++ b/drivers/mtd/nand/raw/cmx270_nand.c
@@ -15,18 +15,17 @@
#include <linux/mtd/rawnand.h>
#include <linux/mtd/partitions.h>
#include <linux/slab.h>
-#include <linux/gpio.h>
+#include <linux/gpio/consumer.h>
#include <linux/module.h>
#include <linux/soc/pxa/cpu.h>
+#include <linux/platform_device.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/mach-types.h>
-#include <mach/addr-map.h>
-
-#define GPIO_NAND_CS (11)
-#define GPIO_NAND_RB (89)
+static struct gpio_desc *gpiod_nand_cs;
+static struct gpio_desc *gpiod_nand_rb;
/* MTD structure for CM-X270 board */
static struct mtd_info *cmx270_nand_mtd;
@@ -70,14 +69,14 @@ static void cmx270_read_buf(struct nand_chip *this, u_char *buf, int len)
static inline void nand_cs_on(void)
{
- gpio_set_value(GPIO_NAND_CS, 0);
+ gpiod_set_value(gpiod_nand_cs, 0);
}
static void nand_cs_off(void)
{
dsb();
- gpio_set_value(GPIO_NAND_CS, 1);
+ gpiod_set_value(gpiod_nand_cs, 1);
}
/*
@@ -120,48 +119,41 @@ static int cmx270_device_ready(struct nand_chip *this)
{
dsb();
- return (gpio_get_value(GPIO_NAND_RB));
+ return (gpiod_get_value(gpiod_nand_rb));
}
/*
* Main initialization routine
*/
-static int __init cmx270_init(void)
+static int cmx270_probe(struct platform_device *pdev)
{
struct nand_chip *this;
+ struct device *dev = &pdev->dev;
int ret;
- if (!(machine_is_armcore() && cpu_is_pxa27x()))
- return -ENODEV;
-
- ret = gpio_request(GPIO_NAND_CS, "NAND CS");
+ gpiod_nand_cs = devm_gpiod_get(dev, "cs", GPIOD_OUT_HIGH);
+ ret = PTR_ERR_OR_ZERO(gpiod_nand_cs);
if (ret) {
pr_warn("CM-X270: failed to request NAND CS gpio\n");
return ret;
}
- gpio_direction_output(GPIO_NAND_CS, 1);
-
- ret = gpio_request(GPIO_NAND_RB, "NAND R/B");
+ gpiod_nand_rb = devm_gpiod_get(dev, "rb", GPIOD_IN);
+ ret = PTR_ERR_OR_ZERO(gpiod_nand_rb);
if (ret) {
pr_warn("CM-X270: failed to request NAND R/B gpio\n");
- goto err_gpio_request;
+ return ret;
}
- gpio_direction_input(GPIO_NAND_RB);
-
/* Allocate memory for MTD device structure and private data */
- this = kzalloc(sizeof(struct nand_chip), GFP_KERNEL);
- if (!this) {
- ret = -ENOMEM;
- goto err_kzalloc;
- }
+ this = devm_kzalloc(dev, sizeof(struct nand_chip), GFP_KERNEL);
+ if (!this)
+ return -ENOMEM;
- cmx270_nand_io = ioremap(PXA_CS1_PHYS, 12);
+ cmx270_nand_io = devm_platform_ioremap_resource(pdev, 0);
if (!cmx270_nand_io) {
pr_debug("Unable to ioremap NAND device\n");
- ret = -EINVAL;
- goto err_ioremap;
+ return -EINVAL;
}
cmx270_nand_mtd = nand_to_mtd(this);
@@ -189,48 +181,30 @@ static int __init cmx270_init(void)
ret = nand_scan(this, 1);
if (ret) {
pr_notice("No NAND device\n");
- goto err_scan;
+ return ret;
}
/* Register the partitions */
- ret = mtd_device_register(cmx270_nand_mtd, partition_info,
- NUM_PARTITIONS);
- if (ret)
- goto err_scan;
-
- /* Return happy */
- return 0;
-
-err_scan:
- iounmap(cmx270_nand_io);
-err_ioremap:
- kfree(this);
-err_kzalloc:
- gpio_free(GPIO_NAND_RB);
-err_gpio_request:
- gpio_free(GPIO_NAND_CS);
-
- return ret;
-
+ return mtd_device_register(cmx270_nand_mtd, partition_info,
+ NUM_PARTITIONS);
}
-module_init(cmx270_init);
/*
* Clean up routine
*/
-static void __exit cmx270_cleanup(void)
+static int cmx270_remove(struct platform_device *pdev)
{
- /* Release resources, unregister device */
nand_release(mtd_to_nand(cmx270_nand_mtd));
- gpio_free(GPIO_NAND_RB);
- gpio_free(GPIO_NAND_CS);
-
- iounmap(cmx270_nand_io);
-
- kfree(mtd_to_nand(cmx270_nand_mtd));
+ return 0;
}
-module_exit(cmx270_cleanup);
+
+static struct platform_driver cmx270_nand_driver = {
+ .driver.name = "cmx270-nand",
+ .probe = cmx270_probe,
+ .remove = cmx270_remove,
+};
+module_platform_driver(cmx270_nand_driver);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Mike Rapoport <mike@compulab.co.il>");
--
2.20.0
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH 05/46] ARM: pxa: split up mach/hardware.h
2019-10-18 15:41 ` [PATCH 05/46] ARM: pxa: split up mach/hardware.h Arnd Bergmann
@ 2019-10-18 18:37 ` Dmitry Torokhov
2019-10-19 21:22 ` Alexandre Belloni
` (5 subsequent siblings)
6 siblings, 0 replies; 21+ messages in thread
From: Dmitry Torokhov @ 2019-10-18 18:37 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Ulf Hansson, Viresh Kumar, Linus Walleij, Alexandre Belloni,
Dominik Brodowski, linux-mtd, Pavel Machek, Robert Jarzmik,
linux-clk, linux-leds, linux-rtc, linux-input, Michael Turquette,
Guenter Roeck, linux-watchdog, alsa-devel, linux-pm,
Haojian Zhuang, Mark Brown, Jacek Anaszewski, linux-fbdev,
linux-arm-kernel, Stephen Boyd, Greg Kroah-Hartman, dri-devel,
linux-usb, linux-mmc, linux-kernel, Daniel Mack
On Fri, Oct 18, 2019 at 05:41:20PM +0200, Arnd Bergmann wrote:
> The mach/hardware.h is included in lots of places, and it provides
> three different things on pxa:
>
> - the cpu_is_pxa* macros
> - an indirect inclusion of mach/addr-map.h
> - the __REG() and io_pv2() helper macros
>
> Split it up into separate <linux/soc/pxa/cpu.h> and mach/pxa-regs.h
> headers, then change all the files that use mach/hardware.h to
> include the exact set of those three headers that they actually
> need, allowing for further more targeted cleanup.
>
> linux/soc/pxa/cpu.h can remain permanently exported and is now in
> a global location along with similar headers. pxa-regs.h and
> addr-map.h are only used in a very small number of drivers now
> and can be moved to arch/arm/mach-pxa/ directly when those drivers
> are to pass the necessary data as resources.
>
> Cc: Michael Turquette <mturquette@baylibre.com>
> Cc: Stephen Boyd <sboyd@kernel.org>
> Cc: Viresh Kumar <viresh.kumar@linaro.org>
> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> Cc: Jacek Anaszewski <jacek.anaszewski@gmail.com>
> Cc: Pavel Machek <pavel@ucw.cz>
> Cc: Ulf Hansson <ulf.hansson@linaro.org>
> Cc: Dominik Brodowski <linux@dominikbrodowski.net>
> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Guenter Roeck <linux@roeck-us.net>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-clk@vger.kernel.org
> Cc: linux-pm@vger.kernel.org
> Cc: linux-input@vger.kernel.org
> Cc: linux-leds@vger.kernel.org
> Cc: linux-mmc@vger.kernel.org
> Cc: linux-mtd@lists.infradead.org
> Cc: linux-rtc@vger.kernel.org
> Cc: linux-usb@vger.kernel.org
> Cc: dri-devel@lists.freedesktop.org
> Cc: linux-fbdev@vger.kernel.org
> Cc: linux-watchdog@vger.kernel.org
> Cc: alsa-devel@alsa-project.org
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
For input bits:
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
--
Dmitry
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 00/46] ARM: pxa: towards multiplatform support
2019-10-18 15:40 [PATCH 00/46] ARM: pxa: towards multiplatform support Arnd Bergmann
2019-10-18 15:41 ` [PATCH 05/46] ARM: pxa: split up mach/hardware.h Arnd Bergmann
2019-10-18 15:41 ` [PATCH 11/46] ARM: pxa: cmx270: use platform device for nand Arnd Bergmann
@ 2019-10-18 19:03 ` Robert Jarzmik
[not found] ` <CAK8P3a1JDtHsOW=iaxEycbJ4TBkR9MHUyDMeJnwxCtb=tefnBQ@mail.gmail.com>
2019-10-19 1:02 ` Guenter Roeck
3 siblings, 1 reply; 21+ messages in thread
From: Robert Jarzmik @ 2019-10-18 19:03 UTC (permalink / raw)
To: Arnd Bergmann
Cc: linux-rtc, linux-fbdev, linux-watchdog, linux-pm, Linus Walleij,
linux-usb, linux-mmc, linux-kernel, Haojian Zhuang, linux-ide,
linux-mtd, Daniel Mack, linux-leds, linux-input, linux-clk,
linux-arm-kernel
Arnd Bergmann <arnd@arndb.de> writes:
> Hi PXA maintainers,
>
> I'm in the process of getting the old ARM platforms to all build
> in a single kernel. The largest part of that work is changing all
> the device drivers to no longer require mach/*.h header files.
>
> This series does it for arch/pxa/.
>
> As with the omap1 and s3c24xx series I sent before, I don't
> expect this all to be correct in the first version, though
> a lot of the patches are fairly simple and I did exhaustive
> compile-time testing on them.
>
> Please test if you have the hardware, or review!
Hi Arnd,
Would you have a git tree I can pull from ?
That would make my life easier than applying manually 46 patches...
Cheers.
--
Robert
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 00/46] ARM: pxa: towards multiplatform support
[not found] ` <CAK8P3a1JDtHsOW=iaxEycbJ4TBkR9MHUyDMeJnwxCtb=tefnBQ@mail.gmail.com>
@ 2019-10-18 19:32 ` Arnd Bergmann
2019-10-19 10:35 ` Robert Jarzmik
0 siblings, 1 reply; 21+ messages in thread
From: Arnd Bergmann @ 2019-10-18 19:32 UTC (permalink / raw)
To: Robert Jarzmik
Cc: linux-rtc, Linux Fbdev development list, LINUXWATCHDOG,
Linux PM list, Linus Walleij, USB list, linux-mmc, linux-kernel,
Haojian Zhuang, IDE-ML, linux-mtd, Daniel Mack, linux-leds,
open list:HID CORE LAYER, linux-clk, Linux ARM
On Fri, Oct 18, 2019 at 9:17 PM Arnd Bergmann <arnd@arndb.de> wrote:
> On Fri, Oct 18, 2019 at 9:04 PM Robert Jarzmik <robert.jarzmik@free.fr> wrote:
> > Arnd Bergmann <arnd@arndb.de> writes:
> >
> > > Hi PXA maintainers,
> > >
> > > I'm in the process of getting the old ARM platforms to all build
> > > in a single kernel. The largest part of that work is changing all
> > > the device drivers to no longer require mach/*.h header files.
> > >
> > > This series does it for arch/pxa/.
> > >
> > > As with the omap1 and s3c24xx series I sent before, I don't
> > > expect this all to be correct in the first version, though
> > > a lot of the patches are fairly simple and I did exhaustive
> > > compile-time testing on them.
> > >
> > > Please test if you have the hardware, or review!
> >
> > Hi Arnd,
> >
> > Would you have a git tree I can pull from ?
> > That would make my life easier than applying manually 46 patches...
>
> I've now pushed it to
>
> git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground.git
> pxa-multiplatform
Sorry for the duplication, I had some problems with email configuration
so my reply got rejected, let's see if it goes through this time.
Arnd
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 00/46] ARM: pxa: towards multiplatform support
2019-10-18 15:40 [PATCH 00/46] ARM: pxa: towards multiplatform support Arnd Bergmann
` (2 preceding siblings ...)
2019-10-18 19:03 ` [PATCH 00/46] ARM: pxa: towards multiplatform support Robert Jarzmik
@ 2019-10-19 1:02 ` Guenter Roeck
2019-10-19 10:08 ` Arnd Bergmann
2019-10-19 10:09 ` Arnd Bergmann
3 siblings, 2 replies; 21+ messages in thread
From: Guenter Roeck @ 2019-10-19 1:02 UTC (permalink / raw)
To: Arnd Bergmann, Daniel Mack, Haojian Zhuang, Robert Jarzmik
Cc: linux-rtc, linux-fbdev, linux-watchdog, linux-pm, Linus Walleij,
linux-usb, linux-mmc, linux-kernel, linux-ide, linux-mtd,
linux-leds, linux-input, linux-clk, linux-arm-kernel
On 10/18/19 8:40 AM, Arnd Bergmann wrote:
>
> Hi PXA maintainers,
>
> I'm in the process of getting the old ARM platforms to all build
> in a single kernel. The largest part of that work is changing all
> the device drivers to no longer require mach/*.h header files.
>
> This series does it for arch/pxa/.
>
> As with the omap1 and s3c24xx series I sent before, I don't
> expect this all to be correct in the first version, though
> a lot of the patches are fairly simple and I did exhaustive
> compile-time testing on them.
>
> Please test if you have the hardware, or review!
>
I don't get very far.
$ make-arm pxa_defconfig
arch/arm/Kconfig:677: can't open file "arch/arm/plat-pxa/Kconfig"
scripts/kconfig/Makefile:90: recipe for target 'pxa_defconfig' failed
make[1]: *** [pxa_defconfig] Error 1
Makefile:567: recipe for target 'pxa_defconfig' failed
make: *** [pxa_defconfig] Error 2
$ git describe
v5.4-rc3-52-gfcc4181cd625
Also:
$ git grep plat-pxa
Documentation/arm/marvel.rst: arch/arm/plat-pxa
Documentation/arm/marvel.rst: arch/arm/plat-pxa
Documentation/arm/marvel.rst: directory. The plat-pxa/ would therefore disappear.
arch/arm/Kconfig:source "arch/arm/plat-pxa/Kconfig"
arch/arm/mach-mmp/Makefile:ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/arch/arm/plat-pxa/include
drivers/gpio/gpio-pxa.c: * linux/arch/arm/plat-pxa/gpio.c
drivers/soc/pxa/mfp.c: * linux/arch/arm/plat-pxa/mfp.c
Did I pick the wrong tree ?
Guenter
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 11/46] ARM: pxa: cmx270: use platform device for nand
2019-10-18 15:41 ` [PATCH 11/46] ARM: pxa: cmx270: use platform device for nand Arnd Bergmann
@ 2019-10-19 9:44 ` Miquel Raynal
2019-10-22 10:00 ` Arnd Bergmann
2019-10-28 20:25 ` Robert Jarzmik
1 sibling, 1 reply; 21+ messages in thread
From: Miquel Raynal @ 2019-10-19 9:44 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Vignesh Raghavendra, Richard Weinberger, Linus Walleij,
linux-kernel, Haojian Zhuang, Marek Vasut, linux-mtd,
Daniel Mack, Brian Norris, Robert Jarzmik, David Woodhouse,
linux-arm-kernel
Hi Arnd,
Arnd Bergmann <arnd@arndb.de> wrote on Fri, 18 Oct 2019 17:41:26 +0200:
> The driver traditionally hardcodes the MMIO register address and
> the GPIO numbers from data defined in platform header files.
>
> To make it indepdendent of that, use a memory resource for the
> registers, and a gpio lookup table to replace the gpio numbers.
Looks good to me besides the typo s/indepdendent/independent/.
Acked-by: Miquel Raynal <miquel.raynal@bootlin.com>
>
> Cc: Miquel Raynal <miquel.raynal@bootlin.com>
> Cc: Richard Weinberger <richard@nod.at>
> Cc: David Woodhouse <dwmw2@infradead.org>
> Cc: Brian Norris <computersforpeace@gmail.com>
> Cc: Marek Vasut <marek.vasut@gmail.com>
> Cc: Vignesh Raghavendra <vigneshr@ti.com>
> Cc: linux-mtd@lists.infradead.org
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> arch/arm/mach-pxa/cm-x270.c | 25 +++++++++
> drivers/mtd/nand/raw/cmx270_nand.c | 88 +++++++++++-------------------
> 2 files changed, 56 insertions(+), 57 deletions(-)
>
> diff --git a/arch/arm/mach-pxa/cm-x270.c b/arch/arm/mach-pxa/cm-x270.c
> index 9baad11314f2..6d80400d8887 100644
> --- a/arch/arm/mach-pxa/cm-x270.c
> +++ b/arch/arm/mach-pxa/cm-x270.c
> @@ -40,6 +40,10 @@
> #define GPIO19_WLAN_STRAP (19)
> #define GPIO102_WLAN_RST (102)
>
> +/* NAND GPIOS */
> +#define GPIO_NAND_CS (11)
> +#define GPIO_NAND_RB (89)
> +
> static unsigned long cmx270_pin_config[] = {
> /* AC'97 */
> GPIO28_AC97_BITCLK,
> @@ -403,6 +407,26 @@ static void __init cmx270_init_spi(void)
> static inline void cmx270_init_spi(void) {}
> #endif
>
> +static struct gpiod_lookup_table cmx270_nand_gpio_table = {
> + .dev_id = "cmx270-nand",
> + .table = {
> + GPIO_LOOKUP("gpio-pxa", GPIO_NAND_CS, "cs", GPIO_ACTIVE_HIGH),
> + GPIO_LOOKUP("gpio-pxa", GPIO_NAND_RB, "rb", GPIO_ACTIVE_HIGH),
> + { },
> + },
> +};
> +
> +static struct resource cmx270_nand_resources[] __initdata = {
> + DEFINE_RES_MEM(PXA_CS1_PHYS, 12),
> +};
> +
> +static void __init cmx270_init_nand(void)
> +{
> + platform_device_register_simple("cmx270-nand", -1,
> + cmx270_nand_resources, 1);
> + gpiod_add_lookup_table(&cmx270_nand_gpio_table);
> +}
> +
> void __init cmx270_init(void)
> {
> pxa2xx_mfp_config(ARRAY_AND_SIZE(cmx270_pin_config));
> @@ -416,4 +440,5 @@ void __init cmx270_init(void)
> cmx270_init_ohci();
> cmx270_init_2700G();
> cmx270_init_spi();
> + cmx270_init_nand();
> }
> diff --git a/drivers/mtd/nand/raw/cmx270_nand.c b/drivers/mtd/nand/raw/cmx270_nand.c
> index 7af3d0bdcdb8..31cb20858c46 100644
> --- a/drivers/mtd/nand/raw/cmx270_nand.c
> +++ b/drivers/mtd/nand/raw/cmx270_nand.c
> @@ -15,18 +15,17 @@
> #include <linux/mtd/rawnand.h>
> #include <linux/mtd/partitions.h>
> #include <linux/slab.h>
> -#include <linux/gpio.h>
> +#include <linux/gpio/consumer.h>
> #include <linux/module.h>
> #include <linux/soc/pxa/cpu.h>
> +#include <linux/platform_device.h>
>
> #include <asm/io.h>
> #include <asm/irq.h>
> #include <asm/mach-types.h>
>
> -#include <mach/addr-map.h>
> -
> -#define GPIO_NAND_CS (11)
> -#define GPIO_NAND_RB (89)
> +static struct gpio_desc *gpiod_nand_cs;
> +static struct gpio_desc *gpiod_nand_rb;
>
> /* MTD structure for CM-X270 board */
> static struct mtd_info *cmx270_nand_mtd;
> @@ -70,14 +69,14 @@ static void cmx270_read_buf(struct nand_chip *this, u_char *buf, int len)
>
> static inline void nand_cs_on(void)
> {
> - gpio_set_value(GPIO_NAND_CS, 0);
> + gpiod_set_value(gpiod_nand_cs, 0);
> }
>
> static void nand_cs_off(void)
> {
> dsb();
>
> - gpio_set_value(GPIO_NAND_CS, 1);
> + gpiod_set_value(gpiod_nand_cs, 1);
> }
>
> /*
> @@ -120,48 +119,41 @@ static int cmx270_device_ready(struct nand_chip *this)
> {
> dsb();
>
> - return (gpio_get_value(GPIO_NAND_RB));
> + return (gpiod_get_value(gpiod_nand_rb));
> }
>
> /*
> * Main initialization routine
> */
> -static int __init cmx270_init(void)
> +static int cmx270_probe(struct platform_device *pdev)
> {
> struct nand_chip *this;
> + struct device *dev = &pdev->dev;
> int ret;
>
> - if (!(machine_is_armcore() && cpu_is_pxa27x()))
> - return -ENODEV;
> -
> - ret = gpio_request(GPIO_NAND_CS, "NAND CS");
> + gpiod_nand_cs = devm_gpiod_get(dev, "cs", GPIOD_OUT_HIGH);
> + ret = PTR_ERR_OR_ZERO(gpiod_nand_cs);
> if (ret) {
> pr_warn("CM-X270: failed to request NAND CS gpio\n");
> return ret;
> }
>
> - gpio_direction_output(GPIO_NAND_CS, 1);
> -
> - ret = gpio_request(GPIO_NAND_RB, "NAND R/B");
> + gpiod_nand_rb = devm_gpiod_get(dev, "rb", GPIOD_IN);
> + ret = PTR_ERR_OR_ZERO(gpiod_nand_rb);
> if (ret) {
> pr_warn("CM-X270: failed to request NAND R/B gpio\n");
> - goto err_gpio_request;
> + return ret;
> }
>
> - gpio_direction_input(GPIO_NAND_RB);
> -
> /* Allocate memory for MTD device structure and private data */
> - this = kzalloc(sizeof(struct nand_chip), GFP_KERNEL);
> - if (!this) {
> - ret = -ENOMEM;
> - goto err_kzalloc;
> - }
> + this = devm_kzalloc(dev, sizeof(struct nand_chip), GFP_KERNEL);
> + if (!this)
> + return -ENOMEM;
>
> - cmx270_nand_io = ioremap(PXA_CS1_PHYS, 12);
> + cmx270_nand_io = devm_platform_ioremap_resource(pdev, 0);
> if (!cmx270_nand_io) {
> pr_debug("Unable to ioremap NAND device\n");
> - ret = -EINVAL;
> - goto err_ioremap;
> + return -EINVAL;
> }
>
> cmx270_nand_mtd = nand_to_mtd(this);
> @@ -189,48 +181,30 @@ static int __init cmx270_init(void)
> ret = nand_scan(this, 1);
> if (ret) {
> pr_notice("No NAND device\n");
> - goto err_scan;
> + return ret;
> }
>
> /* Register the partitions */
> - ret = mtd_device_register(cmx270_nand_mtd, partition_info,
> - NUM_PARTITIONS);
> - if (ret)
> - goto err_scan;
> -
> - /* Return happy */
> - return 0;
> -
> -err_scan:
> - iounmap(cmx270_nand_io);
> -err_ioremap:
> - kfree(this);
> -err_kzalloc:
> - gpio_free(GPIO_NAND_RB);
> -err_gpio_request:
> - gpio_free(GPIO_NAND_CS);
> -
> - return ret;
> -
> + return mtd_device_register(cmx270_nand_mtd, partition_info,
> + NUM_PARTITIONS);
> }
> -module_init(cmx270_init);
>
> /*
> * Clean up routine
> */
> -static void __exit cmx270_cleanup(void)
> +static int cmx270_remove(struct platform_device *pdev)
> {
> - /* Release resources, unregister device */
> nand_release(mtd_to_nand(cmx270_nand_mtd));
>
> - gpio_free(GPIO_NAND_RB);
> - gpio_free(GPIO_NAND_CS);
> -
> - iounmap(cmx270_nand_io);
> -
> - kfree(mtd_to_nand(cmx270_nand_mtd));
> + return 0;
> }
> -module_exit(cmx270_cleanup);
> +
> +static struct platform_driver cmx270_nand_driver = {
> + .driver.name = "cmx270-nand",
> + .probe = cmx270_probe,
> + .remove = cmx270_remove,
> +};
> +module_platform_driver(cmx270_nand_driver);
>
> MODULE_LICENSE("GPL");
> MODULE_AUTHOR("Mike Rapoport <mike@compulab.co.il>");
Thanks,
Miquèl
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 00/46] ARM: pxa: towards multiplatform support
2019-10-19 1:02 ` Guenter Roeck
@ 2019-10-19 10:08 ` Arnd Bergmann
2019-10-19 10:09 ` Arnd Bergmann
1 sibling, 0 replies; 21+ messages in thread
From: Arnd Bergmann @ 2019-10-19 10:08 UTC (permalink / raw)
To: Guenter Roeck
Cc: linux-rtc, Linux Fbdev development list, LINUXWATCHDOG,
Linux PM list, Linus Walleij, USB list, linux-mmc, linux-kernel,
Haojian Zhuang, IDE-ML, linux-mtd, Daniel Mack, linux-leds,
open list:HID CORE LAYER, Robert Jarzmik, linux-clk, Linux ARM
On Sat, Oct 19, 2019 at 3:03 AM Guenter Roeck <linux@roeck-us.net> wrote:
>
> On 10/18/19 8:40 AM, Arnd Bergmann wrote:
> >
> > Hi PXA maintainers,
> >
> > I'm in the process of getting the old ARM platforms to all build
> > in a single kernel. The largest part of that work is changing all
> > the device drivers to no longer require mach/*.h header files.
> >
> > This series does it for arch/pxa/.
> >
> > As with the omap1 and s3c24xx series I sent before, I don't
> > expect this all to be correct in the first version, though
> > a lot of the patches are fairly simple and I did exhaustive
> > compile-time testing on them.
> >
> > Please test if you have the hardware, or review!
> >
>
> I don't get very far.
>
> $ make-arm pxa_defconfig
> arch/arm/Kconfig:677: can't open file "arch/arm/plat-pxa/Kconfig"
> scripts/kconfig/Makefile:90: recipe for target 'pxa_defconfig' failed
> make[1]: *** [pxa_defconfig] Error 1
> Makefile:567: recipe for target 'pxa_defconfig' failed
> make: *** [pxa_defconfig] Error 2
> $ git describe
> v5.4-rc3-52-gfcc4181cd625
>
> Also:
>
> $ git grep plat-pxa
> Documentation/arm/marvel.rst: arch/arm/plat-pxa
> Documentation/arm/marvel.rst: arch/arm/plat-pxa
> Documentation/arm/marvel.rst: directory. The plat-pxa/ would therefore disappear.
> arch/arm/Kconfig:source "arch/arm/plat-pxa/Kconfig"
> arch/arm/mach-mmp/Makefile:ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/arch/arm/plat-pxa/include
> drivers/gpio/gpio-pxa.c: * linux/arch/arm/plat-pxa/gpio.c
> drivers/soc/pxa/mfp.c: * linux/arch/arm/plat-pxa/mfp.c
>
> Did I pick the wrong tree ?
>
> Guenter
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 00/46] ARM: pxa: towards multiplatform support
2019-10-19 1:02 ` Guenter Roeck
2019-10-19 10:08 ` Arnd Bergmann
@ 2019-10-19 10:09 ` Arnd Bergmann
1 sibling, 0 replies; 21+ messages in thread
From: Arnd Bergmann @ 2019-10-19 10:09 UTC (permalink / raw)
To: Guenter Roeck
Cc: linux-rtc, Linux Fbdev development list, LINUXWATCHDOG,
Linux PM list, Linus Walleij, USB list, linux-mmc, linux-kernel,
Haojian Zhuang, IDE-ML, linux-mtd, Daniel Mack, linux-leds,
open list:HID CORE LAYER, Robert Jarzmik, linux-clk, Linux ARM
On Sat, Oct 19, 2019 at 3:03 AM Guenter Roeck <linux@roeck-us.net> wrote:
> On 10/18/19 8:40 AM, Arnd Bergmann wrote:
>
> I don't get very far.
>
> $ make-arm pxa_defconfig
> arch/arm/Kconfig:677: can't open file "arch/arm/plat-pxa/Kconfig"
> scripts/kconfig/Makefile:90: recipe for target 'pxa_defconfig' failed
>
> Did I pick the wrong tree ?
It seems that one line got lost in a rebase and ended up in a different patch
that was not part of the series. I updated the git tree now.
Arnd
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 00/46] ARM: pxa: towards multiplatform support
2019-10-18 19:32 ` Arnd Bergmann
@ 2019-10-19 10:35 ` Robert Jarzmik
2019-10-24 20:49 ` Robert Jarzmik
0 siblings, 1 reply; 21+ messages in thread
From: Robert Jarzmik @ 2019-10-19 10:35 UTC (permalink / raw)
To: Arnd Bergmann
Cc: linux-rtc, Linux Fbdev development list, LINUXWATCHDOG,
Linux PM list, Linus Walleij, USB list, linux-mmc, linux-kernel,
Haojian Zhuang, IDE-ML, linux-mtd, Daniel Mack, linux-leds,
open list:HID CORE LAYER, linux-clk, Linux ARM
Arnd Bergmann <arnd@arndb.de> writes:
> On Fri, Oct 18, 2019 at 9:17 PM Arnd Bergmann <arnd@arndb.de> wrote:
>> On Fri, Oct 18, 2019 at 9:04 PM Robert Jarzmik <robert.jarzmik@free.fr> wrote:
>> > Arnd Bergmann <arnd@arndb.de> writes:
>> >
>> > > Hi PXA maintainers,
>> > >
>> > > I'm in the process of getting the old ARM platforms to all build
>> > > in a single kernel. The largest part of that work is changing all
>> > > the device drivers to no longer require mach/*.h header files.
>> > >
>> > > This series does it for arch/pxa/.
>> > >
>> > > As with the omap1 and s3c24xx series I sent before, I don't
>> > > expect this all to be correct in the first version, though
>> > > a lot of the patches are fairly simple and I did exhaustive
>> > > compile-time testing on them.
>> > >
>> > > Please test if you have the hardware, or review!
>> >
>> > Hi Arnd,
>> >
>> > Would you have a git tree I can pull from ?
>> > That would make my life easier than applying manually 46 patches...
>>
>> I've now pushed it to
>>
>> git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground.git
>> pxa-multiplatform
>
> Sorry for the duplication, I had some problems with email configuration
> so my reply got rejected, let's see if it goes through this time.
I have it now, thanks, I'll test and review as soon as I can.
Cheers.
--
Robert
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 05/46] ARM: pxa: split up mach/hardware.h
2019-10-18 15:41 ` [PATCH 05/46] ARM: pxa: split up mach/hardware.h Arnd Bergmann
2019-10-18 18:37 ` Dmitry Torokhov
@ 2019-10-19 21:22 ` Alexandre Belloni
2019-10-21 2:27 ` Viresh Kumar
` (4 subsequent siblings)
6 siblings, 0 replies; 21+ messages in thread
From: Alexandre Belloni @ 2019-10-19 21:22 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Ulf Hansson, linux-usb, Viresh Kumar, Linus Walleij, linux-fbdev,
Dominik Brodowski, linux-mtd, Pavel Machek, Robert Jarzmik,
linux-clk, linux-leds, linux-rtc, linux-input, Michael Turquette,
Guenter Roeck, linux-watchdog, alsa-devel, linux-pm,
Haojian Zhuang, Mark Brown, Jacek Anaszewski, linux-arm-kernel,
Stephen Boyd, Greg Kroah-Hartman, dri-devel, Dmitry Torokhov,
linux-mmc, linux-kernel, Daniel Mack
On 18/10/2019 17:41:20+0200, Arnd Bergmann wrote:
> The mach/hardware.h is included in lots of places, and it provides
> three different things on pxa:
>
> - the cpu_is_pxa* macros
> - an indirect inclusion of mach/addr-map.h
> - the __REG() and io_pv2() helper macros
>
> Split it up into separate <linux/soc/pxa/cpu.h> and mach/pxa-regs.h
> headers, then change all the files that use mach/hardware.h to
> include the exact set of those three headers that they actually
> need, allowing for further more targeted cleanup.
>
> linux/soc/pxa/cpu.h can remain permanently exported and is now in
> a global location along with similar headers. pxa-regs.h and
> addr-map.h are only used in a very small number of drivers now
> and can be moved to arch/arm/mach-pxa/ directly when those drivers
> are to pass the necessary data as resources.
>
> Cc: Michael Turquette <mturquette@baylibre.com>
> Cc: Stephen Boyd <sboyd@kernel.org>
> Cc: Viresh Kumar <viresh.kumar@linaro.org>
> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> Cc: Jacek Anaszewski <jacek.anaszewski@gmail.com>
> Cc: Pavel Machek <pavel@ucw.cz>
> Cc: Ulf Hansson <ulf.hansson@linaro.org>
> Cc: Dominik Brodowski <linux@dominikbrodowski.net>
> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Guenter Roeck <linux@roeck-us.net>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-clk@vger.kernel.org
> Cc: linux-pm@vger.kernel.org
> Cc: linux-input@vger.kernel.org
> Cc: linux-leds@vger.kernel.org
> Cc: linux-mmc@vger.kernel.org
> Cc: linux-mtd@lists.infradead.org
> Cc: linux-rtc@vger.kernel.org
> Cc: linux-usb@vger.kernel.org
> Cc: dri-devel@lists.freedesktop.org
> Cc: linux-fbdev@vger.kernel.org
> Cc: linux-watchdog@vger.kernel.org
> Cc: alsa-devel@alsa-project.org
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
For rtc: Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
> ---
> arch/arm/common/locomo.c | 1 -
> arch/arm/common/sa1111.c | 5 +-
> arch/arm/mach-pxa/cm-x2xx.c | 2 +
> arch/arm/mach-pxa/cm-x300.c | 2 +
> arch/arm/mach-pxa/colibri-evalboard.c | 1 -
> arch/arm/mach-pxa/colibri-pxa270-income.c | 1 -
> arch/arm/mach-pxa/colibri-pxa300.c | 1 +
> arch/arm/mach-pxa/colibri-pxa3xx.c | 1 -
> arch/arm/mach-pxa/corgi.c | 1 -
> arch/arm/mach-pxa/corgi_pm.c | 1 -
> arch/arm/mach-pxa/csb726.c | 1 +
> arch/arm/mach-pxa/devices.c | 2 +-
> arch/arm/mach-pxa/ezx.c | 1 -
> arch/arm/mach-pxa/generic.c | 3 +-
> arch/arm/mach-pxa/gumstix.c | 1 -
> arch/arm/mach-pxa/hx4700.c | 2 +-
> arch/arm/mach-pxa/idp.c | 1 -
> arch/arm/mach-pxa/include/mach/pxa-regs.h | 52 ++++++++++++++++
> arch/arm/mach-pxa/include/mach/pxa2xx-regs.h | 2 +-
> arch/arm/mach-pxa/include/mach/pxa3xx-regs.h | 2 +-
> arch/arm/mach-pxa/include/mach/regs-ac97.h | 2 +-
> arch/arm/mach-pxa/include/mach/regs-ost.h | 2 +-
> arch/arm/mach-pxa/include/mach/trizeps4.h | 1 +
> arch/arm/mach-pxa/irq.c | 3 +-
> arch/arm/mach-pxa/littleton.c | 1 -
> arch/arm/mach-pxa/lpd270.c | 2 +-
> arch/arm/mach-pxa/lubbock.c | 1 -
> arch/arm/mach-pxa/magician.c | 2 +-
> arch/arm/mach-pxa/mainstone.c | 2 +-
> arch/arm/mach-pxa/mfp-pxa2xx.c | 1 +
> arch/arm/mach-pxa/mfp-pxa3xx.c | 1 -
> arch/arm/mach-pxa/poodle.c | 1 -
> arch/arm/mach-pxa/pxa-regs.h | 1 +
> arch/arm/mach-pxa/pxa25x.c | 3 +-
> arch/arm/mach-pxa/pxa25x.h | 2 +-
> arch/arm/mach-pxa/pxa27x-udc.h | 2 +
> arch/arm/mach-pxa/pxa27x.c | 3 +-
> arch/arm/mach-pxa/pxa27x.h | 2 +-
> arch/arm/mach-pxa/pxa2xx.c | 1 -
> arch/arm/mach-pxa/pxa300.c | 1 +
> arch/arm/mach-pxa/pxa320.c | 1 +
> arch/arm/mach-pxa/pxa3xx-ulpi.c | 2 +-
> arch/arm/mach-pxa/pxa3xx.c | 3 +-
> arch/arm/mach-pxa/pxa3xx.h | 2 +-
> arch/arm/mach-pxa/pxa930.c | 1 +
> arch/arm/mach-pxa/regs-rtc.h | 2 +-
> arch/arm/mach-pxa/regs-uart.h | 2 +
> arch/arm/mach-pxa/sleep.S | 1 -
> arch/arm/mach-pxa/smemc.c | 2 +-
> arch/arm/mach-pxa/spitz_pm.c | 1 -
> arch/arm/mach-pxa/standby.S | 1 -
> arch/arm/mach-pxa/xcep.c | 2 +-
> arch/arm/mach-pxa/zylonite.c | 1 +
> arch/arm/mach-pxa/zylonite.h | 2 +
> arch/arm/mach-pxa/zylonite_pxa300.c | 1 +
> arch/arm/mach-pxa/zylonite_pxa320.c | 1 +
> drivers/clk/pxa/clk-pxa3xx.c | 1 +
> drivers/cpufreq/pxa2xx-cpufreq.c | 1 +
> drivers/cpufreq/pxa3xx-cpufreq.c | 1 +
> drivers/input/mouse/pxa930_trkball.c | 1 -
> drivers/input/touchscreen/zylonite-wm97xx.c | 2 +-
> drivers/leds/leds-locomo.c | 1 -
> drivers/mmc/host/pxamci.c | 2 +-
> drivers/mtd/maps/pxa2xx-flash.c | 2 -
> drivers/mtd/nand/raw/cmx270_nand.c | 3 +-
> drivers/pcmcia/pxa2xx_base.c | 2 +-
> drivers/pcmcia/pxa2xx_cm_x2xx.c | 2 +-
> drivers/pcmcia/pxa2xx_sharpsl.c | 1 -
> drivers/pcmcia/sa1111_generic.c | 1 -
> drivers/pcmcia/sa1111_lubbock.c | 1 -
> drivers/pcmcia/soc_common.c | 2 -
> drivers/rtc/rtc-pxa.c | 2 -
> drivers/usb/host/ohci-pxa27x.c | 3 +-
> drivers/video/fbdev/pxafb.c | 2 +-
> drivers/watchdog/sa1100_wdt.c | 1 -
> .../hardware.h => include/linux/soc/pxa/cpu.h | 61 ++-----------------
> sound/arm/pxa2xx-ac97-lib.c | 1 +
> sound/soc/pxa/pxa2xx-ac97.c | 2 +-
> sound/soc/pxa/pxa2xx-i2s.c | 2 +-
> sound/soc/pxa/z2.c | 1 -
> 80 files changed, 121 insertions(+), 119 deletions(-)
> create mode 100644 arch/arm/mach-pxa/include/mach/pxa-regs.h
> create mode 100644 arch/arm/mach-pxa/pxa-regs.h
> rename arch/arm/mach-pxa/include/mach/hardware.h => include/linux/soc/pxa/cpu.h (75%)
>
> diff --git a/arch/arm/common/locomo.c b/arch/arm/common/locomo.c
> index 62f241b09fe3..fd9157121406 100644
> --- a/arch/arm/common/locomo.c
> +++ b/arch/arm/common/locomo.c
> @@ -23,7 +23,6 @@
> #include <linux/spinlock.h>
> #include <linux/io.h>
>
> -#include <mach/hardware.h>
> #include <asm/irq.h>
> #include <asm/mach/irq.h>
>
> diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c
> index 947ef7981d92..e2829af69f96 100644
> --- a/arch/arm/common/sa1111.c
> +++ b/arch/arm/common/sa1111.c
> @@ -26,13 +26,16 @@
> #include <linux/clk.h>
> #include <linux/io.h>
>
> -#include <mach/hardware.h>
> #include <asm/mach/irq.h>
> #include <asm/mach-types.h>
> #include <linux/sizes.h>
>
> #include <asm/hardware/sa1111.h>
>
> +#ifdef CONFIG_ARCH_SA1100
> +#include <mach/hardware.h>
> +#endif
> +
> /* SA1111 IRQs */
> #define IRQ_GPAIN0 (0)
> #define IRQ_GPAIN1 (1)
> diff --git a/arch/arm/mach-pxa/cm-x2xx.c b/arch/arm/mach-pxa/cm-x2xx.c
> index ff976d1217eb..c731539add9f 100644
> --- a/arch/arm/mach-pxa/cm-x2xx.c
> +++ b/arch/arm/mach-pxa/cm-x2xx.c
> @@ -14,6 +14,7 @@
>
> #include <linux/dm9000.h>
> #include <linux/leds.h>
> +#include <linux/soc/pxa/cpu.h>
>
> #include <asm/mach/arch.h>
> #include <asm/mach-types.h>
> @@ -32,6 +33,7 @@
> #undef GPIO88_GPIO
> #undef GPIO89_GPIO
> #include <mach/audio.h>
> +#include <mach/addr-map.h>
> #include <linux/platform_data/video-pxafb.h>
> #include <mach/smemc.h>
>
> diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c
> index 425855f456f2..f3f2703fffc6 100644
> --- a/arch/arm/mach-pxa/cm-x300.c
> +++ b/arch/arm/mach-pxa/cm-x300.c
> @@ -40,6 +40,8 @@
> #include <linux/spi/spi_gpio.h>
> #include <linux/spi/tdo24m.h>
>
> +#include <linux/soc/pxa/cpu.h>
> +
> #include <asm/mach-types.h>
> #include <asm/mach/arch.h>
> #include <asm/setup.h>
> diff --git a/arch/arm/mach-pxa/colibri-evalboard.c b/arch/arm/mach-pxa/colibri-evalboard.c
> index b9c173ede891..b62af07b8f96 100644
> --- a/arch/arm/mach-pxa/colibri-evalboard.c
> +++ b/arch/arm/mach-pxa/colibri-evalboard.c
> @@ -13,7 +13,6 @@
> #include <linux/interrupt.h>
> #include <linux/gpio/machine.h>
> #include <asm/mach-types.h>
> -#include <mach/hardware.h>
> #include <asm/mach/arch.h>
> #include <linux/i2c.h>
> #include <linux/platform_data/i2c-pxa.h>
> diff --git a/arch/arm/mach-pxa/colibri-pxa270-income.c b/arch/arm/mach-pxa/colibri-pxa270-income.c
> index dbad2f13706c..957dc9ad4873 100644
> --- a/arch/arm/mach-pxa/colibri-pxa270-income.c
> +++ b/arch/arm/mach-pxa/colibri-pxa270-income.c
> @@ -25,7 +25,6 @@
> #include <asm/irq.h>
> #include <asm/mach-types.h>
>
> -#include <mach/hardware.h>
> #include <linux/platform_data/mmc-pxamci.h>
> #include <linux/platform_data/usb-ohci-pxa27x.h>
> #include "pxa27x.h"
> diff --git a/arch/arm/mach-pxa/colibri-pxa300.c b/arch/arm/mach-pxa/colibri-pxa300.c
> index 82052dfd96b6..4ceeea142bfd 100644
> --- a/arch/arm/mach-pxa/colibri-pxa300.c
> +++ b/arch/arm/mach-pxa/colibri-pxa300.c
> @@ -13,6 +13,7 @@
> #include <linux/platform_device.h>
> #include <linux/gpio.h>
> #include <linux/interrupt.h>
> +#include <linux/soc/pxa/cpu.h>
>
> #include <asm/mach-types.h>
> #include <linux/sizes.h>
> diff --git a/arch/arm/mach-pxa/colibri-pxa3xx.c b/arch/arm/mach-pxa/colibri-pxa3xx.c
> index 3cead80a2b37..701dfef930eb 100644
> --- a/arch/arm/mach-pxa/colibri-pxa3xx.c
> +++ b/arch/arm/mach-pxa/colibri-pxa3xx.c
> @@ -13,7 +13,6 @@
> #include <linux/gpio.h>
> #include <linux/etherdevice.h>
> #include <asm/mach-types.h>
> -#include <mach/hardware.h>
> #include <linux/sizes.h>
> #include <asm/system_info.h>
> #include <asm/mach/arch.h>
> diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c
> index f2d73289230f..e9743ebbee86 100644
> --- a/arch/arm/mach-pxa/corgi.c
> +++ b/arch/arm/mach-pxa/corgi.c
> @@ -39,7 +39,6 @@
> #include <asm/setup.h>
> #include <asm/memory.h>
> #include <asm/mach-types.h>
> -#include <mach/hardware.h>
> #include <asm/irq.h>
>
> #include <asm/mach/arch.h>
> diff --git a/arch/arm/mach-pxa/corgi_pm.c b/arch/arm/mach-pxa/corgi_pm.c
> index 092dcb9fced5..ff1ac9bf37cb 100644
> --- a/arch/arm/mach-pxa/corgi_pm.c
> +++ b/arch/arm/mach-pxa/corgi_pm.c
> @@ -19,7 +19,6 @@
>
> #include <asm/irq.h>
> #include <asm/mach-types.h>
> -#include <mach/hardware.h>
>
> #include <mach/corgi.h>
> #include <mach/pxa2xx-regs.h>
> diff --git a/arch/arm/mach-pxa/csb726.c b/arch/arm/mach-pxa/csb726.c
> index 98fcdc6e2944..d48493445ae5 100644
> --- a/arch/arm/mach-pxa/csb726.c
> +++ b/arch/arm/mach-pxa/csb726.c
> @@ -17,6 +17,7 @@
>
> #include <asm/mach-types.h>
> #include <asm/mach/arch.h>
> +
> #include "csb726.h"
> #include "pxa27x.h"
> #include <linux/platform_data/mmc-pxamci.h>
> diff --git a/arch/arm/mach-pxa/devices.c b/arch/arm/mach-pxa/devices.c
> index 524d6093e0c7..c289a6c2311d 100644
> --- a/arch/arm/mach-pxa/devices.c
> +++ b/arch/arm/mach-pxa/devices.c
> @@ -8,6 +8,7 @@
> #include <linux/dmaengine.h>
> #include <linux/spi/pxa2xx_spi.h>
> #include <linux/platform_data/i2c-pxa.h>
> +#include <linux/soc/pxa/cpu.h>
>
> #include "udc.h"
> #include <linux/platform_data/usb-pxa3xx-ulpi.h>
> @@ -19,7 +20,6 @@
> #include <linux/platform_data/keypad-pxa27x.h>
> #include <linux/platform_data/media/camera-pxa.h>
> #include <mach/audio.h>
> -#include <mach/hardware.h>
> #include <linux/platform_data/mmp_dma.h>
> #include <linux/platform_data/mtd-nand-pxa3xx.h>
>
> diff --git a/arch/arm/mach-pxa/ezx.c b/arch/arm/mach-pxa/ezx.c
> index ec10851b63cf..a77c5988a446 100644
> --- a/arch/arm/mach-pxa/ezx.c
> +++ b/arch/arm/mach-pxa/ezx.c
> @@ -29,7 +29,6 @@
> #include "pxa27x.h"
> #include <linux/platform_data/video-pxafb.h>
> #include <linux/platform_data/usb-ohci-pxa27x.h>
> -#include <mach/hardware.h>
> #include <linux/platform_data/keypad-pxa27x.h>
> #include <linux/platform_data/media/camera-pxa.h>
>
> diff --git a/arch/arm/mach-pxa/generic.c b/arch/arm/mach-pxa/generic.c
> index ab7cdffd7ea8..3c3cd90bb9b4 100644
> --- a/arch/arm/mach-pxa/generic.c
> +++ b/arch/arm/mach-pxa/generic.c
> @@ -17,11 +17,12 @@
> #include <linux/module.h>
> #include <linux/kernel.h>
> #include <linux/init.h>
> +#include <linux/soc/pxa/cpu.h>
>
> -#include <mach/hardware.h>
> #include <asm/mach/map.h>
> #include <asm/mach-types.h>
>
> +#include <mach/addr-map.h>
> #include <mach/irqs.h>
> #include <mach/reset.h>
> #include <mach/smemc.h>
> diff --git a/arch/arm/mach-pxa/gumstix.c b/arch/arm/mach-pxa/gumstix.c
> index 4b4589cf431f..b50080d55fa4 100644
> --- a/arch/arm/mach-pxa/gumstix.c
> +++ b/arch/arm/mach-pxa/gumstix.c
> @@ -28,7 +28,6 @@
> #include <asm/setup.h>
> #include <asm/memory.h>
> #include <asm/mach-types.h>
> -#include <mach/hardware.h>
> #include <asm/irq.h>
> #include <linux/sizes.h>
>
> diff --git a/arch/arm/mach-pxa/hx4700.c b/arch/arm/mach-pxa/hx4700.c
> index 311268d186ab..4dce8834c5b6 100644
> --- a/arch/arm/mach-pxa/hx4700.c
> +++ b/arch/arm/mach-pxa/hx4700.c
> @@ -37,11 +37,11 @@
> #include <linux/usb/gpio_vbus.h>
> #include <linux/platform_data/i2c-pxa.h>
>
> -#include <mach/hardware.h>
> #include <asm/mach-types.h>
> #include <asm/mach/arch.h>
>
> #include "pxa27x.h"
> +#include <mach/addr-map.h>
> #include <mach/hx4700.h>
> #include <linux/platform_data/irda-pxaficp.h>
>
> diff --git a/arch/arm/mach-pxa/idp.c b/arch/arm/mach-pxa/idp.c
> index fb0850af8496..57c0511472bc 100644
> --- a/arch/arm/mach-pxa/idp.c
> +++ b/arch/arm/mach-pxa/idp.c
> @@ -22,7 +22,6 @@
> #include <asm/setup.h>
> #include <asm/memory.h>
> #include <asm/mach-types.h>
> -#include <mach/hardware.h>
> #include <asm/irq.h>
>
> #include <asm/mach/arch.h>
> diff --git a/arch/arm/mach-pxa/include/mach/pxa-regs.h b/arch/arm/mach-pxa/include/mach/pxa-regs.h
> new file mode 100644
> index 000000000000..ba5120c06b8a
> --- /dev/null
> +++ b/arch/arm/mach-pxa/include/mach/pxa-regs.h
> @@ -0,0 +1,52 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * Author: Nicolas Pitre
> + * Created: Jun 15, 2001
> + * Copyright: MontaVista Software Inc.
> + */
> +#ifndef __ASM_MACH_PXA_REGS_H
> +#define __ASM_MACH_PXA_REGS_H
> +
> +/*
> + * Workarounds for at least 2 errata so far require this.
> + * The mapping is set in mach-pxa/generic.c.
> + */
> +#define UNCACHED_PHYS_0 0xfe000000
> +#define UNCACHED_PHYS_0_SIZE 0x00100000
> +
> +/*
> + * Intel PXA2xx internal register mapping:
> + *
> + * 0x40000000 - 0x41ffffff <--> 0xf2000000 - 0xf3ffffff
> + * 0x44000000 - 0x45ffffff <--> 0xf4000000 - 0xf5ffffff
> + * 0x48000000 - 0x49ffffff <--> 0xf6000000 - 0xf7ffffff
> + * 0x4c000000 - 0x4dffffff <--> 0xf8000000 - 0xf9ffffff
> + * 0x50000000 - 0x51ffffff <--> 0xfa000000 - 0xfbffffff
> + * 0x54000000 - 0x55ffffff <--> 0xfc000000 - 0xfdffffff
> + * 0x58000000 - 0x59ffffff <--> 0xfe000000 - 0xffffffff
> + *
> + * Note that not all PXA2xx chips implement all those addresses, and the
> + * kernel only maps the minimum needed range of this mapping.
> + */
> +#define io_v2p(x) (0x3c000000 + ((x) & 0x01ffffff) + (((x) & 0x0e000000) << 1))
> +#define io_p2v(x) IOMEM(0xf2000000 + ((x) & 0x01ffffff) + (((x) & 0x1c000000) >> 1))
> +
> +#ifndef __ASSEMBLY__
> +# define __REG(x) (*((volatile u32 __iomem *)io_p2v(x)))
> +
> +/* With indexed regs we don't want to feed the index through io_p2v()
> + especially if it is a variable, otherwise horrible code will result. */
> +# define __REG2(x,y) \
> + (*(volatile u32 __iomem*)((u32)&__REG(x) + (y)))
> +
> +# define __PREG(x) (io_v2p((u32)&(x)))
> +
> +#else
> +
> +# define __REG(x) io_p2v(x)
> +# define __PREG(x) io_v2p(x)
> +
> +#endif
> +
> +
> +#endif
> diff --git a/arch/arm/mach-pxa/include/mach/pxa2xx-regs.h b/arch/arm/mach-pxa/include/mach/pxa2xx-regs.h
> index fa121e135915..f68b573ab4a0 100644
> --- a/arch/arm/mach-pxa/include/mach/pxa2xx-regs.h
> +++ b/arch/arm/mach-pxa/include/mach/pxa2xx-regs.h
> @@ -11,7 +11,7 @@
> #ifndef __PXA2XX_REGS_H
> #define __PXA2XX_REGS_H
>
> -#include <mach/hardware.h>
> +#include "pxa-regs.h"
>
> /*
> * Power Manager
> diff --git a/arch/arm/mach-pxa/include/mach/pxa3xx-regs.h b/arch/arm/mach-pxa/include/mach/pxa3xx-regs.h
> index 070f6c74196e..8eb1ba533e1c 100644
> --- a/arch/arm/mach-pxa/include/mach/pxa3xx-regs.h
> +++ b/arch/arm/mach-pxa/include/mach/pxa3xx-regs.h
> @@ -10,7 +10,7 @@
> #ifndef __ASM_ARCH_PXA3XX_REGS_H
> #define __ASM_ARCH_PXA3XX_REGS_H
>
> -#include <mach/hardware.h>
> +#include "pxa-regs.h"
>
> /*
> * Oscillator Configuration Register (OSCC)
> diff --git a/arch/arm/mach-pxa/include/mach/regs-ac97.h b/arch/arm/mach-pxa/include/mach/regs-ac97.h
> index 1db96fd4df32..ec09b9635e25 100644
> --- a/arch/arm/mach-pxa/include/mach/regs-ac97.h
> +++ b/arch/arm/mach-pxa/include/mach/regs-ac97.h
> @@ -2,7 +2,7 @@
> #ifndef __ASM_ARCH_REGS_AC97_H
> #define __ASM_ARCH_REGS_AC97_H
>
> -#include <mach/hardware.h>
> +#include "pxa-regs.h"
>
> /*
> * AC97 Controller registers
> diff --git a/arch/arm/mach-pxa/include/mach/regs-ost.h b/arch/arm/mach-pxa/include/mach/regs-ost.h
> index deb564ed8ee7..109d0ed264df 100644
> --- a/arch/arm/mach-pxa/include/mach/regs-ost.h
> +++ b/arch/arm/mach-pxa/include/mach/regs-ost.h
> @@ -2,7 +2,7 @@
> #ifndef __ASM_MACH_REGS_OST_H
> #define __ASM_MACH_REGS_OST_H
>
> -#include <mach/hardware.h>
> +#include "pxa-regs.h"
>
> /*
> * OS Timer & Match Registers
> diff --git a/arch/arm/mach-pxa/include/mach/trizeps4.h b/arch/arm/mach-pxa/include/mach/trizeps4.h
> index 3cddb1428c5e..27926629f9c6 100644
> --- a/arch/arm/mach-pxa/include/mach/trizeps4.h
> +++ b/arch/arm/mach-pxa/include/mach/trizeps4.h
> @@ -11,6 +11,7 @@
> #ifndef _TRIPEPS4_H_
> #define _TRIPEPS4_H_
>
> +#include <mach/addr-map.h>
> #include "irqs.h" /* PXA_GPIO_TO_IRQ */
>
> /* physical memory regions */
> diff --git a/arch/arm/mach-pxa/irq.c b/arch/arm/mach-pxa/irq.c
> index 74efc3ab595f..f25c30e8a834 100644
> --- a/arch/arm/mach-pxa/irq.c
> +++ b/arch/arm/mach-pxa/irq.c
> @@ -17,13 +17,14 @@
> #include <linux/irq.h>
> #include <linux/of_address.h>
> #include <linux/of_irq.h>
> +#include <linux/soc/pxa/cpu.h>
>
> #include <asm/exception.h>
>
> -#include <mach/hardware.h>
> #include <mach/irqs.h>
>
> #include "generic.h"
> +#include "pxa-regs.h"
>
> #define ICIP (0x000)
> #define ICMR (0x004)
> diff --git a/arch/arm/mach-pxa/littleton.c b/arch/arm/mach-pxa/littleton.c
> index 793f61375ee8..7486056e6cce 100644
> --- a/arch/arm/mach-pxa/littleton.c
> +++ b/arch/arm/mach-pxa/littleton.c
> @@ -31,7 +31,6 @@
> #include <asm/setup.h>
> #include <asm/memory.h>
> #include <asm/mach-types.h>
> -#include <mach/hardware.h>
> #include <asm/irq.h>
>
> #include <asm/mach/arch.h>
> diff --git a/arch/arm/mach-pxa/lpd270.c b/arch/arm/mach-pxa/lpd270.c
> index 20e00e970385..1b7c2def3033 100644
> --- a/arch/arm/mach-pxa/lpd270.c
> +++ b/arch/arm/mach-pxa/lpd270.c
> @@ -28,7 +28,6 @@
> #include <asm/setup.h>
> #include <asm/memory.h>
> #include <asm/mach-types.h>
> -#include <mach/hardware.h>
> #include <asm/irq.h>
> #include <linux/sizes.h>
>
> @@ -39,6 +38,7 @@
>
> #include "pxa27x.h"
> #include "lpd270.h"
> +#include <mach/addr-map.h>
> #include <mach/audio.h>
> #include <linux/platform_data/video-pxafb.h>
> #include <linux/platform_data/mmc-pxamci.h>
> diff --git a/arch/arm/mach-pxa/lubbock.c b/arch/arm/mach-pxa/lubbock.c
> index 742d18a1f7dc..477d144f039c 100644
> --- a/arch/arm/mach-pxa/lubbock.c
> +++ b/arch/arm/mach-pxa/lubbock.c
> @@ -34,7 +34,6 @@
> #include <asm/setup.h>
> #include <asm/memory.h>
> #include <asm/mach-types.h>
> -#include <mach/hardware.h>
> #include <asm/irq.h>
> #include <linux/sizes.h>
>
> diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c
> index e1a394ac3eea..ce4c677be868 100644
> --- a/arch/arm/mach-pxa/magician.c
> +++ b/arch/arm/mach-pxa/magician.c
> @@ -30,12 +30,12 @@
> #include <linux/usb/gpio_vbus.h>
> #include <linux/platform_data/i2c-pxa.h>
>
> -#include <mach/hardware.h>
> #include <asm/mach-types.h>
> #include <asm/mach/arch.h>
> #include <asm/system_info.h>
>
> #include "pxa27x.h"
> +#include <mach/addr-map.h>
> #include <mach/magician.h>
> #include <linux/platform_data/video-pxafb.h>
> #include <linux/platform_data/mmc-pxamci.h>
> diff --git a/arch/arm/mach-pxa/mainstone.c b/arch/arm/mach-pxa/mainstone.c
> index ef79417ca001..16883c996c45 100644
> --- a/arch/arm/mach-pxa/mainstone.c
> +++ b/arch/arm/mach-pxa/mainstone.c
> @@ -35,7 +35,6 @@
> #include <asm/setup.h>
> #include <asm/memory.h>
> #include <asm/mach-types.h>
> -#include <mach/hardware.h>
> #include <asm/irq.h>
> #include <linux/sizes.h>
>
> @@ -52,6 +51,7 @@
> #include <linux/platform_data/irda-pxaficp.h>
> #include <linux/platform_data/usb-ohci-pxa27x.h>
> #include <linux/platform_data/keypad-pxa27x.h>
> +#include <mach/addr-map.h>
> #include <mach/smemc.h>
>
> #include "generic.h"
> diff --git a/arch/arm/mach-pxa/mfp-pxa2xx.c b/arch/arm/mach-pxa/mfp-pxa2xx.c
> index 6a5451b186c2..6bc7206fd2ac 100644
> --- a/arch/arm/mach-pxa/mfp-pxa2xx.c
> +++ b/arch/arm/mach-pxa/mfp-pxa2xx.c
> @@ -16,6 +16,7 @@
> #include <linux/init.h>
> #include <linux/io.h>
> #include <linux/syscore_ops.h>
> +#include <linux/soc/pxa/cpu.h>
>
> #include <mach/pxa2xx-regs.h>
> #include "mfp-pxa2xx.h"
> diff --git a/arch/arm/mach-pxa/mfp-pxa3xx.c b/arch/arm/mach-pxa/mfp-pxa3xx.c
> index 56114df9700d..f26b5e5412cf 100644
> --- a/arch/arm/mach-pxa/mfp-pxa3xx.c
> +++ b/arch/arm/mach-pxa/mfp-pxa3xx.c
> @@ -16,7 +16,6 @@
> #include <linux/io.h>
> #include <linux/syscore_ops.h>
>
> -#include <mach/hardware.h>
> #include "mfp-pxa3xx.h"
> #include <mach/pxa3xx-regs.h>
>
> diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c
> index 3a4ecc3c8f8b..8dd791ee49bf 100644
> --- a/arch/arm/mach-pxa/poodle.c
> +++ b/arch/arm/mach-pxa/poodle.c
> @@ -30,7 +30,6 @@
> #include <linux/mtd/sharpsl.h>
> #include <linux/memblock.h>
>
> -#include <mach/hardware.h>
> #include <asm/mach-types.h>
> #include <asm/irq.h>
> #include <asm/setup.h>
> diff --git a/arch/arm/mach-pxa/pxa-regs.h b/arch/arm/mach-pxa/pxa-regs.h
> new file mode 100644
> index 000000000000..584d2ac592cc
> --- /dev/null
> +++ b/arch/arm/mach-pxa/pxa-regs.h
> @@ -0,0 +1 @@
> +#include <mach/pxa-regs.h>
> diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c
> index 0d25cc45f825..305047ebd2f1 100644
> --- a/arch/arm/mach-pxa/pxa25x.c
> +++ b/arch/arm/mach-pxa/pxa25x.c
> @@ -26,14 +26,15 @@
> #include <linux/irq.h>
> #include <linux/irqchip.h>
> #include <linux/platform_data/mmp_dma.h>
> +#include <linux/soc/pxa/cpu.h>
>
> #include <asm/mach/map.h>
> #include <asm/suspend.h>
> -#include <mach/hardware.h>
> #include <mach/irqs.h>
> #include "pxa25x.h"
> #include <mach/reset.h>
> #include "pm.h"
> +#include <mach/addr-map.h>
> #include <mach/smemc.h>
>
> #include "generic.h"
> diff --git a/arch/arm/mach-pxa/pxa25x.h b/arch/arm/mach-pxa/pxa25x.h
> index b58d0fbdb4db..403bc16c2ed2 100644
> --- a/arch/arm/mach-pxa/pxa25x.h
> +++ b/arch/arm/mach-pxa/pxa25x.h
> @@ -2,7 +2,7 @@
> #ifndef __MACH_PXA25x_H
> #define __MACH_PXA25x_H
>
> -#include <mach/hardware.h>
> +#include <mach/addr-map.h>
> #include <mach/pxa2xx-regs.h>
> #include "mfp-pxa25x.h"
> #include <mach/irqs.h>
> diff --git a/arch/arm/mach-pxa/pxa27x-udc.h b/arch/arm/mach-pxa/pxa27x-udc.h
> index faf73804697f..2d3df3b1cb68 100644
> --- a/arch/arm/mach-pxa/pxa27x-udc.h
> +++ b/arch/arm/mach-pxa/pxa27x-udc.h
> @@ -2,6 +2,8 @@
> #ifndef _ASM_ARCH_PXA27X_UDC_H
> #define _ASM_ARCH_PXA27X_UDC_H
>
> +#include "pxa-regs.h"
> +
> #ifdef _ASM_ARCH_PXA25X_UDC_H
> #error You cannot include both PXA25x and PXA27x UDC support
> #endif
> diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c
> index f7e89831e85b..a81ac88ecbfd 100644
> --- a/arch/arm/mach-pxa/pxa27x.c
> +++ b/arch/arm/mach-pxa/pxa27x.c
> @@ -23,9 +23,9 @@
> #include <linux/irq.h>
> #include <linux/platform_data/i2c-pxa.h>
> #include <linux/platform_data/mmp_dma.h>
> +#include <linux/soc/pxa/cpu.h>
>
> #include <asm/mach/map.h>
> -#include <mach/hardware.h>
> #include <asm/irq.h>
> #include <asm/suspend.h>
> #include <mach/irqs.h>
> @@ -33,6 +33,7 @@
> #include <mach/reset.h>
> #include <linux/platform_data/usb-ohci-pxa27x.h>
> #include "pm.h"
> +#include <mach/addr-map.h>
> #include <mach/smemc.h>
>
> #include "generic.h"
> diff --git a/arch/arm/mach-pxa/pxa27x.h b/arch/arm/mach-pxa/pxa27x.h
> index abdc02fb4f03..6c99090647d2 100644
> --- a/arch/arm/mach-pxa/pxa27x.h
> +++ b/arch/arm/mach-pxa/pxa27x.h
> @@ -3,7 +3,7 @@
> #define __MACH_PXA27x_H
>
> #include <linux/suspend.h>
> -#include <mach/hardware.h>
> +#include <mach/addr-map.h>
> #include <mach/pxa2xx-regs.h>
> #include "mfp-pxa27x.h"
> #include <mach/irqs.h>
> diff --git a/arch/arm/mach-pxa/pxa2xx.c b/arch/arm/mach-pxa/pxa2xx.c
> index 2d26cd2afbf3..ac72acb43e26 100644
> --- a/arch/arm/mach-pxa/pxa2xx.c
> +++ b/arch/arm/mach-pxa/pxa2xx.c
> @@ -12,7 +12,6 @@
> #include <linux/device.h>
> #include <linux/io.h>
>
> -#include <mach/hardware.h>
> #include <mach/pxa2xx-regs.h>
> #include "mfp-pxa25x.h"
> #include <mach/reset.h>
> diff --git a/arch/arm/mach-pxa/pxa300.c b/arch/arm/mach-pxa/pxa300.c
> index 7f2f5a6a2263..f77ec118d5b9 100644
> --- a/arch/arm/mach-pxa/pxa300.c
> +++ b/arch/arm/mach-pxa/pxa300.c
> @@ -14,6 +14,7 @@
> #include <linux/kernel.h>
> #include <linux/platform_device.h>
> #include <linux/io.h>
> +#include <linux/soc/pxa/cpu.h>
>
> #include "pxa300.h"
>
> diff --git a/arch/arm/mach-pxa/pxa320.c b/arch/arm/mach-pxa/pxa320.c
> index 78abcc741df7..e372e6c118de 100644
> --- a/arch/arm/mach-pxa/pxa320.c
> +++ b/arch/arm/mach-pxa/pxa320.c
> @@ -14,6 +14,7 @@
> #include <linux/kernel.h>
> #include <linux/platform_device.h>
> #include <linux/io.h>
> +#include <linux/soc/pxa/cpu.h>
>
> #include "pxa320.h"
>
> diff --git a/arch/arm/mach-pxa/pxa3xx-ulpi.c b/arch/arm/mach-pxa/pxa3xx-ulpi.c
> index 4bd7da1f8657..c29a7f0fa1b0 100644
> --- a/arch/arm/mach-pxa/pxa3xx-ulpi.c
> +++ b/arch/arm/mach-pxa/pxa3xx-ulpi.c
> @@ -21,8 +21,8 @@
> #include <linux/clk.h>
> #include <linux/usb.h>
> #include <linux/usb/otg.h>
> +#include <linux/soc/pxa/cpu.h>
>
> -#include <mach/hardware.h>
> #include "regs-u2d.h"
> #include <linux/platform_data/usb-pxa3xx-ulpi.h>
>
> diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c
> index 6eb1c24d7395..fc84aed99481 100644
> --- a/arch/arm/mach-pxa/pxa3xx.c
> +++ b/arch/arm/mach-pxa/pxa3xx.c
> @@ -24,14 +24,15 @@
> #include <linux/syscore_ops.h>
> #include <linux/platform_data/i2c-pxa.h>
> #include <linux/platform_data/mmp_dma.h>
> +#include <linux/soc/pxa/cpu.h>
>
> #include <asm/mach/map.h>
> #include <asm/suspend.h>
> -#include <mach/hardware.h>
> #include <mach/pxa3xx-regs.h>
> #include <mach/reset.h>
> #include <linux/platform_data/usb-ohci-pxa27x.h>
> #include "pm.h"
> +#include <mach/addr-map.h>
> #include <mach/smemc.h>
> #include <mach/irqs.h>
>
> diff --git a/arch/arm/mach-pxa/pxa3xx.h b/arch/arm/mach-pxa/pxa3xx.h
> index 6d4502aa9d06..22ace053ea25 100644
> --- a/arch/arm/mach-pxa/pxa3xx.h
> +++ b/arch/arm/mach-pxa/pxa3xx.h
> @@ -2,7 +2,7 @@
> #ifndef __MACH_PXA3XX_H
> #define __MACH_PXA3XX_H
>
> -#include <mach/hardware.h>
> +#include <mach/addr-map.h>
> #include <mach/pxa3xx-regs.h>
> #include <mach/irqs.h>
>
> diff --git a/arch/arm/mach-pxa/pxa930.c b/arch/arm/mach-pxa/pxa930.c
> index bf91de4267e5..b9021a40cbd1 100644
> --- a/arch/arm/mach-pxa/pxa930.c
> +++ b/arch/arm/mach-pxa/pxa930.c
> @@ -13,6 +13,7 @@
> #include <linux/irq.h>
> #include <linux/gpio-pxa.h>
> #include <linux/platform_device.h>
> +#include <linux/soc/pxa/cpu.h>
>
> #include "pxa930.h"
>
> diff --git a/arch/arm/mach-pxa/regs-rtc.h b/arch/arm/mach-pxa/regs-rtc.h
> index b1f9ff14e335..96255a0f595e 100644
> --- a/arch/arm/mach-pxa/regs-rtc.h
> +++ b/arch/arm/mach-pxa/regs-rtc.h
> @@ -2,7 +2,7 @@
> #ifndef __ASM_MACH_REGS_RTC_H
> #define __ASM_MACH_REGS_RTC_H
>
> -#include <mach/hardware.h>
> +#include "pxa-regs.h"
>
> /*
> * Real Time Clock
> diff --git a/arch/arm/mach-pxa/regs-uart.h b/arch/arm/mach-pxa/regs-uart.h
> index 9a168f83afeb..490e9ca16297 100644
> --- a/arch/arm/mach-pxa/regs-uart.h
> +++ b/arch/arm/mach-pxa/regs-uart.h
> @@ -2,6 +2,8 @@
> #ifndef __ASM_ARCH_REGS_UART_H
> #define __ASM_ARCH_REGS_UART_H
>
> +#include "pxa-regs.h"
> +
> /*
> * UARTs
> */
> diff --git a/arch/arm/mach-pxa/sleep.S b/arch/arm/mach-pxa/sleep.S
> index 6c5b3ffd2cd3..272efeb954f4 100644
> --- a/arch/arm/mach-pxa/sleep.S
> +++ b/arch/arm/mach-pxa/sleep.S
> @@ -13,7 +13,6 @@
>
> #include <linux/linkage.h>
> #include <asm/assembler.h>
> -#include <mach/hardware.h>
> #include <mach/smemc.h>
> #include <mach/pxa2xx-regs.h>
>
> diff --git a/arch/arm/mach-pxa/smemc.c b/arch/arm/mach-pxa/smemc.c
> index 32e82cc92ea5..47b99549d616 100644
> --- a/arch/arm/mach-pxa/smemc.c
> +++ b/arch/arm/mach-pxa/smemc.c
> @@ -8,8 +8,8 @@
> #include <linux/init.h>
> #include <linux/io.h>
> #include <linux/syscore_ops.h>
> +#include <linux/soc/pxa/cpu.h>
>
> -#include <mach/hardware.h>
> #include <mach/smemc.h>
>
> #ifdef CONFIG_PM
> diff --git a/arch/arm/mach-pxa/spitz_pm.c b/arch/arm/mach-pxa/spitz_pm.c
> index 25a1f8c5a738..201dabe883b6 100644
> --- a/arch/arm/mach-pxa/spitz_pm.c
> +++ b/arch/arm/mach-pxa/spitz_pm.c
> @@ -18,7 +18,6 @@
>
> #include <asm/irq.h>
> #include <asm/mach-types.h>
> -#include <mach/hardware.h>
>
> #include <mach/spitz.h>
> #include "pxa27x.h"
> diff --git a/arch/arm/mach-pxa/standby.S b/arch/arm/mach-pxa/standby.S
> index eab1645bb4ad..626fecdefb1c 100644
> --- a/arch/arm/mach-pxa/standby.S
> +++ b/arch/arm/mach-pxa/standby.S
> @@ -11,7 +11,6 @@
>
> #include <linux/linkage.h>
> #include <asm/assembler.h>
> -#include <mach/hardware.h>
>
> #include <mach/pxa2xx-regs.h>
>
> diff --git a/arch/arm/mach-pxa/xcep.c b/arch/arm/mach-pxa/xcep.c
> index f485146b899f..e6ab428287ae 100644
> --- a/arch/arm/mach-pxa/xcep.c
> +++ b/arch/arm/mach-pxa/xcep.c
> @@ -24,8 +24,8 @@
> #include <asm/mach/irq.h>
> #include <asm/mach/map.h>
>
> -#include <mach/hardware.h>
> #include "pxa25x.h"
> +#include <mach/addr-map.h>
> #include <mach/smemc.h>
>
> #include "generic.h"
> diff --git a/arch/arm/mach-pxa/zylonite.c b/arch/arm/mach-pxa/zylonite.c
> index bf2ab5bd49ec..c56c86b35025 100644
> --- a/arch/arm/mach-pxa/zylonite.c
> +++ b/arch/arm/mach-pxa/zylonite.c
> @@ -20,6 +20,7 @@
> #include <linux/pwm.h>
> #include <linux/pwm_backlight.h>
> #include <linux/smc91x.h>
> +#include <linux/soc/pxa/cpu.h>
>
> #include <asm/mach-types.h>
> #include <asm/mach/arch.h>
> diff --git a/arch/arm/mach-pxa/zylonite.h b/arch/arm/mach-pxa/zylonite.h
> index 7300ec2aac0d..afe3efcb8e04 100644
> --- a/arch/arm/mach-pxa/zylonite.h
> +++ b/arch/arm/mach-pxa/zylonite.h
> @@ -2,6 +2,8 @@
> #ifndef __ASM_ARCH_ZYLONITE_H
> #define __ASM_ARCH_ZYLONITE_H
>
> +#include <linux/soc/pxa/cpu.h>
> +
> #define ZYLONITE_ETH_PHYS 0x14000000
>
> #define EXT_GPIO(x) (128 + (x))
> diff --git a/arch/arm/mach-pxa/zylonite_pxa300.c b/arch/arm/mach-pxa/zylonite_pxa300.c
> index 956fec1c4940..50a8a3547dbc 100644
> --- a/arch/arm/mach-pxa/zylonite_pxa300.c
> +++ b/arch/arm/mach-pxa/zylonite_pxa300.c
> @@ -17,6 +17,7 @@
> #include <linux/platform_data/i2c-pxa.h>
> #include <linux/platform_data/pca953x.h>
> #include <linux/gpio.h>
> +#include <linux/soc/pxa/cpu.h>
>
> #include "pxa300.h"
> #include "devices.h"
> diff --git a/arch/arm/mach-pxa/zylonite_pxa320.c b/arch/arm/mach-pxa/zylonite_pxa320.c
> index 94cb834f36cd..67cab4f1194b 100644
> --- a/arch/arm/mach-pxa/zylonite_pxa320.c
> +++ b/arch/arm/mach-pxa/zylonite_pxa320.c
> @@ -14,6 +14,7 @@
> #include <linux/kernel.h>
> #include <linux/init.h>
> #include <linux/gpio.h>
> +#include <linux/soc/pxa/cpu.h>
>
> #include "pxa320.h"
> #include "zylonite.h"
> diff --git a/drivers/clk/pxa/clk-pxa3xx.c b/drivers/clk/pxa/clk-pxa3xx.c
> index 60db92772e72..027b78183565 100644
> --- a/drivers/clk/pxa/clk-pxa3xx.c
> +++ b/drivers/clk/pxa/clk-pxa3xx.c
> @@ -14,6 +14,7 @@
> #include <linux/clk-provider.h>
> #include <linux/clkdev.h>
> #include <linux/of.h>
> +#include <linux/soc/pxa/cpu.h>
> #include <mach/smemc.h>
> #include <mach/pxa3xx-regs.h>
>
> diff --git a/drivers/cpufreq/pxa2xx-cpufreq.c b/drivers/cpufreq/pxa2xx-cpufreq.c
> index f0b6f52eb2c3..0f0e676ff781 100644
> --- a/drivers/cpufreq/pxa2xx-cpufreq.c
> +++ b/drivers/cpufreq/pxa2xx-cpufreq.c
> @@ -24,6 +24,7 @@
> #include <linux/cpufreq.h>
> #include <linux/err.h>
> #include <linux/regulator/consumer.h>
> +#include <linux/soc/pxa/cpu.h>
> #include <linux/io.h>
>
> #include <mach/pxa2xx-regs.h>
> diff --git a/drivers/cpufreq/pxa3xx-cpufreq.c b/drivers/cpufreq/pxa3xx-cpufreq.c
> index 32f993c94675..d3b398b4aa6a 100644
> --- a/drivers/cpufreq/pxa3xx-cpufreq.c
> +++ b/drivers/cpufreq/pxa3xx-cpufreq.c
> @@ -8,6 +8,7 @@
> #include <linux/sched.h>
> #include <linux/init.h>
> #include <linux/cpufreq.h>
> +#include <linux/soc/pxa/cpu.h>
> #include <linux/slab.h>
> #include <linux/io.h>
>
> diff --git a/drivers/input/mouse/pxa930_trkball.c b/drivers/input/mouse/pxa930_trkball.c
> index 41acde60b60f..fb04c851aaa7 100644
> --- a/drivers/input/mouse/pxa930_trkball.c
> +++ b/drivers/input/mouse/pxa930_trkball.c
> @@ -15,7 +15,6 @@
> #include <linux/io.h>
> #include <linux/slab.h>
>
> -#include <mach/hardware.h>
> #include <linux/platform_data/mouse-pxa930_trkball.h>
>
> /* Trackball Controller Register Definitions */
> diff --git a/drivers/input/touchscreen/zylonite-wm97xx.c b/drivers/input/touchscreen/zylonite-wm97xx.c
> index 0f4ac7f844ce..f57bdf083188 100644
> --- a/drivers/input/touchscreen/zylonite-wm97xx.c
> +++ b/drivers/input/touchscreen/zylonite-wm97xx.c
> @@ -21,9 +21,9 @@
> #include <linux/irq.h>
> #include <linux/interrupt.h>
> #include <linux/io.h>
> +#include <linux/soc/pxa/cpu.h>
> #include <linux/wm97xx.h>
>
> -#include <mach/hardware.h>
> #include <mach/mfp.h>
> #include <mach/regs-ac97.h>
>
> diff --git a/drivers/leds/leds-locomo.c b/drivers/leds/leds-locomo.c
> index 42dc46e3f00f..9aa3fccd71fb 100644
> --- a/drivers/leds/leds-locomo.c
> +++ b/drivers/leds/leds-locomo.c
> @@ -11,7 +11,6 @@
> #include <linux/device.h>
> #include <linux/leds.h>
>
> -#include <mach/hardware.h>
> #include <asm/hardware/locomo.h>
>
> static void locomoled_brightness_set(struct led_classdev *led_cdev,
> diff --git a/drivers/mmc/host/pxamci.c b/drivers/mmc/host/pxamci.c
> index 024acc1b0a2e..26740966ca76 100644
> --- a/drivers/mmc/host/pxamci.c
> +++ b/drivers/mmc/host/pxamci.c
> @@ -31,10 +31,10 @@
> #include <linux/gfp.h>
> #include <linux/of.h>
> #include <linux/of_device.h>
> +#include <linux/soc/pxa/cpu.h>
>
> #include <linux/sizes.h>
>
> -#include <mach/hardware.h>
> #include <linux/platform_data/mmc-pxamci.h>
>
> #include "pxamci.h"
> diff --git a/drivers/mtd/maps/pxa2xx-flash.c b/drivers/mtd/maps/pxa2xx-flash.c
> index 7d96758a8f04..1749dbbacc13 100644
> --- a/drivers/mtd/maps/pxa2xx-flash.c
> +++ b/drivers/mtd/maps/pxa2xx-flash.c
> @@ -16,8 +16,6 @@
> #include <linux/mtd/partitions.h>
>
> #include <asm/io.h>
> -#include <mach/hardware.h>
> -
> #include <asm/mach/flash.h>
>
> #define CACHELINESIZE 32
> diff --git a/drivers/mtd/nand/raw/cmx270_nand.c b/drivers/mtd/nand/raw/cmx270_nand.c
> index 045b6175ae79..7af3d0bdcdb8 100644
> --- a/drivers/mtd/nand/raw/cmx270_nand.c
> +++ b/drivers/mtd/nand/raw/cmx270_nand.c
> @@ -17,12 +17,13 @@
> #include <linux/slab.h>
> #include <linux/gpio.h>
> #include <linux/module.h>
> +#include <linux/soc/pxa/cpu.h>
>
> #include <asm/io.h>
> #include <asm/irq.h>
> #include <asm/mach-types.h>
>
> -#include <mach/pxa2xx-regs.h>
> +#include <mach/addr-map.h>
>
> #define GPIO_NAND_CS (11)
> #define GPIO_NAND_RB (89)
> diff --git a/drivers/pcmcia/pxa2xx_base.c b/drivers/pcmcia/pxa2xx_base.c
> index d6d2f75f8f47..7cd1375d6087 100644
> --- a/drivers/pcmcia/pxa2xx_base.c
> +++ b/drivers/pcmcia/pxa2xx_base.c
> @@ -23,8 +23,8 @@
> #include <linux/kernel.h>
> #include <linux/spinlock.h>
> #include <linux/platform_device.h>
> +#include <linux/soc/pxa/cpu.h>
>
> -#include <mach/hardware.h>
> #include <mach/smemc.h>
> #include <asm/io.h>
> #include <asm/irq.h>
> diff --git a/drivers/pcmcia/pxa2xx_cm_x2xx.c b/drivers/pcmcia/pxa2xx_cm_x2xx.c
> index 14eae238131d..8c5040e55e24 100644
> --- a/drivers/pcmcia/pxa2xx_cm_x2xx.c
> +++ b/drivers/pcmcia/pxa2xx_cm_x2xx.c
> @@ -7,9 +7,9 @@
> */
>
> #include <linux/module.h>
> +#include <linux/soc/pxa/cpu.h>
>
> #include <asm/mach-types.h>
> -#include <mach/hardware.h>
>
> int cmx255_pcmcia_init(void);
> int cmx270_pcmcia_init(void);
> diff --git a/drivers/pcmcia/pxa2xx_sharpsl.c b/drivers/pcmcia/pxa2xx_sharpsl.c
> index 5fdd25a9e28e..66fe1d1af12a 100644
> --- a/drivers/pcmcia/pxa2xx_sharpsl.c
> +++ b/drivers/pcmcia/pxa2xx_sharpsl.c
> @@ -15,7 +15,6 @@
> #include <linux/platform_device.h>
>
> #include <asm/mach-types.h>
> -#include <mach/hardware.h>
> #include <asm/irq.h>
> #include <asm/hardware/scoop.h>
>
> diff --git a/drivers/pcmcia/sa1111_generic.c b/drivers/pcmcia/sa1111_generic.c
> index 11783410223b..2f556fa37c43 100644
> --- a/drivers/pcmcia/sa1111_generic.c
> +++ b/drivers/pcmcia/sa1111_generic.c
> @@ -17,7 +17,6 @@
>
> #include <pcmcia/ss.h>
>
> -#include <mach/hardware.h>
> #include <asm/hardware/sa1111.h>
> #include <asm/mach-types.h>
> #include <asm/irq.h>
> diff --git a/drivers/pcmcia/sa1111_lubbock.c b/drivers/pcmcia/sa1111_lubbock.c
> index 7feb8d61c639..f1b5160cb8fa 100644
> --- a/drivers/pcmcia/sa1111_lubbock.c
> +++ b/drivers/pcmcia/sa1111_lubbock.c
> @@ -17,7 +17,6 @@
> #include <linux/init.h>
> #include <linux/delay.h>
>
> -#include <mach/hardware.h>
> #include <asm/hardware/sa1111.h>
> #include <asm/mach-types.h>
>
> diff --git a/drivers/pcmcia/soc_common.c b/drivers/pcmcia/soc_common.c
> index 3a8c84bb174d..9276a628473d 100644
> --- a/drivers/pcmcia/soc_common.c
> +++ b/drivers/pcmcia/soc_common.c
> @@ -47,8 +47,6 @@
> #include <linux/spinlock.h>
> #include <linux/timer.h>
>
> -#include <mach/hardware.h>
> -
> #include "soc_common.h"
>
> static irqreturn_t soc_common_pcmcia_interrupt(int irq, void *dev);
> diff --git a/drivers/rtc/rtc-pxa.c b/drivers/rtc/rtc-pxa.c
> index d2f1d8f754bf..ea5da3edacd8 100644
> --- a/drivers/rtc/rtc-pxa.c
> +++ b/drivers/rtc/rtc-pxa.c
> @@ -16,8 +16,6 @@
> #include <linux/of.h>
> #include <linux/of_device.h>
>
> -#include <mach/hardware.h>
> -
> #include "rtc-sa1100.h"
>
> #define RTC_DEF_DIVIDER (32768 - 1)
> diff --git a/drivers/usb/host/ohci-pxa27x.c b/drivers/usb/host/ohci-pxa27x.c
> index 7679fb583e41..0dfe9b7c02e2 100644
> --- a/drivers/usb/host/ohci-pxa27x.c
> +++ b/drivers/usb/host/ohci-pxa27x.c
> @@ -36,8 +36,7 @@
> #include <linux/usb.h>
> #include <linux/usb/hcd.h>
> #include <linux/usb/otg.h>
> -
> -#include <mach/hardware.h>
> +#include <linux/soc/pxa/cpu.h>
>
> #include "ohci.h"
>
> diff --git a/drivers/video/fbdev/pxafb.c b/drivers/video/fbdev/pxafb.c
> index f70c9f79622e..ece691a0f18a 100644
> --- a/drivers/video/fbdev/pxafb.c
> +++ b/drivers/video/fbdev/pxafb.c
> @@ -57,10 +57,10 @@
> #include <linux/console.h>
> #include <linux/of_graph.h>
> #include <linux/regulator/consumer.h>
> +#include <linux/soc/pxa/cpu.h>
> #include <video/of_display_timing.h>
> #include <video/videomode.h>
>
> -#include <mach/hardware.h>
> #include <asm/io.h>
> #include <asm/irq.h>
> #include <asm/div64.h>
> diff --git a/drivers/watchdog/sa1100_wdt.c b/drivers/watchdog/sa1100_wdt.c
> index cbd8c957182f..0f6ffc1e7f4e 100644
> --- a/drivers/watchdog/sa1100_wdt.c
> +++ b/drivers/watchdog/sa1100_wdt.c
> @@ -35,7 +35,6 @@
> #endif
>
> #include <mach/reset.h>
> -#include <mach/hardware.h>
>
> static unsigned long oscr_freq;
> static unsigned long sa1100wdt_users;
> diff --git a/arch/arm/mach-pxa/include/mach/hardware.h b/include/linux/soc/pxa/cpu.h
> similarity index 75%
> rename from arch/arm/mach-pxa/include/mach/hardware.h
> rename to include/linux/soc/pxa/cpu.h
> index ee7eab16135f..5782450ee45c 100644
> --- a/arch/arm/mach-pxa/include/mach/hardware.h
> +++ b/include/linux/soc/pxa/cpu.h
> @@ -1,61 +1,16 @@
> /* SPDX-License-Identifier: GPL-2.0-only */
> /*
> - * arch/arm/mach-pxa/include/mach/hardware.h
> - *
> * Author: Nicolas Pitre
> * Created: Jun 15, 2001
> * Copyright: MontaVista Software Inc.
> */
>
> -#ifndef __ASM_ARCH_HARDWARE_H
> -#define __ASM_ARCH_HARDWARE_H
> -
> -#include <mach/addr-map.h>
> -
> -/*
> - * Workarounds for at least 2 errata so far require this.
> - * The mapping is set in mach-pxa/generic.c.
> - */
> -#define UNCACHED_PHYS_0 0xfe000000
> -#define UNCACHED_PHYS_0_SIZE 0x00100000
> -
> -/*
> - * Intel PXA2xx internal register mapping:
> - *
> - * 0x40000000 - 0x41ffffff <--> 0xf2000000 - 0xf3ffffff
> - * 0x44000000 - 0x45ffffff <--> 0xf4000000 - 0xf5ffffff
> - * 0x48000000 - 0x49ffffff <--> 0xf6000000 - 0xf7ffffff
> - * 0x4c000000 - 0x4dffffff <--> 0xf8000000 - 0xf9ffffff
> - * 0x50000000 - 0x51ffffff <--> 0xfa000000 - 0xfbffffff
> - * 0x54000000 - 0x55ffffff <--> 0xfc000000 - 0xfdffffff
> - * 0x58000000 - 0x59ffffff <--> 0xfe000000 - 0xffffffff
> - *
> - * Note that not all PXA2xx chips implement all those addresses, and the
> - * kernel only maps the minimum needed range of this mapping.
> - */
> -#define io_v2p(x) (0x3c000000 + ((x) & 0x01ffffff) + (((x) & 0x0e000000) << 1))
> -#define io_p2v(x) IOMEM(0xf2000000 + ((x) & 0x01ffffff) + (((x) & 0x1c000000) >> 1))
> -
> -#ifndef __ASSEMBLY__
> -# define __REG(x) (*((volatile u32 __iomem *)io_p2v(x)))
> -
> -/* With indexed regs we don't want to feed the index through io_p2v()
> - especially if it is a variable, otherwise horrible code will result. */
> -# define __REG2(x,y) \
> - (*(volatile u32 __iomem*)((u32)&__REG(x) + (y)))
> -
> -# define __PREG(x) (io_v2p((u32)&(x)))
> -
> -#else
> -
> -# define __REG(x) io_p2v(x)
> -# define __PREG(x) io_v2p(x)
> -
> -#endif
> -
> -#ifndef __ASSEMBLY__
> +#ifndef __SOC_PXA_CPU_H
> +#define __SOC_PXA_CPU_H
>
> +#ifdef CONFIG_ARM
> #include <asm/cputype.h>
> +#endif
>
> /*
> * CPU Stepping CPU_ID JTAG_ID
> @@ -294,12 +249,4 @@
> __cpu_is_pxa93x(read_cpuid_id()); \
> })
>
> -
> -/*
> - * return current memory and LCD clock frequency in units of 10kHz
> - */
> -extern unsigned int get_memclk_frequency_10khz(void);
> -
> #endif
> -
> -#endif /* _ASM_ARCH_HARDWARE_H */
> diff --git a/sound/arm/pxa2xx-ac97-lib.c b/sound/arm/pxa2xx-ac97-lib.c
> index 58274b4a1f09..84d5f85073b9 100644
> --- a/sound/arm/pxa2xx-ac97-lib.c
> +++ b/sound/arm/pxa2xx-ac97-lib.c
> @@ -17,6 +17,7 @@
> #include <linux/io.h>
> #include <linux/gpio.h>
> #include <linux/of_gpio.h>
> +#include <linux/soc/pxa/cpu.h>
>
> #include <sound/pxa2xx-lib.h>
>
> diff --git a/sound/soc/pxa/pxa2xx-ac97.c b/sound/soc/pxa/pxa2xx-ac97.c
> index bf28187315db..eb99e01ee26f 100644
> --- a/sound/soc/pxa/pxa2xx-ac97.c
> +++ b/sound/soc/pxa/pxa2xx-ac97.c
> @@ -21,7 +21,7 @@
> #include <sound/pxa2xx-lib.h>
> #include <sound/dmaengine_pcm.h>
>
> -#include <mach/hardware.h>
> +#include <mach/pxa-regs.h>
> #include <mach/regs-ac97.h>
> #include <mach/audio.h>
>
> diff --git a/sound/soc/pxa/pxa2xx-i2s.c b/sound/soc/pxa/pxa2xx-i2s.c
> index 9f7fb7335ac0..e7c43fe46dff 100644
> --- a/sound/soc/pxa/pxa2xx-i2s.c
> +++ b/sound/soc/pxa/pxa2xx-i2s.c
> @@ -21,7 +21,7 @@
> #include <sound/pxa2xx-lib.h>
> #include <sound/dmaengine_pcm.h>
>
> -#include <mach/hardware.h>
> +#include <mach/pxa-regs.h>
> #include <mach/audio.h>
>
> #include "pxa2xx-i2s.h"
> diff --git a/sound/soc/pxa/z2.c b/sound/soc/pxa/z2.c
> index f9a33cb36f5b..8f121ca13eee 100644
> --- a/sound/soc/pxa/z2.c
> +++ b/sound/soc/pxa/z2.c
> @@ -21,7 +21,6 @@
> #include <sound/jack.h>
>
> #include <asm/mach-types.h>
> -#include <mach/hardware.h>
> #include <mach/audio.h>
> #include <mach/z2.h>
>
> --
> 2.20.0
>
--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 05/46] ARM: pxa: split up mach/hardware.h
2019-10-18 15:41 ` [PATCH 05/46] ARM: pxa: split up mach/hardware.h Arnd Bergmann
2019-10-18 18:37 ` Dmitry Torokhov
2019-10-19 21:22 ` Alexandre Belloni
@ 2019-10-21 2:27 ` Viresh Kumar
2019-10-21 9:58 ` Ulf Hansson
` (3 subsequent siblings)
6 siblings, 0 replies; 21+ messages in thread
From: Viresh Kumar @ 2019-10-21 2:27 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Ulf Hansson, linux-usb, Linus Walleij, Alexandre Belloni,
Dominik Brodowski, linux-mtd, Pavel Machek, Robert Jarzmik,
linux-clk, linux-leds, linux-rtc, linux-input, Michael Turquette,
Guenter Roeck, linux-watchdog, alsa-devel, linux-pm,
Haojian Zhuang, Mark Brown, Jacek Anaszewski, linux-fbdev,
linux-arm-kernel, Stephen Boyd, Greg Kroah-Hartman, dri-devel,
Dmitry Torokhov, linux-mmc, linux-kernel, Daniel Mack
On 18-10-19, 17:41, Arnd Bergmann wrote:
> The mach/hardware.h is included in lots of places, and it provides
> three different things on pxa:
>
> - the cpu_is_pxa* macros
> - an indirect inclusion of mach/addr-map.h
> - the __REG() and io_pv2() helper macros
>
> Split it up into separate <linux/soc/pxa/cpu.h> and mach/pxa-regs.h
> headers, then change all the files that use mach/hardware.h to
> include the exact set of those three headers that they actually
> need, allowing for further more targeted cleanup.
>
> linux/soc/pxa/cpu.h can remain permanently exported and is now in
> a global location along with similar headers. pxa-regs.h and
> addr-map.h are only used in a very small number of drivers now
> and can be moved to arch/arm/mach-pxa/ directly when those drivers
> are to pass the necessary data as resources.
>
> Cc: Michael Turquette <mturquette@baylibre.com>
> Cc: Stephen Boyd <sboyd@kernel.org>
> Cc: Viresh Kumar <viresh.kumar@linaro.org>
> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> Cc: Jacek Anaszewski <jacek.anaszewski@gmail.com>
> Cc: Pavel Machek <pavel@ucw.cz>
> Cc: Ulf Hansson <ulf.hansson@linaro.org>
> Cc: Dominik Brodowski <linux@dominikbrodowski.net>
> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Guenter Roeck <linux@roeck-us.net>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-clk@vger.kernel.org
> Cc: linux-pm@vger.kernel.org
> Cc: linux-input@vger.kernel.org
> Cc: linux-leds@vger.kernel.org
> Cc: linux-mmc@vger.kernel.org
> Cc: linux-mtd@lists.infradead.org
> Cc: linux-rtc@vger.kernel.org
> Cc: linux-usb@vger.kernel.org
> Cc: dri-devel@lists.freedesktop.org
> Cc: linux-fbdev@vger.kernel.org
> Cc: linux-watchdog@vger.kernel.org
> Cc: alsa-devel@alsa-project.org
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> drivers/cpufreq/pxa2xx-cpufreq.c | 1 +
> drivers/cpufreq/pxa3xx-cpufreq.c | 1 +
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
--
viresh
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 05/46] ARM: pxa: split up mach/hardware.h
2019-10-18 15:41 ` [PATCH 05/46] ARM: pxa: split up mach/hardware.h Arnd Bergmann
` (2 preceding siblings ...)
2019-10-21 2:27 ` Viresh Kumar
@ 2019-10-21 9:58 ` Ulf Hansson
2019-10-22 16:36 ` Mark Brown
` (2 subsequent siblings)
6 siblings, 0 replies; 21+ messages in thread
From: Ulf Hansson @ 2019-10-21 9:58 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Alexandre Belloni, Linux USB List, Viresh Kumar, Linus Walleij,
Linux Fbdev development list, Dominik Brodowski, linux-mtd,
Pavel Machek, Robert Jarzmik, linux-clk, linux-leds, linux-rtc,
linux-input, Michael Turquette, Guenter Roeck, linux-watchdog,
alsa-devel, Linux PM, Haojian Zhuang, Mark Brown,
Jacek Anaszewski, Linux ARM, Stephen Boyd, Greg Kroah-Hartman,
dri-devel, Dmitry Torokhov, linux-mmc, Linux Kernel Mailing List,
Daniel Mack
On Fri, 18 Oct 2019 at 17:43, Arnd Bergmann <arnd@arndb.de> wrote:
>
> The mach/hardware.h is included in lots of places, and it provides
> three different things on pxa:
>
> - the cpu_is_pxa* macros
> - an indirect inclusion of mach/addr-map.h
> - the __REG() and io_pv2() helper macros
>
> Split it up into separate <linux/soc/pxa/cpu.h> and mach/pxa-regs.h
> headers, then change all the files that use mach/hardware.h to
> include the exact set of those three headers that they actually
> need, allowing for further more targeted cleanup.
>
> linux/soc/pxa/cpu.h can remain permanently exported and is now in
> a global location along with similar headers. pxa-regs.h and
> addr-map.h are only used in a very small number of drivers now
> and can be moved to arch/arm/mach-pxa/ directly when those drivers
> are to pass the necessary data as resources.
>
> Cc: Michael Turquette <mturquette@baylibre.com>
> Cc: Stephen Boyd <sboyd@kernel.org>
> Cc: Viresh Kumar <viresh.kumar@linaro.org>
> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> Cc: Jacek Anaszewski <jacek.anaszewski@gmail.com>
> Cc: Pavel Machek <pavel@ucw.cz>
> Cc: Ulf Hansson <ulf.hansson@linaro.org>
> Cc: Dominik Brodowski <linux@dominikbrodowski.net>
> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Guenter Roeck <linux@roeck-us.net>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-clk@vger.kernel.org
> Cc: linux-pm@vger.kernel.org
> Cc: linux-input@vger.kernel.org
> Cc: linux-leds@vger.kernel.org
> Cc: linux-mmc@vger.kernel.org
> Cc: linux-mtd@lists.infradead.org
> Cc: linux-rtc@vger.kernel.org
> Cc: linux-usb@vger.kernel.org
> Cc: dri-devel@lists.freedesktop.org
> Cc: linux-fbdev@vger.kernel.org
> Cc: linux-watchdog@vger.kernel.org
> Cc: alsa-devel@alsa-project.org
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
[...]
For the mmc part:
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 11/46] ARM: pxa: cmx270: use platform device for nand
2019-10-19 9:44 ` Miquel Raynal
@ 2019-10-22 10:00 ` Arnd Bergmann
0 siblings, 0 replies; 21+ messages in thread
From: Arnd Bergmann @ 2019-10-22 10:00 UTC (permalink / raw)
To: Miquel Raynal
Cc: Vignesh Raghavendra, Richard Weinberger, Linus Walleij,
linux-kernel, Haojian Zhuang, Marek Vasut, linux-mtd,
Daniel Mack, Brian Norris, Robert Jarzmik, David Woodhouse,
Linux ARM
On Sat, Oct 19, 2019 at 11:44 AM Miquel Raynal
<miquel.raynal@bootlin.com> wrote:
>
> Hi Arnd,
>
> Arnd Bergmann <arnd@arndb.de> wrote on Fri, 18 Oct 2019 17:41:26 +0200:
>
> > The driver traditionally hardcodes the MMIO register address and
> > the GPIO numbers from data defined in platform header files.
> >
> > To make it indepdendent of that, use a memory resource for the
> > registers, and a gpio lookup table to replace the gpio numbers.
>
> Looks good to me besides the typo s/indepdendent/independent/.
Fixed now
> Acked-by: Miquel Raynal <miquel.raynal@bootlin.com>
Thanks!
Arnd
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 05/46] ARM: pxa: split up mach/hardware.h
2019-10-18 15:41 ` [PATCH 05/46] ARM: pxa: split up mach/hardware.h Arnd Bergmann
` (3 preceding siblings ...)
2019-10-21 9:58 ` Ulf Hansson
@ 2019-10-22 16:36 ` Mark Brown
2019-10-28 9:18 ` Stephen Boyd
2019-10-28 19:14 ` Robert Jarzmik
6 siblings, 0 replies; 21+ messages in thread
From: Mark Brown @ 2019-10-22 16:36 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Ulf Hansson, linux-usb, Viresh Kumar, Linus Walleij,
Alexandre Belloni, Dominik Brodowski, linux-mtd, Pavel Machek,
Robert Jarzmik, linux-clk, linux-leds, linux-rtc, linux-input,
Michael Turquette, Guenter Roeck, linux-watchdog, alsa-devel,
linux-pm, Haojian Zhuang, Jacek Anaszewski, linux-fbdev,
linux-arm-kernel, Stephen Boyd, Greg Kroah-Hartman, dri-devel,
Dmitry Torokhov, linux-mmc, linux-kernel, Daniel Mack
[-- Attachment #1.1: Type: text/plain, Size: 208 bytes --]
On Fri, Oct 18, 2019 at 05:41:20PM +0200, Arnd Bergmann wrote:
> The mach/hardware.h is included in lots of places, and it provides
> three different things on pxa:
Acked-by: Mark Brown <broonie@kernel.org>
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
[-- Attachment #2: Type: text/plain, Size: 144 bytes --]
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 00/46] ARM: pxa: towards multiplatform support
2019-10-19 10:35 ` Robert Jarzmik
@ 2019-10-24 20:49 ` Robert Jarzmik
2019-10-25 10:50 ` Arnd Bergmann
0 siblings, 1 reply; 21+ messages in thread
From: Robert Jarzmik @ 2019-10-24 20:49 UTC (permalink / raw)
To: Arnd Bergmann
Cc: linux-rtc, Linux Fbdev development list, LINUXWATCHDOG,
Linux PM list, Linus Walleij, USB list, linux-mmc, linux-kernel,
Haojian Zhuang, IDE-ML, linux-mtd, Daniel Mack, linux-leds,
open list:HID CORE LAYER, linux-clk, Linux ARM
Robert Jarzmik <robert.jarzmik@free.fr> writes:
>>> I've now pushed it to
>>>
>>> git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground.git
>>> pxa-multiplatform
>>
>> Sorry for the duplication, I had some problems with email configuration
>> so my reply got rejected, let's see if it goes through this time.
> I have it now, thanks, I'll test and review as soon as I can.
>
> Cheers.
Ok Arnd, I have a preliminary test report.
I tested only the pxa27x (mioa701), which happens to have a lot of drivers, and
only the platform_data flavor (ie. no device-tree test yet). Apart a panic in
the regulator framework (which is a known issue [1]), your version seems
equivalent so far in terms of runtime to Linux 5.4-rc3).
The sound and RTC seem broken, but not by you ...
I'll continue the test onwards for pxa3xx and pxa2xx when I'll gather a bit of
time, and try to review as well the mach-pxa part.
Cheers.
--
Robert
[1] https://lore.kernel.org/patchwork/patch/1130436/
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 00/46] ARM: pxa: towards multiplatform support
2019-10-24 20:49 ` Robert Jarzmik
@ 2019-10-25 10:50 ` Arnd Bergmann
0 siblings, 0 replies; 21+ messages in thread
From: Arnd Bergmann @ 2019-10-25 10:50 UTC (permalink / raw)
To: Robert Jarzmik
Cc: linux-rtc, Linux Fbdev development list, LINUXWATCHDOG,
Linux PM list, Linus Walleij, USB list, linux-mmc, linux-kernel,
Haojian Zhuang, IDE-ML, linux-mtd, Daniel Mack, linux-leds,
open list:HID CORE LAYER, linux-clk, Linux ARM
On Thu, Oct 24, 2019 at 10:50 PM Robert Jarzmik <robert.jarzmik@free.fr> wrote:
> Robert Jarzmik <robert.jarzmik@free.fr> writes:
> >>> I've now pushed it to
> >>>
> >>> git://git.kernel.org:/pub/scm/linux/kernel/git/arnd/playground.git
> >>> pxa-multiplatform
> >>
> >> Sorry for the duplication, I had some problems with email configuration
> >> so my reply got rejected, let's see if it goes through this time.
> > I have it now, thanks, I'll test and review as soon as I can.
> >
> > Cheers.
>
> Ok Arnd, I have a preliminary test report.
>
> I tested only the pxa27x (mioa701), which happens to have a lot of drivers, and
> only the platform_data flavor (ie. no device-tree test yet). Apart a panic in
> the regulator framework (which is a known issue [1]), your version seems
> equivalent so far in terms of runtime to Linux 5.4-rc3).
>
> The sound and RTC seem broken, but not by you ...
>
> I'll continue the test onwards for pxa3xx and pxa2xx when I'll gather a bit of
> time, and try to review as well the mach-pxa part.
Awesome, thanks for testing so far and for the report!
Arnd
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 05/46] ARM: pxa: split up mach/hardware.h
2019-10-18 15:41 ` [PATCH 05/46] ARM: pxa: split up mach/hardware.h Arnd Bergmann
` (4 preceding siblings ...)
2019-10-22 16:36 ` Mark Brown
@ 2019-10-28 9:18 ` Stephen Boyd
2019-10-28 19:14 ` Robert Jarzmik
6 siblings, 0 replies; 21+ messages in thread
From: Stephen Boyd @ 2019-10-28 9:18 UTC (permalink / raw)
To: Arnd Bergmann, Daniel Mack, Haojian Zhuang, Robert Jarzmik
Cc: Ulf Hansson, linux-usb, Viresh Kumar, Michael Turquette,
Alexandre Belloni, Dominik Brodowski, linux-mtd, Pavel Machek,
linux-clk, linux-leds, linux-rtc, linux-input, Linus Walleij,
Guenter Roeck, linux-watchdog, Arnd Bergmann, linux-pm,
Mark Brown, Jacek Anaszewski, linux-fbdev, linux-arm-kernel,
Greg Kroah-Hartman, dri-devel, Dmitry Torokhov, linux-mmc,
linux-kernel, alsa-devel
Quoting Arnd Bergmann (2019-10-18 08:41:20)
> The mach/hardware.h is included in lots of places, and it provides
> three different things on pxa:
>
> - the cpu_is_pxa* macros
> - an indirect inclusion of mach/addr-map.h
> - the __REG() and io_pv2() helper macros
>
> Split it up into separate <linux/soc/pxa/cpu.h> and mach/pxa-regs.h
> headers, then change all the files that use mach/hardware.h to
> include the exact set of those three headers that they actually
> need, allowing for further more targeted cleanup.
>
> linux/soc/pxa/cpu.h can remain permanently exported and is now in
> a global location along with similar headers. pxa-regs.h and
> addr-map.h are only used in a very small number of drivers now
> and can be moved to arch/arm/mach-pxa/ directly when those drivers
> are to pass the necessary data as resources.
>
> Cc: Michael Turquette <mturquette@baylibre.com>
> Cc: Stephen Boyd <sboyd@kernel.org>
> Cc: Viresh Kumar <viresh.kumar@linaro.org>
> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> Cc: Jacek Anaszewski <jacek.anaszewski@gmail.com>
> Cc: Pavel Machek <pavel@ucw.cz>
> Cc: Ulf Hansson <ulf.hansson@linaro.org>
> Cc: Dominik Brodowski <linux@dominikbrodowski.net>
> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Guenter Roeck <linux@roeck-us.net>
> Cc: Mark Brown <broonie@kernel.org>
> Cc: linux-clk@vger.kernel.org
> Cc: linux-pm@vger.kernel.org
> Cc: linux-input@vger.kernel.org
> Cc: linux-leds@vger.kernel.org
> Cc: linux-mmc@vger.kernel.org
> Cc: linux-mtd@lists.infradead.org
> Cc: linux-rtc@vger.kernel.org
> Cc: linux-usb@vger.kernel.org
> Cc: dri-devel@lists.freedesktop.org
> Cc: linux-fbdev@vger.kernel.org
> Cc: linux-watchdog@vger.kernel.org
> Cc: alsa-devel@alsa-project.org
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
Acked-by: Stephen Boyd <sboyd@kernel.org>
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 05/46] ARM: pxa: split up mach/hardware.h
2019-10-18 15:41 ` [PATCH 05/46] ARM: pxa: split up mach/hardware.h Arnd Bergmann
` (5 preceding siblings ...)
2019-10-28 9:18 ` Stephen Boyd
@ 2019-10-28 19:14 ` Robert Jarzmik
6 siblings, 0 replies; 21+ messages in thread
From: Robert Jarzmik @ 2019-10-28 19:14 UTC (permalink / raw)
To: Arnd Bergmann, Russell King
Cc: Ulf Hansson, linux-usb, Viresh Kumar, Michael Turquette,
Alexandre Belloni, Dominik Brodowski, linux-mtd, Pavel Machek,
linux-clk, linux-leds, linux-rtc, linux-input, Linus Walleij,
Guenter Roeck, linux-watchdog, alsa-devel, linux-pm,
Haojian Zhuang, Mark Brown, Jacek Anaszewski, linux-fbdev,
linux-arm-kernel, Stephen Boyd, Greg Kroah-Hartman, dri-devel,
Dmitry Torokhov, linux-mmc, linux-kernel, Daniel Mack
Arnd Bergmann <arnd@arndb.de> writes:
> The mach/hardware.h is included in lots of places, and it provides
> three different things on pxa:
>
> - the cpu_is_pxa* macros
> - an indirect inclusion of mach/addr-map.h
> - the __REG() and io_pv2() helper macros
>
> Split it up into separate <linux/soc/pxa/cpu.h> and mach/pxa-regs.h
> headers, then change all the files that use mach/hardware.h to
> include the exact set of those three headers that they actually
> need, allowing for further more targeted cleanup.
>
> linux/soc/pxa/cpu.h can remain permanently exported and is now in
> a global location along with similar headers. pxa-regs.h and
> addr-map.h are only used in a very small number of drivers now
> and can be moved to arch/arm/mach-pxa/ directly when those drivers
> are to pass the necessary data as resources.
For the pxa part, that looks fine to me.
I'd like to focus a bit of Russell's attention to the sa11xx part (reminder in
[1]), and more specifically :
- the change to drivers/pcmcia/soc_common.c
- the change to drivers/pcmcia/sa1111_generic.c
I must admit my knowledge of PCMCIA is relatively poor, and even if the patch
looks harmless, one never knows if Assebet will ever by same after ...
Cheers.
--
Robert
[1] Extract of the patch for Russell's scrutiny
> diff --git a/drivers/pcmcia/sa1111_generic.c b/drivers/pcmcia/sa1111_generic.c
> index 11783410223b..2f556fa37c43 100644
> --- a/drivers/pcmcia/sa1111_generic.c
> +++ b/drivers/pcmcia/sa1111_generic.c
> @@ -17,7 +17,6 @@
>
> #include <pcmcia/ss.h>
>
> -#include <mach/hardware.h>
> #include <asm/hardware/sa1111.h>
> #include <asm/mach-types.h>
> #include <asm/irq.h>
... zip ...
> diff --git a/drivers/pcmcia/soc_common.c b/drivers/pcmcia/soc_common.c
> index 3a8c84bb174d..9276a628473d 100644
> --- a/drivers/pcmcia/soc_common.c
> +++ b/drivers/pcmcia/soc_common.c
> @@ -47,8 +47,6 @@
> #include <linux/spinlock.h>
> #include <linux/timer.h>
>
> -#include <mach/hardware.h>
> -
> #include "soc_common.h"
>
> static irqreturn_t soc_common_pcmcia_interrupt(int irq, void *dev);
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 11/46] ARM: pxa: cmx270: use platform device for nand
2019-10-18 15:41 ` [PATCH 11/46] ARM: pxa: cmx270: use platform device for nand Arnd Bergmann
2019-10-19 9:44 ` Miquel Raynal
@ 2019-10-28 20:25 ` Robert Jarzmik
1 sibling, 0 replies; 21+ messages in thread
From: Robert Jarzmik @ 2019-10-28 20:25 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Vignesh Raghavendra, Richard Weinberger, Linus Walleij,
linux-kernel, Haojian Zhuang, Marek Vasut, linux-mtd,
Daniel Mack, Miquel Raynal, Brian Norris, David Woodhouse,
linux-arm-kernel
Arnd Bergmann <arnd@arndb.de> writes:
> The driver traditionally hardcodes the MMIO register address and
> the GPIO numbers from data defined in platform header files.
>
> To make it indepdendent of that, use a memory resource for the
> registers, and a gpio lookup table to replace the gpio numbers.
>
> Cc: Miquel Raynal <miquel.raynal@bootlin.com>
> Cc: Richard Weinberger <richard@nod.at>
> Cc: David Woodhouse <dwmw2@infradead.org>
> Cc: Brian Norris <computersforpeace@gmail.com>
> Cc: Marek Vasut <marek.vasut@gmail.com>
> Cc: Vignesh Raghavendra <vigneshr@ti.com>
> Cc: linux-mtd@lists.infradead.org
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
Cheers.
--
Robert
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2019-10-28 20:25 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-18 15:40 [PATCH 00/46] ARM: pxa: towards multiplatform support Arnd Bergmann
2019-10-18 15:41 ` [PATCH 05/46] ARM: pxa: split up mach/hardware.h Arnd Bergmann
2019-10-18 18:37 ` Dmitry Torokhov
2019-10-19 21:22 ` Alexandre Belloni
2019-10-21 2:27 ` Viresh Kumar
2019-10-21 9:58 ` Ulf Hansson
2019-10-22 16:36 ` Mark Brown
2019-10-28 9:18 ` Stephen Boyd
2019-10-28 19:14 ` Robert Jarzmik
2019-10-18 15:41 ` [PATCH 11/46] ARM: pxa: cmx270: use platform device for nand Arnd Bergmann
2019-10-19 9:44 ` Miquel Raynal
2019-10-22 10:00 ` Arnd Bergmann
2019-10-28 20:25 ` Robert Jarzmik
2019-10-18 19:03 ` [PATCH 00/46] ARM: pxa: towards multiplatform support Robert Jarzmik
[not found] ` <CAK8P3a1JDtHsOW=iaxEycbJ4TBkR9MHUyDMeJnwxCtb=tefnBQ@mail.gmail.com>
2019-10-18 19:32 ` Arnd Bergmann
2019-10-19 10:35 ` Robert Jarzmik
2019-10-24 20:49 ` Robert Jarzmik
2019-10-25 10:50 ` Arnd Bergmann
2019-10-19 1:02 ` Guenter Roeck
2019-10-19 10:08 ` Arnd Bergmann
2019-10-19 10:09 ` Arnd Bergmann
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).