ARM: multiplatform changes, part 2

The second part of the multiplatform changes now converts the
 Intel/Marvell PXA platform along with the rest. The patches went through
 several rebases before the merge window as bugs were found, so they
 remained separate.
 
 This has to touch a lot of drivers, in particular the touchscreen,
 pcmcia, sound and clk bits, to detach the driver files from the
 platform and board specific header files.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmKZKqsACgkQmmx57+YA
 GNnO/w//dgJBlkmoIIKlG2eJsvoUKwDt7MuLEMCqSqYYUSvMENFwKK66INMDIJ3l
 PmKf94JadlpBm2OB2vzW+D1EtaLGX9eXZkKD+vyB1I1yFkKdzEPcAfitfrRwe58E
 pR4nQd/jVL4UCY+pp442O1q9VvMpMV9P4ILJGPS/PpsD5CT9Gn8m9svIIuNuDRFd
 nwpyZC3l32jVLo9iuLmwZUvxtOWI3hTqZrnxhByBhlvtnGexRsq/VhfubK2uzBi1
 CyWHjqzOSmseGmsUDwv9LFqVV9YRCeisS3IElA5L0VgM0XvHKA+f9qyF7V6zI20g
 y9LtqhdAtiTpE/aUrOW2LDYaM/bc7RilYZrWchoZbCEsHhV4C+ld3QoTyxvGscvG
 tbznhvZKdUNX8LHS0J9NqIj1q1YGN5ei5r/C5R8DBj1q8VcTVnq3dms8xzVTd35o
 xS5BbLFliiI96jc7S6LaQizXheYjAfdPhmXUAxNXvWIVQ6SXnf8/U/RB9Zzjb8hm
 FH2Gu8m/Dh2MHKBBRWSVw8VahV0V7WiEaWeYuwwTbW1wUrsWiizVaPnqrt6Cq9DW
 oJZgBvktWEXUQz73qrnvwo9GjcKqAxaWKWq05hHKHKuLGezsPAyIhIKr51V2xqqw
 cp2OIMCsN5GYENOhHvt6BMRAI5iA4VyFDtWAqw9B6EIwno6N7Z4=
 =cnSb
 -----END PGP SIGNATURE-----

Merge tag 'arm-multiplatform-5.19-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull more ARM multiplatform updates from Arnd Bergmann:
 "The second part of the multiplatform changes now converts the
  Intel/Marvell PXA platform along with the rest. The patches went
  through several rebases before the merge window as bugs were found, so
  they remained separate.

  This has to touch a lot of drivers, in particular the touchscreen,
  pcmcia, sound and clk bits, to detach the driver files from the
  platform and board specific header files"

* tag 'arm-multiplatform-5.19-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (48 commits)
  ARM: pxa/mmp: remove traces of plat-pxa
  ARM: pxa: convert to multiplatform
  ARM: pxa/sa1100: move I/O space to PCI_IOBASE
  ARM: pxa: remove support for MTD_XIP
  ARM: pxa: move mach/*.h to mach-pxa/
  ARM: PXA: fix multi-cpu build of xsc3
  ARM: pxa: move plat-pxa to drivers/soc/
  ARM: mmp: rename pxa_register_device
  ARM: mmp: remove tavorevb board support
  ARM: pxa: remove unused mach/bitfield.h
  ARM: pxa: move clk register definitions to driver
  ARM: pxa: move smemc register access from clk to platform
  cpufreq: pxa3: move clk register access to clk driver
  ARM: pxa: remove get_clk_frequency_khz()
  ARM: pxa: pcmcia: move smemc configuration back to arch
  ASoC: pxa: i2s: use normal MMIO accessors
  ASoC: pxa: ac97: use normal MMIO accessors
  ASoC: pxa: use pdev resource for FIFO regs
  Input: wm97xx - get rid of irq_enable method in wm97xx_mach_ops
  Input: wm97xx - switch to using threaded IRQ
  ...
This commit is contained in:
Linus Torvalds 2022-06-02 15:23:54 -07:00
commit 96479c0980
241 changed files with 2055 additions and 2071 deletions

View File

@ -374,8 +374,6 @@ PXA 2xx/3xx/93x/95x family
Linux kernel mach directory: Linux kernel mach directory:
arch/arm/mach-pxa arch/arm/mach-pxa
Linux kernel plat directory:
arch/arm/plat-pxa
MMP/MMP2/MMP3 family (communication processor) MMP/MMP2/MMP3 family (communication processor)
---------------------------------------------- ----------------------------------------------
@ -429,8 +427,6 @@ MMP/MMP2/MMP3 family (communication processor)
Linux kernel mach directory: Linux kernel mach directory:
arch/arm/mach-mmp arch/arm/mach-mmp
Linux kernel plat directory:
arch/arm/plat-pxa
Berlin family (Multimedia Solutions) Berlin family (Multimedia Solutions)
------------------------------------- -------------------------------------
@ -518,9 +514,6 @@ Long-term plans
Business Unit) in a single mach-<foo> directory. The plat-orion/ Business Unit) in a single mach-<foo> directory. The plat-orion/
would therefore disappear. would therefore disappear.
* Unify the mach-mmp/ and mach-pxa/ into the same mach-pxa
directory. The plat-pxa/ would therefore disappear.
Credits Credits
------- -------

View File

@ -357,25 +357,6 @@ config ARCH_FOOTBRIDGE
Support for systems based on the DC21285 companion chip Support for systems based on the DC21285 companion chip
("FootBridge"), such as the Simtec CATS and the Rebel NetWinder. ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
config ARCH_PXA
bool "PXA2xx/PXA3xx-based"
depends on CPU_LITTLE_ENDIAN
select ARCH_MTD_XIP
select ARM_CPU_SUSPEND if PM
select AUTO_ZRELADDR
select COMMON_CLK
select CLKSRC_PXA
select CLKSRC_MMIO
select TIMER_OF
select CPU_XSCALE if !CPU_XSC3
select GPIO_PXA
select GPIOLIB
select IRQ_DOMAIN
select PLAT_PXA
select SPARSE_IRQ
help
Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
config ARCH_RPC config ARCH_RPC
bool "RiscPC" bool "RiscPC"
depends on !CC_IS_CLANG && GCC_VERSION < 90100 && GCC_VERSION >= 60000 depends on !CC_IS_CLANG && GCC_VERSION < 90100 && GCC_VERSION >= 60000
@ -593,7 +574,6 @@ source "arch/arm/mach-orion5x/Kconfig"
source "arch/arm/mach-oxnas/Kconfig" source "arch/arm/mach-oxnas/Kconfig"
source "arch/arm/mach-pxa/Kconfig" source "arch/arm/mach-pxa/Kconfig"
source "arch/arm/plat-pxa/Kconfig"
source "arch/arm/mach-qcom/Kconfig" source "arch/arm/mach-qcom/Kconfig"
@ -672,9 +652,6 @@ config PLAT_ORION_LEGACY
bool bool
select PLAT_ORION select PLAT_ORION
config PLAT_PXA
bool
config PLAT_VERSATILE config PLAT_VERSATILE
bool bool

View File

@ -225,7 +225,6 @@ machine-$(CONFIG_PLAT_SPEAR) += spear
# Platform directory name. This list is sorted alphanumerically # Platform directory name. This list is sorted alphanumerically
# by CONFIG_* macro name. # by CONFIG_* macro name.
plat-$(CONFIG_PLAT_ORION) += orion plat-$(CONFIG_PLAT_ORION) += orion
plat-$(CONFIG_PLAT_PXA) += pxa
# The byte offset of the kernel image in RAM from the start of RAM. # The byte offset of the kernel image in RAM from the start of RAM.
TEXT_OFFSET := $(textofs-y) TEXT_OFFSET := $(textofs-y)

View File

@ -23,7 +23,6 @@
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/io.h> #include <linux/io.h>
#include <mach/hardware.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/mach/irq.h> #include <asm/mach/irq.h>

View File

@ -26,13 +26,16 @@
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/io.h> #include <linux/io.h>
#include <mach/hardware.h>
#include <asm/mach/irq.h> #include <asm/mach/irq.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <linux/sizes.h> #include <linux/sizes.h>
#include <asm/hardware/sa1111.h> #include <asm/hardware/sa1111.h>
#ifdef CONFIG_ARCH_SA1100
#include <mach/hardware.h>
#endif
/* SA1111 IRQs */ /* SA1111 IRQs */
#define IRQ_GPAIN0 (0) #define IRQ_GPAIN0 (0)
#define IRQ_GPAIN1 (1) #define IRQ_GPAIN1 (1)

View File

@ -10,6 +10,7 @@ CONFIG_SLAB=y
CONFIG_MODULES=y CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_ARCH_GUMSTIX=y CONFIG_ARCH_GUMSTIX=y
CONFIG_PCCARD=y CONFIG_PCCARD=y

View File

@ -10,6 +10,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_GPIO_PCA953X=y CONFIG_GPIO_PCA953X=y
CONFIG_MACH_CM_X300=y CONFIG_MACH_CM_X300=y

View File

@ -16,6 +16,7 @@ CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_MACH_COLIBRI=y CONFIG_MACH_COLIBRI=y
CONFIG_PREEMPT=y CONFIG_PREEMPT=y

View File

@ -1,6 +1,7 @@
CONFIG_MODULES=y CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_MACH_COLIBRI300=y CONFIG_MACH_COLIBRI300=y
CONFIG_AEABI=y CONFIG_AEABI=y

View File

@ -9,6 +9,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_PXA_SHARPSL=y CONFIG_PXA_SHARPSL=y
CONFIG_MACH_POODLE=y CONFIG_MACH_POODLE=y

View File

@ -9,6 +9,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_ARCH_PXA_ESERIES=y CONFIG_ARCH_PXA_ESERIES=y
# CONFIG_ARM_THUMB is not set # CONFIG_ARM_THUMB is not set

View File

@ -14,6 +14,7 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y CONFIG_MODVERSIONS=y
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_PXA_EZX=y CONFIG_PXA_EZX=y
CONFIG_NO_HZ=y CONFIG_NO_HZ=y

View File

@ -10,6 +10,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_MACH_H5000=y CONFIG_MACH_H5000=y
CONFIG_AEABI=y CONFIG_AEABI=y

View File

@ -2,6 +2,7 @@ CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
CONFIG_SLAB=y CONFIG_SLAB=y
CONFIG_MODULES=y CONFIG_MODULES=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_MACH_LOGICPD_PXA270=y CONFIG_MACH_LOGICPD_PXA270=y
# CONFIG_ARM_THUMB is not set # CONFIG_ARM_THUMB is not set

View File

@ -1,6 +1,7 @@
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
CONFIG_MODULES=y CONFIG_MODULES=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_ARCH_LUBBOCK=y CONFIG_ARCH_LUBBOCK=y
# CONFIG_ARM_THUMB is not set # CONFIG_ARM_THUMB is not set

View File

@ -9,6 +9,7 @@ CONFIG_SLAB=y
CONFIG_MODULES=y CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_MACH_H4700=y CONFIG_MACH_H4700=y
CONFIG_MACH_MAGICIAN=y CONFIG_MACH_MAGICIAN=y

View File

@ -1,6 +1,7 @@
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
CONFIG_MODULES=y CONFIG_MODULES=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_MACH_MAINSTONE=y CONFIG_MACH_MAINSTONE=y
# CONFIG_ARM_THUMB is not set # CONFIG_ARM_THUMB is not set

View File

@ -7,6 +7,7 @@ CONFIG_SLAB=y
CONFIG_MODULES=y CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_ARCH_PXA_PALM=y CONFIG_ARCH_PXA_PALM=y
# CONFIG_MACH_PALMTX is not set # CONFIG_MACH_PALMTX is not set

View File

@ -13,6 +13,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_MACH_PCM027=y CONFIG_MACH_PCM027=y
CONFIG_MACH_PCM990_BASEBOARD=y CONFIG_MACH_PCM990_BASEBOARD=y

View File

@ -1,6 +1,7 @@
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14 CONFIG_LOG_BUF_SHIFT=14
CONFIG_MODULES=y CONFIG_MODULES=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_ARCH_PXA_IDP=y CONFIG_ARCH_PXA_IDP=y
# CONFIG_ARM_THUMB is not set # CONFIG_ARM_THUMB is not set

View File

@ -6,6 +6,7 @@ CONFIG_KALLSYMS_ALL=y
CONFIG_SLAB=y CONFIG_SLAB=y
CONFIG_MODULES=y CONFIG_MODULES=y
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_MACH_LITTLETON=y CONFIG_MACH_LITTLETON=y
CONFIG_MACH_TAVOREVB=y CONFIG_MACH_TAVOREVB=y

View File

@ -23,6 +23,7 @@ CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_PARTITION_ADVANCED=y CONFIG_PARTITION_ADVANCED=y
CONFIG_LDM_PARTITION=y CONFIG_LDM_PARTITION=y
CONFIG_CMDLINE_PARTITION=y CONFIG_CMDLINE_PARTITION=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_ARCH_LUBBOCK=y CONFIG_ARCH_LUBBOCK=y
CONFIG_MACH_MAINSTONE=y CONFIG_MACH_MAINSTONE=y

View File

@ -9,6 +9,7 @@ CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_PXA_SHARPSL=y CONFIG_PXA_SHARPSL=y
CONFIG_MACH_AKITA=y CONFIG_MACH_AKITA=y

View File

@ -14,6 +14,7 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_TRIZEPS_PXA=y CONFIG_TRIZEPS_PXA=y
CONFIG_MACH_TRIZEPS4=y CONFIG_MACH_TRIZEPS4=y

View File

@ -9,6 +9,7 @@ CONFIG_SLAB=y
CONFIG_MODULES=y CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_ARCH_VIPER=y CONFIG_ARCH_VIPER=y
CONFIG_IWMMXT=y CONFIG_IWMMXT=y

View File

@ -19,6 +19,7 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_BLOCK is not set # CONFIG_BLOCK is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_MACH_XCEP=y CONFIG_MACH_XCEP=y
CONFIG_IWMMXT=y CONFIG_IWMMXT=y

View File

@ -4,6 +4,7 @@ CONFIG_LOG_BUF_SHIFT=13
CONFIG_MODULES=y CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set # CONFIG_BLK_DEV_BSG is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_PXA=y CONFIG_ARCH_PXA=y
CONFIG_MACH_ARCOM_ZEUS=y CONFIG_MACH_ARCOM_ZEUS=y
CONFIG_PCCARD=m CONFIG_PCCARD=m

View File

@ -13,8 +13,6 @@
#ifndef _ASM_ARCH_SA1111 #ifndef _ASM_ARCH_SA1111
#define _ASM_ARCH_SA1111 #define _ASM_ARCH_SA1111
#include <mach/bitfield.h>
/* /*
* Don't ask the (SAC) DMA engines to move less than this amount. * Don't ask the (SAC) DMA engines to move less than this amount.
*/ */

View File

@ -174,7 +174,7 @@ static inline void __iomem *__typesafe_io(unsigned long addr)
#define PCI_IO_VIRT_BASE 0xfee00000 #define PCI_IO_VIRT_BASE 0xfee00000
#define PCI_IOBASE ((void __iomem *)PCI_IO_VIRT_BASE) #define PCI_IOBASE ((void __iomem *)PCI_IO_VIRT_BASE)
#if defined(CONFIG_PCI) #if defined(CONFIG_PCI) || IS_ENABLED(CONFIG_PCMCIA)
void pci_ioremap_set_mem_type(int mem_type); void pci_ioremap_set_mem_type(int mem_type);
#else #else
static inline void pci_ioremap_set_mem_type(int mem_type) {} static inline void pci_ioremap_set_mem_type(int mem_type) {}
@ -200,32 +200,13 @@ void __iomem *pci_remap_cfgspace(resource_size_t res_cookie, size_t size);
*/ */
#ifdef CONFIG_NEED_MACH_IO_H #ifdef CONFIG_NEED_MACH_IO_H
#include <mach/io.h> #include <mach/io.h>
#elif defined(CONFIG_PCI)
#define IO_SPACE_LIMIT ((resource_size_t)0xfffff)
#define __io(a) __typesafe_io(PCI_IO_VIRT_BASE + ((a) & IO_SPACE_LIMIT))
#else #else
#define __io(a) __typesafe_io((a) & IO_SPACE_LIMIT) #if IS_ENABLED(CONFIG_PCMCIA) || defined(CONFIG_PCI)
#endif #define IO_SPACE_LIMIT ((resource_size_t)0xfffff)
/*
* This is the limit of PC card/PCI/ISA IO space, which is by default
* 64K if we have PC card, PCI or ISA support. Otherwise, default to
* zero to prevent ISA/PCI drivers claiming IO space (and potentially
* oopsing.)
*
* Only set this larger if you really need inb() et.al. to operate over
* a larger address space. Note that SOC_COMMON ioremaps each sockets
* IO space area, and so inb() et.al. must be defined to operate as per
* readb() et.al. on such platforms.
*/
#ifndef IO_SPACE_LIMIT
#if defined(CONFIG_PCMCIA_SOC_COMMON) || defined(CONFIG_PCMCIA_SOC_COMMON_MODULE)
#define IO_SPACE_LIMIT ((resource_size_t)0xffffffff)
#elif defined(CONFIG_PCI) || defined(CONFIG_ISA) || defined(CONFIG_PCCARD)
#define IO_SPACE_LIMIT ((resource_size_t)0xffff)
#else #else
#define IO_SPACE_LIMIT ((resource_size_t)0) #define IO_SPACE_LIMIT ((resource_size_t)0)
#endif #endif
#define __io(a) __typesafe_io(PCI_IO_VIRT_BASE + ((a) & IO_SPACE_LIMIT))
#endif #endif
/* /*

View File

@ -39,16 +39,8 @@ config MACH_AVENGERS_LITE
Say 'Y' here if you want to support the Marvell PXA168-based Say 'Y' here if you want to support the Marvell PXA168-based
Avengers Lite Development Board. Avengers Lite Development Board.
config MACH_TAVOREVB
bool "Marvell's PXA910 TavorEVB Development Board"
depends on ARCH_MULTI_V5
select CPU_PXA910
help
Say 'Y' here if you want to support the Marvell PXA910-based
TavorEVB Development Board.
config MACH_TTC_DKB config MACH_TTC_DKB
bool "Marvell's PXA910 TavorEVB Development Board" bool "Marvell's PXA910 TavorEVB/TTC_DKB Development Board"
depends on ARCH_MULTI_V5 depends on ARCH_MULTI_V5
select CPU_PXA910 select CPU_PXA910
help help

View File

@ -2,8 +2,6 @@
# #
# Makefile for Marvell's PXA168 processors line # Makefile for Marvell's PXA168 processors line
# #
ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/arch/arm/plat-pxa/include
obj-y += common.o devices.o time.o obj-y += common.o devices.o time.o
# SoC support # SoC support
@ -24,7 +22,6 @@ endif
obj-$(CONFIG_MACH_ASPENITE) += aspenite.o obj-$(CONFIG_MACH_ASPENITE) += aspenite.o
obj-$(CONFIG_MACH_ZYLONITE2) += aspenite.o obj-$(CONFIG_MACH_ZYLONITE2) += aspenite.o
obj-$(CONFIG_MACH_AVENGERS_LITE)+= avengers_lite.o obj-$(CONFIG_MACH_AVENGERS_LITE)+= avengers_lite.o
obj-$(CONFIG_MACH_TAVOREVB) += tavorevb.o
obj-$(CONFIG_MACH_TTC_DKB) += ttc_dkb.o obj-$(CONFIG_MACH_TTC_DKB) += ttc_dkb.o
obj-$(CONFIG_MACH_BROWNSTONE) += brownstone.o obj-$(CONFIG_MACH_BROWNSTONE) += brownstone.o
obj-$(CONFIG_MACH_FLINT) += flint.o obj-$(CONFIG_MACH_FLINT) += flint.o

View File

@ -14,7 +14,7 @@
#include <linux/soc/mmp/cputype.h> #include <linux/soc/mmp/cputype.h>
#include "regs-usb.h" #include "regs-usb.h"
int __init pxa_register_device(struct pxa_device_desc *desc, int __init mmp_register_device(struct mmp_device_desc *desc,
void *data, size_t size) void *data, size_t size)
{ {
struct platform_device *pdev; struct platform_device *pdev;

View File

@ -7,7 +7,7 @@
#define MAX_RESOURCE_DMA 2 #define MAX_RESOURCE_DMA 2
/* structure for describing the on-chip devices */ /* structure for describing the on-chip devices */
struct pxa_device_desc { struct mmp_device_desc {
const char *dev_name; const char *dev_name;
const char *drv_name; const char *drv_name;
int id; int id;
@ -18,7 +18,7 @@ struct pxa_device_desc {
}; };
#define PXA168_DEVICE(_name, _drv, _id, _irq, _start, _size, _dma...) \ #define PXA168_DEVICE(_name, _drv, _id, _irq, _start, _size, _dma...) \
struct pxa_device_desc pxa168_device_##_name __initdata = { \ struct mmp_device_desc pxa168_device_##_name __initdata = { \
.dev_name = "pxa168-" #_name, \ .dev_name = "pxa168-" #_name, \
.drv_name = _drv, \ .drv_name = _drv, \
.id = _id, \ .id = _id, \
@ -29,7 +29,7 @@ struct pxa_device_desc pxa168_device_##_name __initdata = { \
}; };
#define PXA910_DEVICE(_name, _drv, _id, _irq, _start, _size, _dma...) \ #define PXA910_DEVICE(_name, _drv, _id, _irq, _start, _size, _dma...) \
struct pxa_device_desc pxa910_device_##_name __initdata = { \ struct mmp_device_desc pxa910_device_##_name __initdata = { \
.dev_name = "pxa910-" #_name, \ .dev_name = "pxa910-" #_name, \
.drv_name = _drv, \ .drv_name = _drv, \
.id = _id, \ .id = _id, \
@ -40,7 +40,7 @@ struct pxa_device_desc pxa910_device_##_name __initdata = { \
}; };
#define MMP2_DEVICE(_name, _drv, _id, _irq, _start, _size, _dma...) \ #define MMP2_DEVICE(_name, _drv, _id, _irq, _start, _size, _dma...) \
struct pxa_device_desc mmp2_device_##_name __initdata = { \ struct mmp_device_desc mmp2_device_##_name __initdata = { \
.dev_name = "mmp2-" #_name, \ .dev_name = "mmp2-" #_name, \
.drv_name = _drv, \ .drv_name = _drv, \
.id = _id, \ .id = _id, \
@ -50,7 +50,7 @@ struct pxa_device_desc mmp2_device_##_name __initdata = { \
.dma = { _dma }, \ .dma = { _dma }, \
} }
extern int pxa_register_device(struct pxa_device_desc *, void *, size_t); extern int mmp_register_device(struct mmp_device_desc *, void *, size_t);
extern int pxa_usb_phy_init(void __iomem *phy_reg); extern int pxa_usb_phy_init(void __iomem *phy_reg);
extern void pxa_usb_phy_deinit(void __iomem *phy_reg); extern void pxa_usb_phy_deinit(void __iomem *phy_reg);

View File

@ -2,7 +2,7 @@
#ifndef __ASM_MACH_MFP_H #ifndef __ASM_MACH_MFP_H
#define __ASM_MACH_MFP_H #define __ASM_MACH_MFP_H
#include <plat/mfp.h> #include <linux/soc/pxa/mfp.h>
/* /*
* NOTE: the MFPR register bit definitions on PXA168 processor lines are a * NOTE: the MFPR register bit definitions on PXA168 processor lines are a

View File

@ -15,28 +15,28 @@ extern void mmp2_clear_pmic_int(void);
#include "devices.h" #include "devices.h"
extern struct pxa_device_desc mmp2_device_uart1; extern struct mmp_device_desc mmp2_device_uart1;
extern struct pxa_device_desc mmp2_device_uart2; extern struct mmp_device_desc mmp2_device_uart2;
extern struct pxa_device_desc mmp2_device_uart3; extern struct mmp_device_desc mmp2_device_uart3;
extern struct pxa_device_desc mmp2_device_uart4; extern struct mmp_device_desc mmp2_device_uart4;
extern struct pxa_device_desc mmp2_device_twsi1; extern struct mmp_device_desc mmp2_device_twsi1;
extern struct pxa_device_desc mmp2_device_twsi2; extern struct mmp_device_desc mmp2_device_twsi2;
extern struct pxa_device_desc mmp2_device_twsi3; extern struct mmp_device_desc mmp2_device_twsi3;
extern struct pxa_device_desc mmp2_device_twsi4; extern struct mmp_device_desc mmp2_device_twsi4;
extern struct pxa_device_desc mmp2_device_twsi5; extern struct mmp_device_desc mmp2_device_twsi5;
extern struct pxa_device_desc mmp2_device_twsi6; extern struct mmp_device_desc mmp2_device_twsi6;
extern struct pxa_device_desc mmp2_device_sdh0; extern struct mmp_device_desc mmp2_device_sdh0;
extern struct pxa_device_desc mmp2_device_sdh1; extern struct mmp_device_desc mmp2_device_sdh1;
extern struct pxa_device_desc mmp2_device_sdh2; extern struct mmp_device_desc mmp2_device_sdh2;
extern struct pxa_device_desc mmp2_device_sdh3; extern struct mmp_device_desc mmp2_device_sdh3;
extern struct pxa_device_desc mmp2_device_asram; extern struct mmp_device_desc mmp2_device_asram;
extern struct pxa_device_desc mmp2_device_isram; extern struct mmp_device_desc mmp2_device_isram;
extern struct platform_device mmp2_device_gpio; extern struct platform_device mmp2_device_gpio;
static inline int mmp2_add_uart(int id) static inline int mmp2_add_uart(int id)
{ {
struct pxa_device_desc *d = NULL; struct mmp_device_desc *d = NULL;
switch (id) { switch (id) {
case 1: d = &mmp2_device_uart1; break; case 1: d = &mmp2_device_uart1; break;
@ -47,13 +47,13 @@ static inline int mmp2_add_uart(int id)
return -EINVAL; return -EINVAL;
} }
return pxa_register_device(d, NULL, 0); return mmp_register_device(d, NULL, 0);
} }
static inline int mmp2_add_twsi(int id, struct i2c_pxa_platform_data *data, static inline int mmp2_add_twsi(int id, struct i2c_pxa_platform_data *data,
struct i2c_board_info *info, unsigned size) struct i2c_board_info *info, unsigned size)
{ {
struct pxa_device_desc *d = NULL; struct mmp_device_desc *d = NULL;
int ret; int ret;
switch (id) { switch (id) {
@ -71,12 +71,12 @@ static inline int mmp2_add_twsi(int id, struct i2c_pxa_platform_data *data,
if (ret) if (ret)
return ret; return ret;
return pxa_register_device(d, data, sizeof(*data)); return mmp_register_device(d, data, sizeof(*data));
} }
static inline int mmp2_add_sdhost(int id, struct sdhci_pxa_platdata *data) static inline int mmp2_add_sdhost(int id, struct sdhci_pxa_platdata *data)
{ {
struct pxa_device_desc *d = NULL; struct mmp_device_desc *d = NULL;
switch (id) { switch (id) {
case 0: d = &mmp2_device_sdh0; break; case 0: d = &mmp2_device_sdh0; break;
@ -87,17 +87,17 @@ static inline int mmp2_add_sdhost(int id, struct sdhci_pxa_platdata *data)
return -EINVAL; return -EINVAL;
} }
return pxa_register_device(d, data, sizeof(*data)); return mmp_register_device(d, data, sizeof(*data));
} }
static inline int mmp2_add_asram(struct sram_platdata *data) static inline int mmp2_add_asram(struct sram_platdata *data)
{ {
return pxa_register_device(&mmp2_device_asram, data, sizeof(*data)); return mmp_register_device(&mmp2_device_asram, data, sizeof(*data));
} }
static inline int mmp2_add_isram(struct sram_platdata *data) static inline int mmp2_add_isram(struct sram_platdata *data)
{ {
return pxa_register_device(&mmp2_device_isram, data, sizeof(*data)); return mmp_register_device(&mmp2_device_isram, data, sizeof(*data));
} }
#endif /* __ASM_MACH_MMP2_H */ #endif /* __ASM_MACH_MMP2_H */

View File

@ -21,24 +21,24 @@ extern void pxa168_clear_keypad_wakeup(void);
#include "devices.h" #include "devices.h"
extern struct pxa_device_desc pxa168_device_uart1; extern struct mmp_device_desc pxa168_device_uart1;
extern struct pxa_device_desc pxa168_device_uart2; extern struct mmp_device_desc pxa168_device_uart2;
extern struct pxa_device_desc pxa168_device_uart3; extern struct mmp_device_desc pxa168_device_uart3;
extern struct pxa_device_desc pxa168_device_twsi0; extern struct mmp_device_desc pxa168_device_twsi0;
extern struct pxa_device_desc pxa168_device_twsi1; extern struct mmp_device_desc pxa168_device_twsi1;
extern struct pxa_device_desc pxa168_device_pwm1; extern struct mmp_device_desc pxa168_device_pwm1;
extern struct pxa_device_desc pxa168_device_pwm2; extern struct mmp_device_desc pxa168_device_pwm2;
extern struct pxa_device_desc pxa168_device_pwm3; extern struct mmp_device_desc pxa168_device_pwm3;
extern struct pxa_device_desc pxa168_device_pwm4; extern struct mmp_device_desc pxa168_device_pwm4;
extern struct pxa_device_desc pxa168_device_ssp1; extern struct mmp_device_desc pxa168_device_ssp1;
extern struct pxa_device_desc pxa168_device_ssp2; extern struct mmp_device_desc pxa168_device_ssp2;
extern struct pxa_device_desc pxa168_device_ssp3; extern struct mmp_device_desc pxa168_device_ssp3;
extern struct pxa_device_desc pxa168_device_ssp4; extern struct mmp_device_desc pxa168_device_ssp4;
extern struct pxa_device_desc pxa168_device_ssp5; extern struct mmp_device_desc pxa168_device_ssp5;
extern struct pxa_device_desc pxa168_device_nand; extern struct mmp_device_desc pxa168_device_nand;
extern struct pxa_device_desc pxa168_device_fb; extern struct mmp_device_desc pxa168_device_fb;
extern struct pxa_device_desc pxa168_device_keypad; extern struct mmp_device_desc pxa168_device_keypad;
extern struct pxa_device_desc pxa168_device_eth; extern struct mmp_device_desc pxa168_device_eth;
/* pdata can be NULL */ /* pdata can be NULL */
extern int __init pxa168_add_usb_host(struct mv_usb_platform_data *pdata); extern int __init pxa168_add_usb_host(struct mv_usb_platform_data *pdata);
@ -48,7 +48,7 @@ extern struct platform_device pxa168_device_gpio;
static inline int pxa168_add_uart(int id) static inline int pxa168_add_uart(int id)
{ {
struct pxa_device_desc *d = NULL; struct mmp_device_desc *d = NULL;
switch (id) { switch (id) {
case 1: d = &pxa168_device_uart1; break; case 1: d = &pxa168_device_uart1; break;
@ -59,13 +59,13 @@ static inline int pxa168_add_uart(int id)
if (d == NULL) if (d == NULL)
return -EINVAL; return -EINVAL;
return pxa_register_device(d, NULL, 0); return mmp_register_device(d, NULL, 0);
} }
static inline int pxa168_add_twsi(int id, struct i2c_pxa_platform_data *data, static inline int pxa168_add_twsi(int id, struct i2c_pxa_platform_data *data,
struct i2c_board_info *info, unsigned size) struct i2c_board_info *info, unsigned size)
{ {
struct pxa_device_desc *d = NULL; struct mmp_device_desc *d = NULL;
int ret; int ret;
switch (id) { switch (id) {
@ -79,12 +79,12 @@ static inline int pxa168_add_twsi(int id, struct i2c_pxa_platform_data *data,
if (ret) if (ret)
return ret; return ret;
return pxa_register_device(d, data, sizeof(*data)); return mmp_register_device(d, data, sizeof(*data));
} }
static inline int pxa168_add_pwm(int id) static inline int pxa168_add_pwm(int id)
{ {
struct pxa_device_desc *d = NULL; struct mmp_device_desc *d = NULL;
switch (id) { switch (id) {
case 1: d = &pxa168_device_pwm1; break; case 1: d = &pxa168_device_pwm1; break;
@ -95,12 +95,12 @@ static inline int pxa168_add_pwm(int id)
return -EINVAL; return -EINVAL;
} }
return pxa_register_device(d, NULL, 0); return mmp_register_device(d, NULL, 0);
} }
static inline int pxa168_add_ssp(int id) static inline int pxa168_add_ssp(int id)
{ {
struct pxa_device_desc *d = NULL; struct mmp_device_desc *d = NULL;
switch (id) { switch (id) {
case 1: d = &pxa168_device_ssp1; break; case 1: d = &pxa168_device_ssp1; break;
@ -111,17 +111,17 @@ static inline int pxa168_add_ssp(int id)
default: default:
return -EINVAL; return -EINVAL;
} }
return pxa_register_device(d, NULL, 0); return mmp_register_device(d, NULL, 0);
} }
static inline int pxa168_add_nand(struct pxa3xx_nand_platform_data *info) static inline int pxa168_add_nand(struct pxa3xx_nand_platform_data *info)
{ {
return pxa_register_device(&pxa168_device_nand, info, sizeof(*info)); return mmp_register_device(&pxa168_device_nand, info, sizeof(*info));
} }
static inline int pxa168_add_fb(struct pxa168fb_mach_info *mi) static inline int pxa168_add_fb(struct pxa168fb_mach_info *mi)
{ {
return pxa_register_device(&pxa168_device_fb, mi, sizeof(*mi)); return mmp_register_device(&pxa168_device_fb, mi, sizeof(*mi));
} }
static inline int pxa168_add_keypad(struct pxa27x_keypad_platform_data *data) static inline int pxa168_add_keypad(struct pxa27x_keypad_platform_data *data)
@ -129,11 +129,11 @@ static inline int pxa168_add_keypad(struct pxa27x_keypad_platform_data *data)
if (cpu_is_pxa168()) if (cpu_is_pxa168())
data->clear_wakeup_event = pxa168_clear_keypad_wakeup; data->clear_wakeup_event = pxa168_clear_keypad_wakeup;
return pxa_register_device(&pxa168_device_keypad, data, sizeof(*data)); return mmp_register_device(&pxa168_device_keypad, data, sizeof(*data));
} }
static inline int pxa168_add_eth(struct pxa168_eth_platform_data *data) static inline int pxa168_add_eth(struct pxa168_eth_platform_data *data)
{ {
return pxa_register_device(&pxa168_device_eth, data, sizeof(*data)); return mmp_register_device(&pxa168_device_eth, data, sizeof(*data));
} }
#endif /* __ASM_MACH_PXA168_H */ #endif /* __ASM_MACH_PXA168_H */

View File

@ -13,28 +13,28 @@ extern void __init pxa910_init_irq(void);
#include "devices.h" #include "devices.h"
extern struct pxa_device_desc pxa910_device_uart1; extern struct mmp_device_desc pxa910_device_uart1;
extern struct pxa_device_desc pxa910_device_uart2; extern struct mmp_device_desc pxa910_device_uart2;
extern struct pxa_device_desc pxa910_device_twsi0; extern struct mmp_device_desc pxa910_device_twsi0;
extern struct pxa_device_desc pxa910_device_twsi1; extern struct mmp_device_desc pxa910_device_twsi1;
extern struct pxa_device_desc pxa910_device_pwm1; extern struct mmp_device_desc pxa910_device_pwm1;
extern struct pxa_device_desc pxa910_device_pwm2; extern struct mmp_device_desc pxa910_device_pwm2;
extern struct pxa_device_desc pxa910_device_pwm3; extern struct mmp_device_desc pxa910_device_pwm3;
extern struct pxa_device_desc pxa910_device_pwm4; extern struct mmp_device_desc pxa910_device_pwm4;
extern struct pxa_device_desc pxa910_device_nand; extern struct mmp_device_desc pxa910_device_nand;
extern struct platform_device pxa168_device_usb_phy; extern struct platform_device pxa168_device_usb_phy;
extern struct platform_device pxa168_device_u2o; extern struct platform_device pxa168_device_u2o;
extern struct platform_device pxa168_device_u2ootg; extern struct platform_device pxa168_device_u2ootg;
extern struct platform_device pxa168_device_u2oehci; extern struct platform_device pxa168_device_u2oehci;
extern struct pxa_device_desc pxa910_device_disp; extern struct mmp_device_desc pxa910_device_disp;
extern struct pxa_device_desc pxa910_device_fb; extern struct mmp_device_desc pxa910_device_fb;
extern struct pxa_device_desc pxa910_device_panel; extern struct mmp_device_desc pxa910_device_panel;
extern struct platform_device pxa910_device_gpio; extern struct platform_device pxa910_device_gpio;
extern struct platform_device pxa910_device_rtc; extern struct platform_device pxa910_device_rtc;
static inline int pxa910_add_uart(int id) static inline int pxa910_add_uart(int id)
{ {
struct pxa_device_desc *d = NULL; struct mmp_device_desc *d = NULL;
switch (id) { switch (id) {
case 1: d = &pxa910_device_uart1; break; case 1: d = &pxa910_device_uart1; break;
@ -44,13 +44,13 @@ static inline int pxa910_add_uart(int id)
if (d == NULL) if (d == NULL)
return -EINVAL; return -EINVAL;
return pxa_register_device(d, NULL, 0); return mmp_register_device(d, NULL, 0);
} }
static inline int pxa910_add_twsi(int id, struct i2c_pxa_platform_data *data, static inline int pxa910_add_twsi(int id, struct i2c_pxa_platform_data *data,
struct i2c_board_info *info, unsigned size) struct i2c_board_info *info, unsigned size)
{ {
struct pxa_device_desc *d = NULL; struct mmp_device_desc *d = NULL;
int ret; int ret;
switch (id) { switch (id) {
@ -64,12 +64,12 @@ static inline int pxa910_add_twsi(int id, struct i2c_pxa_platform_data *data,
if (ret) if (ret)
return ret; return ret;
return pxa_register_device(d, data, sizeof(*data)); return mmp_register_device(d, data, sizeof(*data));
} }
static inline int pxa910_add_pwm(int id) static inline int pxa910_add_pwm(int id)
{ {
struct pxa_device_desc *d = NULL; struct mmp_device_desc *d = NULL;
switch (id) { switch (id) {
case 1: d = &pxa910_device_pwm1; break; case 1: d = &pxa910_device_pwm1; break;
@ -80,11 +80,11 @@ static inline int pxa910_add_pwm(int id)
return -EINVAL; return -EINVAL;
} }
return pxa_register_device(d, NULL, 0); return mmp_register_device(d, NULL, 0);
} }
static inline int pxa910_add_nand(struct pxa3xx_nand_platform_data *info) static inline int pxa910_add_nand(struct pxa3xx_nand_platform_data *info)
{ {
return pxa_register_device(&pxa910_device_nand, info, sizeof(*info)); return mmp_register_device(&pxa910_device_nand, info, sizeof(*info));
} }
#endif /* __ASM_MACH_PXA910_H */ #endif /* __ASM_MACH_PXA910_H */

View File

@ -1,113 +0,0 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* linux/arch/arm/mach-mmp/tavorevb.c
*
* Support for the Marvell PXA910-based TavorEVB Development Platform.
*/
#include <linux/gpio.h>
#include <linux/gpio-pxa.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/platform_device.h>
#include <linux/smc91x.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include "addr-map.h"
#include "mfp-pxa910.h"
#include "pxa910.h"
#include "irqs.h"
#include "common.h"
static unsigned long tavorevb_pin_config[] __initdata = {
/* UART2 */
GPIO47_UART2_RXD,
GPIO48_UART2_TXD,
/* SMC */
SM_nCS0_nCS0,
SM_ADV_SM_ADV,
SM_SCLK_SM_SCLK,
SM_SCLK_SM_SCLK,
SM_BE0_SM_BE0,
SM_BE1_SM_BE1,
/* DFI */
DF_IO0_ND_IO0,
DF_IO1_ND_IO1,
DF_IO2_ND_IO2,
DF_IO3_ND_IO3,
DF_IO4_ND_IO4,
DF_IO5_ND_IO5,
DF_IO6_ND_IO6,
DF_IO7_ND_IO7,
DF_IO8_ND_IO8,
DF_IO9_ND_IO9,
DF_IO10_ND_IO10,
DF_IO11_ND_IO11,
DF_IO12_ND_IO12,
DF_IO13_ND_IO13,
DF_IO14_ND_IO14,
DF_IO15_ND_IO15,
DF_nCS0_SM_nCS2_nCS0,
DF_ALE_SM_WEn_ND_ALE,
DF_CLE_SM_OEn_ND_CLE,
DF_WEn_DF_WEn,
DF_REn_DF_REn,
DF_RDY0_DF_RDY0,
};
static struct pxa_gpio_platform_data pxa910_gpio_pdata = {
.irq_base = MMP_GPIO_TO_IRQ(0),
};
static struct smc91x_platdata tavorevb_smc91x_info = {
.flags = SMC91X_USE_16BIT | SMC91X_NOWAIT,
};
static struct resource smc91x_resources[] = {
[0] = {
.start = SMC_CS1_PHYS_BASE + 0x300,
.end = SMC_CS1_PHYS_BASE + 0xfffff,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = MMP_GPIO_TO_IRQ(80),
.end = MMP_GPIO_TO_IRQ(80),
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
}
};
static struct platform_device smc91x_device = {
.name = "smc91x",
.id = 0,
.dev = {
.platform_data = &tavorevb_smc91x_info,
},
.num_resources = ARRAY_SIZE(smc91x_resources),
.resource = smc91x_resources,
};
static void __init tavorevb_init(void)
{
mfp_config(ARRAY_AND_SIZE(tavorevb_pin_config));
/* on-chip devices */
pxa910_add_uart(1);
platform_device_add_data(&pxa910_device_gpio, &pxa910_gpio_pdata,
sizeof(struct pxa_gpio_platform_data));
platform_device_register(&pxa910_device_gpio);
/* off-chip devices */
platform_device_register(&smc91x_device);
}
MACHINE_START(TAVOREVB, "PXA910 Evaluation Board (aka TavorEVB)")
.map_io = mmp_map_io,
.nr_irqs = MMP_NR_IRQS,
.init_irq = pxa910_init_irq,
.init_time = pxa910_timer_init,
.init_machine = tavorevb_init,
.restart = mmp_restart,
MACHINE_END

View File

@ -253,12 +253,12 @@ static struct spi_board_info spi_board_info[] __initdata = {
static void __init add_disp(void) static void __init add_disp(void)
{ {
pxa_register_device(&pxa910_device_disp, mmp_register_device(&pxa910_device_disp,
&dkb_disp_info, sizeof(dkb_disp_info)); &dkb_disp_info, sizeof(dkb_disp_info));
spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info)); spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info));
pxa_register_device(&pxa910_device_fb, mmp_register_device(&pxa910_device_fb,
&dkb_fb_info, sizeof(dkb_fb_info)); &dkb_fb_info, sizeof(dkb_fb_info));
pxa_register_device(&pxa910_device_panel, mmp_register_device(&pxa910_device_panel,
&dkb_tpo_panel_info, sizeof(dkb_tpo_panel_info)); &dkb_tpo_panel_info, sizeof(dkb_tpo_panel_info));
} }
#endif #endif

View File

@ -1,4 +1,19 @@
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
menuconfig ARCH_PXA
bool "PXA2xx/PXA3xx-based"
depends on ARCH_MULTI_V5
depends on CPU_LITTLE_ENDIAN
select ARM_CPU_SUSPEND if PM
select CLKSRC_PXA
select CLKSRC_MMIO
select TIMER_OF
select CPU_XSCALE if !CPU_XSC3
select GPIO_PXA
select GPIOLIB
select PLAT_PXA
help
Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
if ARCH_PXA if ARCH_PXA
menu "Intel PXA2xx/PXA3xx Implementations" menu "Intel PXA2xx/PXA3xx Implementations"

View File

@ -37,7 +37,8 @@ obj-$(CONFIG_MACH_SAAR) += saar.o
obj-$(CONFIG_ARCH_PXA_IDP) += idp.o obj-$(CONFIG_ARCH_PXA_IDP) += idp.o
obj-$(CONFIG_ARCH_VIPER) += viper.o obj-$(CONFIG_ARCH_VIPER) += viper.o
obj-$(CONFIG_MACH_ARCOM_ZEUS) += zeus.o obj-$(CONFIG_MACH_ARCOM_ZEUS) += zeus.o
obj-$(CONFIG_MACH_BALLOON3) += balloon3.o obj-$(CONFIG_ARCOM_PCMCIA) += viper-pcmcia.o
obj-$(CONFIG_MACH_BALLOON3) += balloon3.o balloon3-pcmcia.o
obj-$(CONFIG_MACH_CSB726) += csb726.o obj-$(CONFIG_MACH_CSB726) += csb726.o
obj-$(CONFIG_CSB726_CSB701) += csb701.o obj-$(CONFIG_CSB726_CSB701) += csb701.o
obj-$(CONFIG_MACH_CM_X300) += cm-x300.o obj-$(CONFIG_MACH_CM_X300) += cm-x300.o
@ -47,18 +48,20 @@ obj-$(CONFIG_GUMSTIX_AM200EPD) += am200epd.o
obj-$(CONFIG_GUMSTIX_AM300EPD) += am300epd.o obj-$(CONFIG_GUMSTIX_AM300EPD) += am300epd.o
obj-$(CONFIG_MACH_XCEP) += xcep.o obj-$(CONFIG_MACH_XCEP) += xcep.o
obj-$(CONFIG_MACH_TRIZEPS4) += trizeps4.o obj-$(CONFIG_MACH_TRIZEPS4) += trizeps4.o
obj-$(CONFIG_TRIZEPS_PCMCIA) += trizeps4-pcmcia.o
obj-$(CONFIG_MACH_LOGICPD_PXA270) += lpd270.o obj-$(CONFIG_MACH_LOGICPD_PXA270) += lpd270.o
obj-$(CONFIG_MACH_PCM027) += pcm027.o obj-$(CONFIG_MACH_PCM027) += pcm027.o
obj-$(CONFIG_MACH_PCM990_BASEBOARD) += pcm990-baseboard.o obj-$(CONFIG_MACH_PCM990_BASEBOARD) += pcm990-baseboard.o
obj-$(CONFIG_MACH_COLIBRI) += colibri-pxa270.o obj-$(CONFIG_MACH_COLIBRI) += colibri-pxa270.o colibri-pcmcia.o
obj-$(CONFIG_MACH_COLIBRI_EVALBOARD) += colibri-evalboard.o obj-$(CONFIG_MACH_COLIBRI_EVALBOARD) += colibri-evalboard.o
obj-$(CONFIG_MACH_COLIBRI_PXA270_INCOME) += colibri-pxa270-income.o obj-$(CONFIG_MACH_COLIBRI_PXA270_INCOME) += colibri-pxa270-income.o
obj-$(CONFIG_MACH_COLIBRI300) += colibri-pxa3xx.o colibri-pxa300.o obj-$(CONFIG_MACH_COLIBRI300) += colibri-pxa3xx.o colibri-pxa300.o
obj-$(CONFIG_MACH_COLIBRI320) += colibri-pxa3xx.o colibri-pxa320.o obj-$(CONFIG_MACH_COLIBRI320) += colibri-pxa3xx.o colibri-pxa320.o colibri-pcmcia.o
obj-$(CONFIG_MACH_VPAC270) += vpac270.o obj-$(CONFIG_MACH_VPAC270) += vpac270.o vpac270-pcmcia.o
# End-user Products # End-user Products
obj-$(CONFIG_MACH_H4700) += hx4700.o obj-$(CONFIG_MACH_H4700) += hx4700.o
obj-$(CONFIG_MACH_H4700) += hx4700-pcmcia.o
obj-$(CONFIG_MACH_H5000) += h5000.o obj-$(CONFIG_MACH_H5000) += h5000.o
obj-$(CONFIG_MACH_HIMALAYA) += himalaya.o obj-$(CONFIG_MACH_HIMALAYA) += himalaya.o
obj-$(CONFIG_MACH_MAGICIAN) += magician.o obj-$(CONFIG_MACH_MAGICIAN) += magician.o
@ -66,12 +69,12 @@ obj-$(CONFIG_MACH_MIOA701) += mioa701.o mioa701_bootresume.o
obj-$(CONFIG_PXA_EZX) += ezx.o obj-$(CONFIG_PXA_EZX) += ezx.o
obj-$(CONFIG_MACH_MP900C) += mp900.o obj-$(CONFIG_MACH_MP900C) += mp900.o
obj-$(CONFIG_MACH_PALMTE2) += palmte2.o obj-$(CONFIG_MACH_PALMTE2) += palmte2.o
obj-$(CONFIG_MACH_PALMTC) += palmtc.o obj-$(CONFIG_MACH_PALMTC) += palmtc.o palmtc-pcmcia.o
obj-$(CONFIG_MACH_PALM27X) += palm27x.o obj-$(CONFIG_MACH_PALM27X) += palm27x.o
obj-$(CONFIG_MACH_PALMT5) += palmt5.o obj-$(CONFIG_MACH_PALMT5) += palmt5.o
obj-$(CONFIG_MACH_PALMTX) += palmtx.o obj-$(CONFIG_MACH_PALMTX) += palmtx.o palmtx-pcmcia.o
obj-$(CONFIG_MACH_PALMZ72) += palmz72.o obj-$(CONFIG_MACH_PALMZ72) += palmz72.o
obj-$(CONFIG_MACH_PALMLD) += palmld.o obj-$(CONFIG_MACH_PALMLD) += palmld.o palmld-pcmcia.o
obj-$(CONFIG_PALM_TREO) += palmtreo.o obj-$(CONFIG_PALM_TREO) += palmtreo.o
obj-$(CONFIG_PXA_SHARP_C7xx) += corgi.o sharpsl_pm.o corgi_pm.o obj-$(CONFIG_PXA_SHARP_C7xx) += corgi.o sharpsl_pm.o corgi_pm.o
obj-$(CONFIG_PXA_SHARP_Cxx00) += spitz.o sharpsl_pm.o spitz_pm.o obj-$(CONFIG_PXA_SHARP_Cxx00) += spitz.o sharpsl_pm.o spitz_pm.o
@ -79,6 +82,7 @@ obj-$(CONFIG_MACH_POODLE) += poodle.o
obj-$(CONFIG_MACH_TOSA) += tosa.o obj-$(CONFIG_MACH_TOSA) += tosa.o
obj-$(CONFIG_MACH_ICONTROL) += icontrol.o mxm8x10.o obj-$(CONFIG_MACH_ICONTROL) += icontrol.o mxm8x10.o
obj-$(CONFIG_ARCH_PXA_ESERIES) += eseries.o obj-$(CONFIG_ARCH_PXA_ESERIES) += eseries.o
obj-$(CONFIG_MACH_E740) += e740-pcmcia.o
obj-$(CONFIG_MACH_ZIPIT2) += z2.o obj-$(CONFIG_MACH_ZIPIT2) += z2.o
obj-$(CONFIG_PXA_SYSTEMS_CPLDS) += pxa_cplds_irqs.o obj-$(CONFIG_PXA_SYSTEMS_CPLDS) += pxa_cplds_irqs.o

View File

@ -1,3 +0,0 @@
# SPDX-License-Identifier: GPL-2.0-only
zreladdr-y += 0xa0008000

View File

@ -30,7 +30,7 @@
#include "gumstix.h" #include "gumstix.h"
#include "mfp-pxa25x.h" #include "mfp-pxa25x.h"
#include <mach/irqs.h> #include "irqs.h"
#include <linux/platform_data/video-pxafb.h> #include <linux/platform_data/video-pxafb.h>
#include "generic.h" #include "generic.h"

View File

@ -20,11 +20,11 @@
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/io.h> #include <linux/io.h>
#include <mach/balloon3.h> #include "balloon3.h"
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include "soc_common.h" #include <pcmcia/soc_common.h>
static int balloon3_pcmcia_hw_init(struct soc_pcmcia_socket *skt) static int balloon3_pcmcia_hw_init(struct soc_pcmcia_socket *skt)
{ {

View File

@ -40,8 +40,8 @@
#include <asm/mach/flash.h> #include <asm/mach/flash.h>
#include "pxa27x.h" #include "pxa27x.h"
#include <mach/balloon3.h> #include "balloon3.h"
#include <mach/audio.h> #include <linux/platform_data/asoc-pxa.h>
#include <linux/platform_data/video-pxafb.h> #include <linux/platform_data/video-pxafb.h>
#include <linux/platform_data/mmc-pxamci.h> #include <linux/platform_data/mmc-pxamci.h>
#include "udc.h" #include "udc.h"

View File

@ -40,6 +40,8 @@
#include <linux/spi/spi_gpio.h> #include <linux/spi/spi_gpio.h>
#include <linux/spi/tdo24m.h> #include <linux/spi/tdo24m.h>
#include <linux/soc/pxa/cpu.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/setup.h> #include <asm/setup.h>
@ -51,7 +53,7 @@
#include <linux/platform_data/mmc-pxamci.h> #include <linux/platform_data/mmc-pxamci.h>
#include <linux/platform_data/usb-ohci-pxa27x.h> #include <linux/platform_data/usb-ohci-pxa27x.h>
#include <linux/platform_data/mtd-nand-pxa3xx.h> #include <linux/platform_data/mtd-nand-pxa3xx.h>
#include <mach/audio.h> #include <linux/platform_data/asoc-pxa.h>
#include <linux/platform_data/usb-pxa3xx-ulpi.h> #include <linux/platform_data/usb-pxa3xx-ulpi.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
@ -354,13 +356,13 @@ static struct platform_device cm_x300_spi_gpio = {
static struct gpiod_lookup_table cm_x300_spi_gpiod_table = { static struct gpiod_lookup_table cm_x300_spi_gpiod_table = {
.dev_id = "spi_gpio", .dev_id = "spi_gpio",
.table = { .table = {
GPIO_LOOKUP("gpio-pxa", GPIO_LCD_SCL, GPIO_LOOKUP("pca9555.1", GPIO_LCD_SCL - GPIO_LCD_BASE,
"sck", GPIO_ACTIVE_HIGH), "sck", GPIO_ACTIVE_HIGH),
GPIO_LOOKUP("gpio-pxa", GPIO_LCD_DIN, GPIO_LOOKUP("pca9555.1", GPIO_LCD_DIN - GPIO_LCD_BASE,
"mosi", GPIO_ACTIVE_HIGH), "mosi", GPIO_ACTIVE_HIGH),
GPIO_LOOKUP("gpio-pxa", GPIO_LCD_DOUT, GPIO_LOOKUP("pca9555.1", GPIO_LCD_DOUT - GPIO_LCD_BASE,
"miso", GPIO_ACTIVE_HIGH), "miso", GPIO_ACTIVE_HIGH),
GPIO_LOOKUP("gpio-pxa", GPIO_LCD_CS, GPIO_LOOKUP("pca9555.1", GPIO_LCD_CS - GPIO_LCD_BASE,
"cs", GPIO_ACTIVE_HIGH), "cs", GPIO_ACTIVE_HIGH),
{ }, { },
}, },

View File

@ -13,7 +13,6 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/gpio/machine.h> #include <linux/gpio/machine.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <mach/hardware.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/platform_data/i2c-pxa.h> #include <linux/platform_data/i2c-pxa.h>

View File

@ -14,7 +14,7 @@
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include "soc_common.h" #include <pcmcia/soc_common.h>
#define COLIBRI270_RESET_GPIO 53 #define COLIBRI270_RESET_GPIO 53
#define COLIBRI270_PPEN_GPIO 107 #define COLIBRI270_PPEN_GPIO 107

View File

@ -25,7 +25,6 @@
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <mach/hardware.h>
#include <linux/platform_data/mmc-pxamci.h> #include <linux/platform_data/mmc-pxamci.h>
#include <linux/platform_data/usb-ohci-pxa27x.h> #include <linux/platform_data/usb-ohci-pxa27x.h>
#include "pxa27x.h" #include "pxa27x.h"

View File

@ -23,7 +23,7 @@
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <linux/sizes.h> #include <linux/sizes.h>
#include <mach/audio.h> #include <linux/platform_data/asoc-pxa.h>
#include "colibri.h" #include "colibri.h"
#include "pxa27x.h" #include "pxa27x.h"

View File

@ -13,6 +13,7 @@
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/soc/pxa/cpu.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <linux/sizes.h> #include <linux/sizes.h>
@ -23,7 +24,7 @@
#include "colibri.h" #include "colibri.h"
#include <linux/platform_data/usb-ohci-pxa27x.h> #include <linux/platform_data/usb-ohci-pxa27x.h>
#include <linux/platform_data/video-pxafb.h> #include <linux/platform_data/video-pxafb.h>
#include <mach/audio.h> #include <linux/platform_data/asoc-pxa.h>
#include "generic.h" #include "generic.h"
#include "devices.h" #include "devices.h"

View File

@ -24,7 +24,7 @@
#include "colibri.h" #include "colibri.h"
#include <linux/platform_data/video-pxafb.h> #include <linux/platform_data/video-pxafb.h>
#include <linux/platform_data/usb-ohci-pxa27x.h> #include <linux/platform_data/usb-ohci-pxa27x.h>
#include <mach/audio.h> #include <linux/platform_data/asoc-pxa.h>
#include "pxa27x-udc.h" #include "pxa27x-udc.h"
#include "udc.h" #include "udc.h"

View File

@ -13,12 +13,11 @@
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/etherdevice.h> #include <linux/etherdevice.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <mach/hardware.h>
#include <linux/sizes.h> #include <linux/sizes.h>
#include <asm/system_info.h> #include <asm/system_info.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/irq.h> #include <asm/mach/irq.h>
#include <mach/pxa3xx-regs.h> #include "pxa3xx-regs.h"
#include "mfp-pxa300.h" #include "mfp-pxa300.h"
#include "colibri.h" #include "colibri.h"
#include <linux/platform_data/mmc-pxamci.h> #include <linux/platform_data/mmc-pxamci.h>

View File

@ -3,7 +3,7 @@
#define _COLIBRI_H_ #define _COLIBRI_H_
#include <net/ax88796.h> #include <net/ax88796.h>
#include <mach/mfp.h> #include "mfp.h"
/* /*
* base board glue for PXA270 module * base board glue for PXA270 module

View File

@ -39,7 +39,6 @@
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/memory.h> #include <asm/memory.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <mach/hardware.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
@ -50,7 +49,7 @@
#include <linux/platform_data/irda-pxaficp.h> #include <linux/platform_data/irda-pxaficp.h>
#include <linux/platform_data/mmc-pxamci.h> #include <linux/platform_data/mmc-pxamci.h>
#include "udc.h" #include "udc.h"
#include <mach/corgi.h> #include "corgi.h"
#include "sharpsl_pm.h" #include "sharpsl_pm.h"
#include <asm/mach/sharpsl_param.h> #include <asm/mach/sharpsl_param.h>
@ -473,6 +472,25 @@ static struct platform_device corgiled_device = {
}, },
}; };
static struct gpiod_lookup_table corgi_audio_gpio_table = {
.dev_id = "corgi-audio",
.table = {
GPIO_LOOKUP("sharp-scoop",
CORGI_GPIO_MUTE_L - CORGI_SCOOP_GPIO_BASE,
"mute-l", GPIO_ACTIVE_HIGH),
GPIO_LOOKUP("sharp-scoop",
CORGI_GPIO_MUTE_R - CORGI_SCOOP_GPIO_BASE,
"mute-r", GPIO_ACTIVE_HIGH),
GPIO_LOOKUP("sharp-scoop",
CORGI_GPIO_APM_ON - CORGI_SCOOP_GPIO_BASE,
"apm-on", GPIO_ACTIVE_HIGH),
GPIO_LOOKUP("sharp-scoop",
CORGI_GPIO_MIC_BIAS - CORGI_SCOOP_GPIO_BASE,
"mic-bias", GPIO_ACTIVE_HIGH),
{ },
},
};
/* /*
* Corgi Audio * Corgi Audio
*/ */
@ -745,6 +763,7 @@ static void __init corgi_init(void)
pxa_set_udc_info(&udc_info); pxa_set_udc_info(&udc_info);
gpiod_add_lookup_table(&corgi_mci_gpio_table); gpiod_add_lookup_table(&corgi_mci_gpio_table);
gpiod_add_lookup_table(&corgi_audio_gpio_table);
pxa_set_mci_info(&corgi_mci_platform_data); pxa_set_mci_info(&corgi_mci_platform_data);
pxa_set_ficp_info(&corgi_ficp_platform_data); pxa_set_ficp_info(&corgi_ficp_platform_data);
pxa_set_i2c_info(NULL); pxa_set_i2c_info(NULL);

View File

@ -19,10 +19,9 @@
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <mach/hardware.h>
#include <mach/corgi.h> #include "corgi.h"
#include <mach/pxa2xx-regs.h> #include "pxa2xx-regs.h"
#include "sharpsl_pm.h" #include "sharpsl_pm.h"
#include "generic.h" #include "generic.h"

View File

@ -17,12 +17,13 @@
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include "csb726.h" #include "csb726.h"
#include "pxa27x.h" #include "pxa27x.h"
#include <linux/platform_data/mmc-pxamci.h> #include <linux/platform_data/mmc-pxamci.h>
#include <linux/platform_data/usb-ohci-pxa27x.h> #include <linux/platform_data/usb-ohci-pxa27x.h>
#include <mach/audio.h> #include <linux/platform_data/asoc-pxa.h>
#include <mach/smemc.h> #include "smemc.h"
#include "generic.h" #include "generic.h"
#include "devices.h" #include "devices.h"

View File

@ -7,7 +7,7 @@
#ifndef CSB726_H #ifndef CSB726_H
#define CSB726_H #define CSB726_H
#include <mach/irqs.h> /* PXA_GPIO_TO_IRQ */ #include "irqs.h" /* PXA_GPIO_TO_IRQ */
#define CSB726_GPIO_IRQ_LAN 52 #define CSB726_GPIO_IRQ_LAN 52
#define CSB726_GPIO_IRQ_SM501 53 #define CSB726_GPIO_IRQ_SM501 53

View File

@ -9,21 +9,23 @@
#include <linux/dmaengine.h> #include <linux/dmaengine.h>
#include <linux/spi/pxa2xx_spi.h> #include <linux/spi/pxa2xx_spi.h>
#include <linux/platform_data/i2c-pxa.h> #include <linux/platform_data/i2c-pxa.h>
#include <linux/soc/pxa/cpu.h>
#include "udc.h" #include "udc.h"
#include <linux/platform_data/usb-pxa3xx-ulpi.h> #include <linux/platform_data/usb-pxa3xx-ulpi.h>
#include <linux/platform_data/video-pxafb.h> #include <linux/platform_data/video-pxafb.h>
#include <linux/platform_data/mmc-pxamci.h> #include <linux/platform_data/mmc-pxamci.h>
#include <linux/platform_data/irda-pxaficp.h> #include <linux/platform_data/irda-pxaficp.h>
#include <mach/irqs.h> #include "irqs.h"
#include <linux/platform_data/usb-ohci-pxa27x.h> #include <linux/platform_data/usb-ohci-pxa27x.h>
#include <linux/platform_data/keypad-pxa27x.h> #include <linux/platform_data/keypad-pxa27x.h>
#include <linux/platform_data/media/camera-pxa.h> #include <linux/platform_data/media/camera-pxa.h>
#include <mach/audio.h> #include <linux/platform_data/asoc-pxa.h>
#include <mach/hardware.h>
#include <linux/platform_data/mmp_dma.h> #include <linux/platform_data/mmp_dma.h>
#include <linux/platform_data/mtd-nand-pxa3xx.h> #include <linux/platform_data/mtd-nand-pxa3xx.h>
#include "regs-ost.h"
#include "reset.h"
#include "devices.h" #include "devices.h"
#include "generic.h" #include "generic.h"
@ -1118,3 +1120,12 @@ void __init pxa2xx_set_dmac_info(struct mmp_dma_platdata *dma_pdata)
{ {
pxa_register_device(&pxa2xx_pxa_dma, dma_pdata); pxa_register_device(&pxa2xx_pxa_dma, dma_pdata);
} }
void __init pxa_register_wdt(unsigned int reset_status)
{
struct resource res = DEFINE_RES_MEM(OST_PHYS, OST_LEN);
reset_status &= RESET_STATUS_WATCHDOG;
platform_device_register_resndata(NULL, "sa1100_wdt", -1, &res, 1,
&reset_status, sizeof(reset_status));
}

View File

@ -13,12 +13,12 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <mach/eseries-gpio.h> #include "eseries-gpio.h"
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include "soc_common.h" #include <pcmcia/soc_common.h>
static int e740_pcmcia_hw_init(struct soc_pcmcia_socket *skt) static int e740_pcmcia_hw_init(struct soc_pcmcia_socket *skt)
{ {

View File

@ -24,6 +24,7 @@
#include <linux/mtd/rawnand.h> #include <linux/mtd/rawnand.h>
#include <linux/mtd/partitions.h> #include <linux/mtd/partitions.h>
#include <linux/memblock.h> #include <linux/memblock.h>
#include <linux/gpio/machine.h>
#include <video/w100fb.h> #include <video/w100fb.h>
@ -32,9 +33,9 @@
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include "pxa25x.h" #include "pxa25x.h"
#include <mach/eseries-gpio.h> #include "eseries-gpio.h"
#include "eseries-irq.h" #include "eseries-irq.h"
#include <mach/audio.h> #include <linux/platform_data/asoc-pxa.h>
#include <linux/platform_data/video-pxafb.h> #include <linux/platform_data/video-pxafb.h>
#include "udc.h" #include "udc.h"
#include <linux/platform_data/irda-pxaficp.h> #include <linux/platform_data/irda-pxaficp.h>
@ -520,6 +521,16 @@ static struct platform_device e740_audio_device = {
.id = -1, .id = -1,
}; };
static struct gpiod_lookup_table e740_audio_gpio_table = {
.dev_id = "e740-audio",
.table = {
GPIO_LOOKUP("gpio-pxa", GPIO_E740_WM9705_nAVDD2, "Audio power", GPIO_ACTIVE_HIGH),
GPIO_LOOKUP("gpio-pxa", GPIO_E740_AMP_ON, "Output amp", GPIO_ACTIVE_HIGH),
GPIO_LOOKUP("gpio-pxa", GPIO_E740_MIC_ON, "Mic amp", GPIO_ACTIVE_HIGH),
{ },
},
};
/* ----------------------------------------------------------------------- */ /* ----------------------------------------------------------------------- */
static struct platform_device *e740_devices[] __initdata = { static struct platform_device *e740_devices[] __initdata = {
@ -540,6 +551,7 @@ static void __init e740_init(void)
"UDCCLK", &pxa25x_device_udc.dev), "UDCCLK", &pxa25x_device_udc.dev),
eseries_get_tmio_gpios(); eseries_get_tmio_gpios();
gpiod_add_lookup_table(&e7xx_gpio_vbus_gpiod_table); gpiod_add_lookup_table(&e7xx_gpio_vbus_gpiod_table);
gpiod_add_lookup_table(&e740_audio_gpio_table);
platform_add_devices(ARRAY_AND_SIZE(e740_devices)); platform_add_devices(ARRAY_AND_SIZE(e740_devices));
pxa_set_ac97_info(NULL); pxa_set_ac97_info(NULL);
pxa_set_ficp_info(&e7xx_ficp_platform_data); pxa_set_ficp_info(&e7xx_ficp_platform_data);
@ -699,7 +711,6 @@ static struct tc6393xb_platform_data e750_tc6393xb_info = {
.irq_base = IRQ_BOARD_START, .irq_base = IRQ_BOARD_START,
.scr_pll2cr = 0x0cc1, .scr_pll2cr = 0x0cc1,
.scr_gper = 0, .scr_gper = 0,
.gpio_base = -1,
.suspend = &eseries_tmio_suspend, .suspend = &eseries_tmio_suspend,
.resume = &eseries_tmio_resume, .resume = &eseries_tmio_resume,
.enable = &eseries_tmio_enable, .enable = &eseries_tmio_enable,
@ -716,6 +727,15 @@ static struct platform_device e750_tc6393xb_device = {
.resource = eseries_tmio_resources, .resource = eseries_tmio_resources,
}; };
static struct gpiod_lookup_table e750_audio_gpio_table = {
.dev_id = "e750-audio",
.table = {
GPIO_LOOKUP("gpio-pxa", GPIO_E750_HP_AMP_OFF, "Output amp", GPIO_ACTIVE_LOW),
GPIO_LOOKUP("gpio-pxa", GPIO_E750_SPK_AMP_OFF, "Mic amp", GPIO_ACTIVE_LOW),
{ },
},
};
static struct platform_device e750_audio_device = { static struct platform_device e750_audio_device = {
.name = "e750-audio", .name = "e750-audio",
.id = -1, .id = -1,
@ -740,6 +760,7 @@ static void __init e750_init(void)
"GPIO11_CLK", NULL), "GPIO11_CLK", NULL),
eseries_get_tmio_gpios(); eseries_get_tmio_gpios();
gpiod_add_lookup_table(&e7xx_gpio_vbus_gpiod_table); gpiod_add_lookup_table(&e7xx_gpio_vbus_gpiod_table);
gpiod_add_lookup_table(&e750_audio_gpio_table);
platform_add_devices(ARRAY_AND_SIZE(e750_devices)); platform_add_devices(ARRAY_AND_SIZE(e750_devices));
pxa_set_ac97_info(NULL); pxa_set_ac97_info(NULL);
pxa_set_ficp_info(&e7xx_ficp_platform_data); pxa_set_ficp_info(&e7xx_ficp_platform_data);
@ -918,7 +939,6 @@ static struct tc6393xb_platform_data e800_tc6393xb_info = {
.irq_base = IRQ_BOARD_START, .irq_base = IRQ_BOARD_START,
.scr_pll2cr = 0x0cc1, .scr_pll2cr = 0x0cc1,
.scr_gper = 0, .scr_gper = 0,
.gpio_base = -1,
.suspend = &eseries_tmio_suspend, .suspend = &eseries_tmio_suspend,
.resume = &eseries_tmio_resume, .resume = &eseries_tmio_resume,
.enable = &eseries_tmio_enable, .enable = &eseries_tmio_enable,
@ -935,6 +955,15 @@ static struct platform_device e800_tc6393xb_device = {
.resource = eseries_tmio_resources, .resource = eseries_tmio_resources,
}; };
static struct gpiod_lookup_table e800_audio_gpio_table = {
.dev_id = "e800-audio",
.table = {
GPIO_LOOKUP("gpio-pxa", GPIO_E800_HP_AMP_OFF, "Output amp", GPIO_ACTIVE_LOW),
GPIO_LOOKUP("gpio-pxa", GPIO_E800_SPK_AMP_ON, "Mic amp", GPIO_ACTIVE_HIGH),
{ },
},
};
static struct platform_device e800_audio_device = { static struct platform_device e800_audio_device = {
.name = "e800-audio", .name = "e800-audio",
.id = -1, .id = -1,
@ -959,6 +988,7 @@ static void __init e800_init(void)
"GPIO11_CLK", NULL), "GPIO11_CLK", NULL),
eseries_get_tmio_gpios(); eseries_get_tmio_gpios();
gpiod_add_lookup_table(&e800_gpio_vbus_gpiod_table); gpiod_add_lookup_table(&e800_gpio_vbus_gpiod_table);
gpiod_add_lookup_table(&e800_audio_gpio_table);
platform_add_devices(ARRAY_AND_SIZE(e800_devices)); platform_add_devices(ARRAY_AND_SIZE(e800_devices));
pxa_set_ac97_info(NULL); pxa_set_ac97_info(NULL);
} }

View File

@ -29,7 +29,6 @@
#include "pxa27x.h" #include "pxa27x.h"
#include <linux/platform_data/video-pxafb.h> #include <linux/platform_data/video-pxafb.h>
#include <linux/platform_data/usb-ohci-pxa27x.h> #include <linux/platform_data/usb-ohci-pxa27x.h>
#include <mach/hardware.h>
#include <linux/platform_data/keypad-pxa27x.h> #include <linux/platform_data/keypad-pxa27x.h>
#include <linux/platform_data/media/camera-pxa.h> #include <linux/platform_data/media/camera-pxa.h>

View File

@ -17,15 +17,18 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/soc/pxa/cpu.h>
#include <linux/soc/pxa/smemc.h>
#include <linux/clk/pxa.h>
#include <mach/hardware.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <mach/irqs.h> #include "addr-map.h"
#include <mach/reset.h> #include "irqs.h"
#include <mach/smemc.h> #include "reset.h"
#include <mach/pxa3xx-regs.h> #include "smemc.h"
#include "pxa3xx-regs.h"
#include "generic.h" #include "generic.h"
#include <clocksource/pxa.h> #include <clocksource/pxa.h>
@ -46,28 +49,47 @@ void clear_reset_status(unsigned int mask)
void __init pxa_timer_init(void) void __init pxa_timer_init(void)
{ {
if (cpu_is_pxa25x()) if (cpu_is_pxa25x())
pxa25x_clocks_init(); pxa25x_clocks_init(io_p2v(0x41300000));
if (cpu_is_pxa27x()) if (cpu_is_pxa27x())
pxa27x_clocks_init(); pxa27x_clocks_init(io_p2v(0x41300000));
if (cpu_is_pxa3xx()) if (cpu_is_pxa3xx())
pxa3xx_clocks_init(); pxa3xx_clocks_init(io_p2v(0x41340000), io_p2v(0x41350000));
pxa_timer_nodt_init(IRQ_OST0, io_p2v(0x40a00000)); pxa_timer_nodt_init(IRQ_OST0, io_p2v(0x40a00000));
} }
/* void pxa_smemc_set_pcmcia_timing(int sock, u32 mcmem, u32 mcatt, u32 mcio)
* Get the clock frequency as reflected by CCCR and the turbo flag.
* We assume these values have been applied via a fcs.
* If info is not 0 we also display the current settings.
*/
unsigned int get_clk_frequency_khz(int info)
{ {
if (cpu_is_pxa25x()) __raw_writel(mcmem, MCMEM(sock));
return pxa25x_get_clk_frequency_khz(info); __raw_writel(mcatt, MCATT(sock));
else if (cpu_is_pxa27x()) __raw_writel(mcio, MCIO(sock));
return pxa27x_get_clk_frequency_khz(info); }
return 0; EXPORT_SYMBOL_GPL(pxa_smemc_set_pcmcia_timing);
void pxa_smemc_set_pcmcia_socket(int nr)
{
switch (nr) {
case 0:
__raw_writel(0, MECR);
break;
case 1:
/*
* We have at least one socket, so set MECR:CIT
* (Card Is There)
*/
__raw_writel(MECR_CIT, MECR);
break;
case 2:
/* Set CIT and MECR:NOS (Number Of Sockets) */
__raw_writel(MECR_CIT | MECR_NOS, MECR);
break;
}
}
EXPORT_SYMBOL_GPL(pxa_smemc_set_pcmcia_socket);
void __iomem *pxa_smemc_get_mdrefr(void)
{
return MDREFR;
} }
EXPORT_SYMBOL(get_clk_frequency_khz);
/* /*
* Intel PXA2xx internal register mapping. * Intel PXA2xx internal register mapping.

View File

@ -10,7 +10,6 @@
struct irq_data; struct irq_data;
extern unsigned int get_clk_frequency_khz(int info);
extern void __init pxa_dt_irq_init(int (*fn)(struct irq_data *, extern void __init pxa_dt_irq_init(int (*fn)(struct irq_data *,
unsigned int)); unsigned int));
extern void __init pxa_map_io(void); extern void __init pxa_map_io(void);
@ -23,19 +22,16 @@ extern void pxa_timer_init(void);
#define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x) #define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x)
#define pxa25x_handle_irq icip_handle_irq #define pxa25x_handle_irq icip_handle_irq
extern int __init pxa25x_clocks_init(void);
extern void __init pxa25x_init_irq(void); extern void __init pxa25x_init_irq(void);
extern void __init pxa25x_map_io(void); extern void __init pxa25x_map_io(void);
extern void __init pxa26x_init_irq(void); extern void __init pxa26x_init_irq(void);
#define pxa27x_handle_irq ichp_handle_irq #define pxa27x_handle_irq ichp_handle_irq
extern int __init pxa27x_clocks_init(void);
extern unsigned pxa27x_get_clk_frequency_khz(int); extern unsigned pxa27x_get_clk_frequency_khz(int);
extern void __init pxa27x_init_irq(void); extern void __init pxa27x_init_irq(void);
extern void __init pxa27x_map_io(void); extern void __init pxa27x_map_io(void);
#define pxa3xx_handle_irq ichp_handle_irq #define pxa3xx_handle_irq ichp_handle_irq
extern int __init pxa3xx_clocks_init(void);
extern void __init pxa3xx_init_irq(void); extern void __init pxa3xx_init_irq(void);
extern void __init pxa3xx_map_io(void); extern void __init pxa3xx_map_io(void);
@ -71,8 +67,3 @@ extern unsigned pxa25x_get_clk_frequency_khz(int);
#define pxa27x_get_clk_frequency_khz(x) (0) #define pxa27x_get_clk_frequency_khz(x) (0)
#endif #endif
#ifdef CONFIG_PXA3xx
extern unsigned pxa3xx_get_clk_frequency_khz(int);
#else
#define pxa3xx_get_clk_frequency_khz(x) (0)
#endif

View File

@ -28,7 +28,6 @@
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/memory.h> #include <asm/memory.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <mach/hardware.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <linux/sizes.h> #include <linux/sizes.h>

View File

@ -3,7 +3,7 @@
* arch/arm/mach-pxa/include/mach/gumstix.h * arch/arm/mach-pxa/include/mach/gumstix.h
*/ */
#include <mach/irqs.h> /* PXA_GPIO_TO_IRQ */ #include "irqs.h" /* PXA_GPIO_TO_IRQ */
/* BTRESET - Reset line to Bluetooth module, active low signal. */ /* BTRESET - Reset line to Bluetooth module, active low signal. */
#define GPIO_GUMSTIX_BTRESET 7 #define GPIO_GUMSTIX_BTRESET 7

View File

@ -29,7 +29,7 @@
#include "pxa25x.h" #include "pxa25x.h"
#include "h5000.h" #include "h5000.h"
#include "udc.h" #include "udc.h"
#include <mach/smemc.h> #include "smemc.h"
#include "generic.h" #include "generic.h"

View File

@ -10,9 +10,9 @@
#include <linux/irq.h> #include <linux/irq.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <mach/hx4700.h> #include "hx4700.h"
#include "soc_common.h" #include <pcmcia/soc_common.h>
static struct gpio gpios[] = { static struct gpio gpios[] = {
{ GPIO114_HX4700_CF_RESET, GPIOF_OUT_INIT_LOW, "CF reset" }, { GPIO114_HX4700_CF_RESET, GPIOF_OUT_INIT_LOW, "CF reset" },

View File

@ -36,12 +36,12 @@
#include <linux/spi/pxa2xx_spi.h> #include <linux/spi/pxa2xx_spi.h>
#include <linux/platform_data/i2c-pxa.h> #include <linux/platform_data/i2c-pxa.h>
#include <mach/hardware.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include "pxa27x.h" #include "pxa27x.h"
#include <mach/hx4700.h> #include "addr-map.h"
#include "hx4700.h"
#include <linux/platform_data/irda-pxaficp.h> #include <linux/platform_data/irda-pxaficp.h>
#include <sound/ak4641.h> #include <sound/ak4641.h>
@ -834,6 +834,19 @@ static struct i2c_board_info i2c_board_info[] __initdata = {
}, },
}; };
static struct gpiod_lookup_table hx4700_audio_gpio_table = {
.dev_id = "hx4700-audio",
.table = {
GPIO_LOOKUP("gpio-pxa", GPIO75_HX4700_EARPHONE_nDET,
"earphone-det", GPIO_ACTIVE_LOW),
GPIO_LOOKUP("gpio-pxa", GPIO92_HX4700_HP_DRIVER,
"hp-driver", GPIO_ACTIVE_HIGH),
GPIO_LOOKUP("gpio-pxa", GPIO107_HX4700_SPK_nSD,
"spk-sd", GPIO_ACTIVE_LOW),
{ },
},
};
static struct platform_device audio = { static struct platform_device audio = {
.name = "hx4700-audio", .name = "hx4700-audio",
.id = -1, .id = -1,
@ -895,6 +908,7 @@ static void __init hx4700_init(void)
gpiod_add_lookup_table(&bq24022_gpiod_table); gpiod_add_lookup_table(&bq24022_gpiod_table);
gpiod_add_lookup_table(&gpio_vbus_gpiod_table); gpiod_add_lookup_table(&gpio_vbus_gpiod_table);
gpiod_add_lookup_table(&hx4700_audio_gpio_table);
platform_add_devices(devices, ARRAY_SIZE(devices)); platform_add_devices(devices, ARRAY_SIZE(devices));
pwm_add_table(hx4700_pwm_lookup, ARRAY_SIZE(hx4700_pwm_lookup)); pwm_add_table(hx4700_pwm_lookup, ARRAY_SIZE(hx4700_pwm_lookup));

View File

@ -22,7 +22,6 @@
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/memory.h> #include <asm/memory.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <mach/hardware.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
@ -31,7 +30,6 @@
#include "pxa25x.h" #include "pxa25x.h"
#include "idp.h" #include "idp.h"
#include <linux/platform_data/video-pxafb.h> #include <linux/platform_data/video-pxafb.h>
#include <mach/bitfield.h>
#include <linux/platform_data/mmc-pxamci.h> #include <linux/platform_data/mmc-pxamci.h>
#include <linux/smc91x.h> #include <linux/smc91x.h>

View File

@ -20,7 +20,7 @@
* IDP hardware. * IDP hardware.
*/ */
#include <mach/irqs.h> /* PXA_GPIO_TO_IRQ */ #include "irqs.h" /* PXA_GPIO_TO_IRQ */
#define IDP_FLASH_PHYS (PXA_CS0_PHYS) #define IDP_FLASH_PHYS (PXA_CS0_PHYS)
#define IDP_ALT_FLASH_PHYS (PXA_CS1_PHYS) #define IDP_ALT_FLASH_PHYS (PXA_CS1_PHYS)

View File

@ -1,114 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* FILE bitfield.h
*
* Version 1.1
* Author Copyright (c) Marc A. Viredaz, 1998
* DEC Western Research Laboratory, Palo Alto, CA
* Date April 1998 (April 1997)
* System Advanced RISC Machine (ARM)
* Language C or ARM Assembly
* Purpose Definition of macros to operate on bit fields.
*/
#ifndef __BITFIELD_H
#define __BITFIELD_H
#ifndef __ASSEMBLY__
#define UData(Data) ((unsigned long) (Data))
#else
#define UData(Data) (Data)
#endif
/*
* MACRO: Fld
*
* Purpose
* The macro "Fld" encodes a bit field, given its size and its shift value
* with respect to bit 0.
*
* Note
* A more intuitive way to encode bit fields would have been to use their
* mask. However, extracting size and shift value information from a bit
* field's mask is cumbersome and might break the assembler (255-character
* line-size limit).
*
* Input
* Size Size of the bit field, in number of bits.
* Shft Shift value of the bit field with respect to bit 0.
*
* Output
* Fld Encoded bit field.
*/
#define Fld(Size, Shft) (((Size) << 16) + (Shft))
/*
* MACROS: FSize, FShft, FMsk, FAlnMsk, F1stBit
*
* Purpose
* The macros "FSize", "FShft", "FMsk", "FAlnMsk", and "F1stBit" return
* the size, shift value, mask, aligned mask, and first bit of a
* bit field.
*
* Input
* Field Encoded bit field (using the macro "Fld").
*
* Output
* FSize Size of the bit field, in number of bits.
* FShft Shift value of the bit field with respect to bit 0.
* FMsk Mask for the bit field.
* FAlnMsk Mask for the bit field, aligned on bit 0.
* F1stBit First bit of the bit field.
*/
#define FSize(Field) ((Field) >> 16)
#define FShft(Field) ((Field) & 0x0000FFFF)
#define FMsk(Field) (((UData (1) << FSize (Field)) - 1) << FShft (Field))
#define FAlnMsk(Field) ((UData (1) << FSize (Field)) - 1)
#define F1stBit(Field) (UData (1) << FShft (Field))
/*
* MACRO: FInsrt
*
* Purpose
* The macro "FInsrt" inserts a value into a bit field by shifting the
* former appropriately.
*
* Input
* Value Bit-field value.
* Field Encoded bit field (using the macro "Fld").
*
* Output
* FInsrt Bit-field value positioned appropriately.
*/
#define FInsrt(Value, Field) \
(UData (Value) << FShft (Field))
/*
* MACRO: FExtr
*
* Purpose
* The macro "FExtr" extracts the value of a bit field by masking and
* shifting it appropriately.
*
* Input
* Data Data containing the bit-field to be extracted.
* Field Encoded bit field (using the macro "Fld").
*
* Output
* FExtr Bit-field value.
*/
#define FExtr(Data, Field) \
((UData (Data) >> FShft (Field)) & FAlnMsk (Field))
#endif /* __BITFIELD_H */

View File

@ -1,17 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* arch/arm/mach-pxa/include/mach/dma.h
*
* Author: Nicolas Pitre
* Created: Jun 15, 2001
* Copyright: MontaVista Software, Inc.
*/
#ifndef __ASM_ARCH_DMA_H
#define __ASM_ARCH_DMA_H
#include <mach/hardware.h>
/* DMA Controller Registers Definitions */
#define DMAC_REGS_VIRT io_p2v(0x40000000)
#endif /* _ASM_ARCH_DMA_H */

View File

@ -1 +0,0 @@
#include "../../generic.h"

View File

@ -1,36 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* MTD primitives for XIP support. Architecture specific functions
*
* Do not include this file directly. It's included from linux/mtd/xip.h
*
* Author: Nicolas Pitre
* Created: Nov 2, 2004
* Copyright: (C) 2004 MontaVista Software, Inc.
*/
#ifndef __ARCH_PXA_MTD_XIP_H__
#define __ARCH_PXA_MTD_XIP_H__
#include <mach/regs-ost.h>
/* restored July 2017, this did not build since 2011! */
#define ICIP io_p2v(0x40d00000)
#define ICMR io_p2v(0x40d00004)
#define xip_irqpending() (readl(ICIP) & readl(ICMR))
/* we sample OSCR and convert desired delta to usec (1/4 ~= 1000000/3686400) */
#define xip_currtime() readl(OSCR)
#define xip_elapsed_since(x) (signed)((readl(OSCR) - (x)) / 4)
/*
* xip_cpu_idle() is used when waiting for a delay equal or larger than
* the system timer tick period. This should put the CPU into idle mode
* to save power and to be woken up only when some interrupts are pending.
* As above, this should not rely upon standard kernel code.
*/
#define xip_cpu_idle() asm volatile ("mcr p14, 0, %0, c7, c0, 0" :: "r" (1))
#endif /* __ARCH_PXA_MTD_XIP_H__ */

View File

@ -1,70 +0,0 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* arch/arm/mach-pxa/include/mach/uncompress.h
*
* Author: Nicolas Pitre
* Copyright: (C) 2001 MontaVista Software Inc.
*/
#include <linux/serial_reg.h>
#include <asm/mach-types.h>
#define FFUART_BASE (0x40100000)
#define BTUART_BASE (0x40200000)
#define STUART_BASE (0x40700000)
unsigned long uart_base;
unsigned int uart_shift;
unsigned int uart_is_pxa;
static inline unsigned char uart_read(int offset)
{
return *(volatile unsigned char *)(uart_base + (offset << uart_shift));
}
static inline void uart_write(unsigned char val, int offset)
{
*(volatile unsigned char *)(uart_base + (offset << uart_shift)) = val;
}
static inline int uart_is_enabled(void)
{
/* assume enabled by default for non-PXA uarts */
return uart_is_pxa ? uart_read(UART_IER) & UART_IER_UUE : 1;
}
static inline void putc(char c)
{
if (!uart_is_enabled())
return;
while (!(uart_read(UART_LSR) & UART_LSR_THRE))
barrier();
uart_write(c, UART_TX);
}
/*
* This does not append a newline
*/
static inline void flush(void)
{
}
static inline void arch_decomp_setup(void)
{
/* initialize to default */
uart_base = FFUART_BASE;
uart_shift = 2;
uart_is_pxa = 1;
if (machine_is_littleton() || machine_is_csb726() ||
machine_is_cm_x300() || machine_is_balloon3())
uart_base = STUART_BASE;
if (machine_is_arcom_zeus()) {
uart_base = 0x10000000; /* nCS4 */
uart_shift = 1;
uart_is_pxa = 0;
}
}

View File

@ -17,13 +17,14 @@
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/of_address.h> #include <linux/of_address.h>
#include <linux/of_irq.h> #include <linux/of_irq.h>
#include <linux/soc/pxa/cpu.h>
#include <asm/exception.h> #include <asm/exception.h>
#include <mach/hardware.h> #include "irqs.h"
#include <mach/irqs.h>
#include "generic.h" #include "generic.h"
#include "pxa-regs.h"
#define ICIP (0x000) #define ICIP (0x000)
#define ICMR (0x004) #define ICMR (0x004)

View File

@ -31,7 +31,6 @@
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/memory.h> #include <asm/memory.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <mach/hardware.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>

View File

@ -28,7 +28,6 @@
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/memory.h> #include <asm/memory.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <mach/hardware.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <linux/sizes.h> #include <linux/sizes.h>
@ -39,12 +38,13 @@
#include "pxa27x.h" #include "pxa27x.h"
#include "lpd270.h" #include "lpd270.h"
#include <mach/audio.h> #include "addr-map.h"
#include <linux/platform_data/asoc-pxa.h>
#include <linux/platform_data/video-pxafb.h> #include <linux/platform_data/video-pxafb.h>
#include <linux/platform_data/mmc-pxamci.h> #include <linux/platform_data/mmc-pxamci.h>
#include <linux/platform_data/irda-pxaficp.h> #include <linux/platform_data/irda-pxaficp.h>
#include <linux/platform_data/usb-ohci-pxa27x.h> #include <linux/platform_data/usb-ohci-pxa27x.h>
#include <mach/smemc.h> #include "smemc.h"
#include "generic.h" #include "generic.h"
#include "devices.h" #include "devices.h"

View File

@ -34,7 +34,6 @@
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/memory.h> #include <asm/memory.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <mach/hardware.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <linux/sizes.h> #include <linux/sizes.h>
@ -46,14 +45,14 @@
#include <asm/hardware/sa1111.h> #include <asm/hardware/sa1111.h>
#include "pxa25x.h" #include "pxa25x.h"
#include <mach/audio.h> #include <linux/platform_data/asoc-pxa.h>
#include <mach/lubbock.h> #include "lubbock.h"
#include "udc.h" #include "udc.h"
#include <linux/platform_data/irda-pxaficp.h> #include <linux/platform_data/irda-pxaficp.h>
#include <linux/platform_data/video-pxafb.h> #include <linux/platform_data/video-pxafb.h>
#include <linux/platform_data/mmc-pxamci.h> #include <linux/platform_data/mmc-pxamci.h>
#include "pm.h" #include "pm.h"
#include <mach/smemc.h> #include "smemc.h"
#include "generic.h" #include "generic.h"
#include "devices.h" #include "devices.h"
@ -132,6 +131,13 @@ static struct pxa2xx_udc_mach_info udc_info __initdata = {
// no D+ pullup; lubbock can't connect/disconnect in software // no D+ pullup; lubbock can't connect/disconnect in software
}; };
static struct resource lubbock_udc_resources[] = {
DEFINE_RES_MEM(0x40600000, 0x10000),
DEFINE_RES_IRQ(IRQ_USB),
DEFINE_RES_IRQ(LUBBOCK_USB_IRQ),
DEFINE_RES_IRQ(LUBBOCK_USB_DISC_IRQ),
};
/* GPIOs for SA1111 PCMCIA */ /* GPIOs for SA1111 PCMCIA */
static struct gpiod_lookup_table sa1111_pcmcia_gpio_table = { static struct gpiod_lookup_table sa1111_pcmcia_gpio_table = {
.dev_id = "1800", .dev_id = "1800",
@ -497,6 +503,9 @@ static void __init lubbock_init(void)
lubbock_init_pcmcia(); lubbock_init_pcmcia();
clk_add_alias("SA1111_CLK", NULL, "GPIO11_CLK", NULL); clk_add_alias("SA1111_CLK", NULL, "GPIO11_CLK", NULL);
/* lubbock has two extra IRQs */
pxa25x_device_udc.resource = lubbock_udc_resources;
pxa25x_device_udc.num_resources = ARRAY_SIZE(lubbock_udc_resources);
pxa_set_udc_info(&udc_info); pxa_set_udc_info(&udc_info);
pxa_set_fb_info(NULL, &sharp_lm8v31); pxa_set_fb_info(NULL, &sharp_lm8v31);
pxa_set_mci_info(&lubbock_mci_platform_data); pxa_set_mci_info(&lubbock_mci_platform_data);

View File

@ -1,13 +1,11 @@
/* SPDX-License-Identifier: GPL-2.0-only */ /* SPDX-License-Identifier: GPL-2.0-only */
/* /*
* arch/arm/mach-pxa/include/mach/lubbock.h
*
* Author: Nicolas Pitre * Author: Nicolas Pitre
* Created: Jun 15, 2001 * Created: Jun 15, 2001
* Copyright: MontaVista Software Inc. * Copyright: MontaVista Software Inc.
*/ */
#include <mach/irqs.h> #include "irqs.h"
#define LUBBOCK_ETH_PHYS PXA_CS3_PHYS #define LUBBOCK_ETH_PHYS PXA_CS3_PHYS

View File

@ -29,13 +29,13 @@
#include <linux/regulator/machine.h> #include <linux/regulator/machine.h>
#include <linux/platform_data/i2c-pxa.h> #include <linux/platform_data/i2c-pxa.h>
#include <mach/hardware.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/system_info.h> #include <asm/system_info.h>
#include "pxa27x.h" #include "pxa27x.h"
#include <mach/magician.h> #include "addr-map.h"
#include "magician.h"
#include <linux/platform_data/video-pxafb.h> #include <linux/platform_data/video-pxafb.h>
#include <linux/platform_data/mmc-pxamci.h> #include <linux/platform_data/mmc-pxamci.h>
#include <linux/platform_data/irda-pxaficp.h> #include <linux/platform_data/irda-pxaficp.h>
@ -53,6 +53,7 @@
#include <linux/spi/spi.h> #include <linux/spi/spi.h>
#include <linux/spi/pxa2xx_spi.h> #include <linux/spi/pxa2xx_spi.h>
#include <linux/spi/ads7846.h> #include <linux/spi/ads7846.h>
#include <sound/uda1380.h>
static unsigned long magician_pin_config[] __initdata = { static unsigned long magician_pin_config[] __initdata = {
@ -681,7 +682,7 @@ static struct platform_device bq24022 = {
static struct gpiod_lookup_table bq24022_gpiod_table = { static struct gpiod_lookup_table bq24022_gpiod_table = {
.dev_id = "gpio-regulator", .dev_id = "gpio-regulator",
.table = { .table = {
GPIO_LOOKUP("gpio-pxa", EGPIO_MAGICIAN_BQ24022_ISET2, GPIO_LOOKUP("htc-egpio-0", EGPIO_MAGICIAN_BQ24022_ISET2 - MAGICIAN_EGPIO_BASE,
NULL, GPIO_ACTIVE_HIGH), NULL, GPIO_ACTIVE_HIGH),
GPIO_LOOKUP("gpio-pxa", GPIO30_MAGICIAN_BQ24022_nCHARGE_EN, GPIO_LOOKUP("gpio-pxa", GPIO30_MAGICIAN_BQ24022_nCHARGE_EN,
"enable", GPIO_ACTIVE_LOW), "enable", GPIO_ACTIVE_LOW),
@ -898,6 +899,53 @@ static struct platform_device strataflash = {
}, },
}; };
/*
* audio support
*/
static struct uda1380_platform_data uda1380_info = {
.gpio_power = EGPIO_MAGICIAN_CODEC_POWER,
.gpio_reset = EGPIO_MAGICIAN_CODEC_RESET,
.dac_clk = UDA1380_DAC_CLK_WSPLL,
};
static struct i2c_board_info magician_audio_i2c_board_info[] = {
{
I2C_BOARD_INFO("uda1380", 0x18),
.platform_data = &uda1380_info,
},
};
static struct gpiod_lookup_table magician_audio_gpio_table = {
.dev_id = "magician-audio",
.table = {
GPIO_LOOKUP("htc-egpio-0",
EGPIO_MAGICIAN_SPK_POWER - MAGICIAN_EGPIO_BASE,
"SPK_POWER", GPIO_ACTIVE_HIGH),
GPIO_LOOKUP("htc-egpio-0",
EGPIO_MAGICIAN_EP_POWER - MAGICIAN_EGPIO_BASE,
"EP_POWER", GPIO_ACTIVE_HIGH),
GPIO_LOOKUP("htc-egpio-0",
EGPIO_MAGICIAN_MIC_POWER - MAGICIAN_EGPIO_BASE,
"MIC_POWER", GPIO_ACTIVE_HIGH),
GPIO_LOOKUP("htc-egpio-0",
EGPIO_MAGICIAN_IN_SEL0 - MAGICIAN_EGPIO_BASE,
"IN_SEL0", GPIO_ACTIVE_HIGH),
GPIO_LOOKUP("htc-egpio-0",
EGPIO_MAGICIAN_IN_SEL1 - MAGICIAN_EGPIO_BASE,
"IN_SEL1", GPIO_ACTIVE_HIGH),
{ },
},
};
static void magician_audio_init(void)
{
i2c_register_board_info(0,
ARRAY_AND_SIZE(magician_audio_i2c_board_info));
gpiod_add_lookup_table(&magician_audio_gpio_table);
platform_device_register_simple("magician-audio", -1, NULL, 0);
}
/* /*
* PXA I2C main controller * PXA I2C main controller
*/ */
@ -1048,6 +1096,8 @@ static void __init magician_init(void)
gpiod_add_lookup_table(&bq24022_gpiod_table); gpiod_add_lookup_table(&bq24022_gpiod_table);
gpiod_add_lookup_table(&gpio_vbus_gpiod_table); gpiod_add_lookup_table(&gpio_vbus_gpiod_table);
platform_add_devices(ARRAY_AND_SIZE(devices)); platform_add_devices(ARRAY_AND_SIZE(devices));
magician_audio_init();
} }
MACHINE_START(MAGICIAN, "HTC Magician") MACHINE_START(MAGICIAN, "HTC Magician")

View File

@ -9,7 +9,7 @@
#define _MAGICIAN_H_ #define _MAGICIAN_H_
#include <linux/gpio.h> #include <linux/gpio.h>
#include <mach/irqs.h> #include "irqs.h"
/* /*
* PXA GPIOs * PXA GPIOs

View File

@ -35,7 +35,6 @@
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/memory.h> #include <asm/memory.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <mach/hardware.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <linux/sizes.h> #include <linux/sizes.h>
@ -45,14 +44,15 @@
#include <asm/mach/flash.h> #include <asm/mach/flash.h>
#include "pxa27x.h" #include "pxa27x.h"
#include <mach/mainstone.h> #include "mainstone.h"
#include <mach/audio.h> #include <linux/platform_data/asoc-pxa.h>
#include <linux/platform_data/video-pxafb.h> #include <linux/platform_data/video-pxafb.h>
#include <linux/platform_data/mmc-pxamci.h> #include <linux/platform_data/mmc-pxamci.h>
#include <linux/platform_data/irda-pxaficp.h> #include <linux/platform_data/irda-pxaficp.h>
#include <linux/platform_data/usb-ohci-pxa27x.h> #include <linux/platform_data/usb-ohci-pxa27x.h>
#include <linux/platform_data/keypad-pxa27x.h> #include <linux/platform_data/keypad-pxa27x.h>
#include <mach/smemc.h> #include "addr-map.h"
#include "smemc.h"
#include "generic.h" #include "generic.h"
#include "devices.h" #include "devices.h"
@ -548,6 +548,14 @@ static struct gpiod_lookup_table mainstone_pcmcia_gpio_table = {
}, },
}; };
static struct gpiod_lookup_table mainstone_wm97xx_gpio_table = {
.dev_id = "wm97xx-touch",
.table = {
GPIO_LOOKUP("gpio-pxa", 4, "touch", GPIO_ACTIVE_HIGH),
{ },
},
};
static void __init mainstone_init(void) static void __init mainstone_init(void)
{ {
int SW7 = 0; /* FIXME: get from SCR (Mst doc section 3.2.1.1) */ int SW7 = 0; /* FIXME: get from SCR (Mst doc section 3.2.1.1) */
@ -562,6 +570,7 @@ static void __init mainstone_init(void)
"mst-pcmcia1", MST_PCMCIA_INPUTS, 0, NULL, "mst-pcmcia1", MST_PCMCIA_INPUTS, 0, NULL,
NULL, mst_pcmcia1_irqs); NULL, mst_pcmcia1_irqs);
gpiod_add_lookup_table(&mainstone_pcmcia_gpio_table); gpiod_add_lookup_table(&mainstone_pcmcia_gpio_table);
gpiod_add_lookup_table(&mainstone_wm97xx_gpio_table);
pxa_set_ffuart_info(NULL); pxa_set_ffuart_info(NULL);
pxa_set_btuart_info(NULL); pxa_set_btuart_info(NULL);

View File

@ -1,7 +1,5 @@
/* SPDX-License-Identifier: GPL-2.0-only */ /* SPDX-License-Identifier: GPL-2.0-only */
/* /*
* arch/arm/mach-pxa/include/mach/mainstone.h
*
* Author: Nicolas Pitre * Author: Nicolas Pitre
* Created: Nov 14, 2002 * Created: Nov 14, 2002
* Copyright: MontaVista Software Inc. * Copyright: MontaVista Software Inc.
@ -10,7 +8,7 @@
#ifndef ASM_ARCH_MAINSTONE_H #ifndef ASM_ARCH_MAINSTONE_H
#define ASM_ARCH_MAINSTONE_H #define ASM_ARCH_MAINSTONE_H
#include <mach/irqs.h> #include "irqs.h"
#define MST_ETH_PHYS PXA_CS4_PHYS #define MST_ETH_PHYS PXA_CS4_PHYS

View File

@ -16,8 +16,9 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/syscore_ops.h> #include <linux/syscore_ops.h>
#include <linux/soc/pxa/cpu.h>
#include <mach/pxa2xx-regs.h> #include "pxa2xx-regs.h"
#include "mfp-pxa2xx.h" #include "mfp-pxa2xx.h"
#include "generic.h" #include "generic.h"

View File

@ -2,7 +2,7 @@
#ifndef __ASM_ARCH_MFP_PXA2XX_H #ifndef __ASM_ARCH_MFP_PXA2XX_H
#define __ASM_ARCH_MFP_PXA2XX_H #define __ASM_ARCH_MFP_PXA2XX_H
#include <plat/mfp.h> #include <linux/soc/pxa/mfp.h>
/* /*
* the following MFP_xxx bit definitions in mfp.h are re-used for pxa2xx: * the following MFP_xxx bit definitions in mfp.h are re-used for pxa2xx:

View File

@ -16,9 +16,8 @@
#include <linux/io.h> #include <linux/io.h>
#include <linux/syscore_ops.h> #include <linux/syscore_ops.h>
#include <mach/hardware.h>
#include "mfp-pxa3xx.h" #include "mfp-pxa3xx.h"
#include <mach/pxa3xx-regs.h> #include "pxa3xx-regs.h"
#ifdef CONFIG_PM #ifdef CONFIG_PM
/* /*

View File

@ -2,7 +2,7 @@
#ifndef __ASM_ARCH_MFP_PXA3XX_H #ifndef __ASM_ARCH_MFP_PXA3XX_H
#define __ASM_ARCH_MFP_PXA3XX_H #define __ASM_ARCH_MFP_PXA3XX_H
#include <plat/mfp.h> #include <linux/soc/pxa/mfp.h>
#define MFPR_BASE (0x40e10000) #define MFPR_BASE (0x40e10000)

View File

@ -13,6 +13,6 @@
#ifndef __ASM_ARCH_MFP_H #ifndef __ASM_ARCH_MFP_H
#define __ASM_ARCH_MFP_H #define __ASM_ARCH_MFP_H
#include <plat/mfp.h> #include <linux/soc/pxa/mfp.h>
#endif /* __ASM_ARCH_MFP_H */ #endif /* __ASM_ARCH_MFP_H */

View File

@ -41,8 +41,8 @@
#include "udc.h" #include "udc.h"
#include "pxa27x-udc.h" #include "pxa27x-udc.h"
#include <linux/platform_data/media/camera-pxa.h> #include <linux/platform_data/media/camera-pxa.h>
#include <mach/audio.h> #include <linux/platform_data/asoc-pxa.h>
#include <mach/smemc.h> #include "smemc.h"
#include "mioa701.h" #include "mioa701.h"

View File

@ -26,6 +26,7 @@
#include <linux/platform_data/video-pxafb.h> #include <linux/platform_data/video-pxafb.h>
#include <linux/platform_data/mmc-pxamci.h> #include <linux/platform_data/mmc-pxamci.h>
#include <linux/platform_data/usb-ohci-pxa27x.h> #include <linux/platform_data/usb-ohci-pxa27x.h>
#include <linux/platform_data/asoc-pxa.h>
#include "pxa320.h" #include "pxa320.h"
#include "mxm8x10.h" #include "mxm8x10.h"
@ -356,14 +357,9 @@ void __init mxm_8x10_usb_host_init(void)
pxa_set_ohci_info(&mxm_8x10_ohci_platform_data); pxa_set_ohci_info(&mxm_8x10_ohci_platform_data);
} }
/* AC97 Sound Support */
static struct platform_device mxm_8x10_ac97_device = {
.name = "pxa2xx-ac97"
};
void __init mxm_8x10_ac97_init(void) void __init mxm_8x10_ac97_init(void)
{ {
platform_device_register(&mxm_8x10_ac97_device); pxa_set_ac97_info(NULL);
} }
/* NAND flash Support */ /* NAND flash Support */

View File

@ -25,7 +25,7 @@
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include "pxa27x.h" #include "pxa27x.h"
#include <mach/audio.h> #include <linux/platform_data/asoc-pxa.h>
#include <linux/platform_data/mmc-pxamci.h> #include <linux/platform_data/mmc-pxamci.h>
#include <linux/platform_data/video-pxafb.h> #include <linux/platform_data/video-pxafb.h>
#include <linux/platform_data/irda-pxaficp.h> #include <linux/platform_data/irda-pxaficp.h>

View File

@ -13,8 +13,9 @@
#include <linux/gpio.h> #include <linux/gpio.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <mach/palmld.h> #include <pcmcia/soc_common.h>
#include "soc_common.h"
#include "palmld.h"
static struct gpio palmld_pcmcia_gpios[] = { static struct gpio palmld_pcmcia_gpios[] = {
{ GPIO_NR_PALMLD_PCMCIA_POWER, GPIOF_INIT_LOW, "PCMCIA Power" }, { GPIO_NR_PALMLD_PCMCIA_POWER, GPIOF_INIT_LOW, "PCMCIA Power" },

Some files were not shown because too many files have changed in this diff Show More