Merge branches 'depends/rmk/io', 'depends/rmk/l2x0' and 'depends/rmk/gpio' into highbank/soc
This commit is contained in:
Коммит
36bc45e219
|
@ -0,0 +1,44 @@
|
|||
* ARM L2 Cache Controller
|
||||
|
||||
ARM cores often have a separate level 2 cache controller. There are various
|
||||
implementations of the L2 cache controller with compatible programming models.
|
||||
The ARM L2 cache representation in the device tree should be done as follows:
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : should be one of:
|
||||
"arm,pl310-cache"
|
||||
"arm,l220-cache"
|
||||
"arm,l210-cache"
|
||||
- cache-unified : Specifies the cache is a unified cache.
|
||||
- cache-level : Should be set to 2 for a level 2 cache.
|
||||
- reg : Physical base address and size of cache controller's memory mapped
|
||||
registers.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- arm,data-latency : Cycles of latency for Data RAM accesses. Specifies 3 cells of
|
||||
read, write and setup latencies. Minimum valid values are 1. Controllers
|
||||
without setup latency control should use a value of 0.
|
||||
- arm,tag-latency : Cycles of latency for Tag RAM accesses. Specifies 3 cells of
|
||||
read, write and setup latencies. Controllers without setup latency control
|
||||
should use 0. Controllers without separate read and write Tag RAM latency
|
||||
values should only use the first cell.
|
||||
- arm,dirty-latency : Cycles of latency for Dirty RAMs. This is a single cell.
|
||||
- arm,filter-ranges : <start length> Starting address and length of window to
|
||||
filter. Addresses in the filter window are directed to the M1 port. Other
|
||||
addresses will go to the M0 port.
|
||||
- interrupts : 1 combined interrupt.
|
||||
|
||||
Example:
|
||||
|
||||
L2: cache-controller {
|
||||
compatible = "arm,pl310-cache";
|
||||
reg = <0xfff12000 0x1000>;
|
||||
arm,data-latency = <1 1 1>;
|
||||
arm,tag-latency = <2 2 2>;
|
||||
arm,filter-latency = <0x80000000 0x8000000>;
|
||||
cache-unified;
|
||||
cache-level = <2>;
|
||||
interrupts = <45>;
|
||||
};
|
|
@ -835,6 +835,7 @@ config ARCH_U300
|
|||
select CLKDEV_LOOKUP
|
||||
select HAVE_MACH_CLKDEV
|
||||
select GENERIC_GPIO
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
help
|
||||
Support for ST-Ericsson U300 series mobile platforms.
|
||||
|
||||
|
|
|
@ -12,11 +12,11 @@
|
|||
*/
|
||||
|
||||
#include <linux/device.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
#include <asm/gpio.h>
|
||||
#include <asm/hardware/scoop.h>
|
||||
|
||||
/* PCMCIA to Scoop linkage
|
||||
|
|
|
@ -161,7 +161,6 @@ struct expansion_card {
|
|||
|
||||
/* Private internal data */
|
||||
const char *card_desc; /* Card description */
|
||||
CONST unsigned int podaddr; /* Base Linux address for card */
|
||||
CONST loader_t loader; /* loader program */
|
||||
u64 dma_mask;
|
||||
};
|
||||
|
|
|
@ -4,4 +4,23 @@
|
|||
/* not all ARM platforms necessarily support this API ... */
|
||||
#include <mach/gpio.h>
|
||||
|
||||
#ifndef __ARM_GPIOLIB_COMPLEX
|
||||
/* Note: this may rely upon the value of ARCH_NR_GPIOS set in mach/gpio.h */
|
||||
#include <asm-generic/gpio.h>
|
||||
|
||||
/* The trivial gpiolib dispatchers */
|
||||
#define gpio_get_value __gpio_get_value
|
||||
#define gpio_set_value __gpio_set_value
|
||||
#define gpio_cansleep __gpio_cansleep
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Provide a default gpio_to_irq() which should satisfy every case.
|
||||
* However, some platforms want to do this differently, so allow them
|
||||
* to override it.
|
||||
*/
|
||||
#ifndef gpio_to_irq
|
||||
#define gpio_to_irq __gpio_to_irq
|
||||
#endif
|
||||
|
||||
#endif /* _ARCH_ARM_GPIO_H */
|
||||
|
|
|
@ -52,6 +52,8 @@
|
|||
#define L2X0_LOCKDOWN_WAY_D_BASE 0x900
|
||||
#define L2X0_LOCKDOWN_WAY_I_BASE 0x904
|
||||
#define L2X0_LOCKDOWN_STRIDE 0x08
|
||||
#define L2X0_ADDR_FILTER_START 0xC00
|
||||
#define L2X0_ADDR_FILTER_END 0xC04
|
||||
#define L2X0_TEST_OPERATION 0xF00
|
||||
#define L2X0_LINE_DATA 0xF10
|
||||
#define L2X0_LINE_TAG 0xF30
|
||||
|
@ -65,8 +67,23 @@
|
|||
#define L2X0_CACHE_ID_PART_MASK (0xf << 6)
|
||||
#define L2X0_CACHE_ID_PART_L210 (1 << 6)
|
||||
#define L2X0_CACHE_ID_PART_L310 (3 << 6)
|
||||
#define L2X0_CACHE_ID_RTL_MASK 0x3f
|
||||
#define L2X0_CACHE_ID_RTL_R0P0 0x0
|
||||
#define L2X0_CACHE_ID_RTL_R1P0 0x2
|
||||
#define L2X0_CACHE_ID_RTL_R2P0 0x4
|
||||
#define L2X0_CACHE_ID_RTL_R3P0 0x5
|
||||
#define L2X0_CACHE_ID_RTL_R3P1 0x6
|
||||
#define L2X0_CACHE_ID_RTL_R3P2 0x8
|
||||
|
||||
#define L2X0_AUX_CTRL_MASK 0xc0000fff
|
||||
#define L2X0_AUX_CTRL_DATA_RD_LATENCY_SHIFT 0
|
||||
#define L2X0_AUX_CTRL_DATA_RD_LATENCY_MASK 0x7
|
||||
#define L2X0_AUX_CTRL_DATA_WR_LATENCY_SHIFT 3
|
||||
#define L2X0_AUX_CTRL_DATA_WR_LATENCY_MASK (0x7 << 3)
|
||||
#define L2X0_AUX_CTRL_TAG_LATENCY_SHIFT 6
|
||||
#define L2X0_AUX_CTRL_TAG_LATENCY_MASK (0x7 << 6)
|
||||
#define L2X0_AUX_CTRL_DIRTY_LATENCY_SHIFT 9
|
||||
#define L2X0_AUX_CTRL_DIRTY_LATENCY_MASK (0x7 << 9)
|
||||
#define L2X0_AUX_CTRL_ASSOCIATIVITY_SHIFT 16
|
||||
#define L2X0_AUX_CTRL_WAY_SIZE_SHIFT 17
|
||||
#define L2X0_AUX_CTRL_WAY_SIZE_MASK (0x7 << 17)
|
||||
|
@ -77,8 +94,33 @@
|
|||
#define L2X0_AUX_CTRL_INSTR_PREFETCH_SHIFT 29
|
||||
#define L2X0_AUX_CTRL_EARLY_BRESP_SHIFT 30
|
||||
|
||||
#define L2X0_LATENCY_CTRL_SETUP_SHIFT 0
|
||||
#define L2X0_LATENCY_CTRL_RD_SHIFT 4
|
||||
#define L2X0_LATENCY_CTRL_WR_SHIFT 8
|
||||
|
||||
#define L2X0_ADDR_FILTER_EN 1
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
extern void __init l2x0_init(void __iomem *base, __u32 aux_val, __u32 aux_mask);
|
||||
extern int l2x0_of_init(__u32 aux_val, __u32 aux_mask);
|
||||
|
||||
struct l2x0_regs {
|
||||
unsigned long phy_base;
|
||||
unsigned long aux_ctrl;
|
||||
/*
|
||||
* Whether the following registers need to be saved/restored
|
||||
* depends on platform
|
||||
*/
|
||||
unsigned long tag_latency;
|
||||
unsigned long data_latency;
|
||||
unsigned long filter_start;
|
||||
unsigned long filter_end;
|
||||
unsigned long prefetch_ctrl;
|
||||
unsigned long pwr_ctrl;
|
||||
};
|
||||
|
||||
extern struct l2x0_regs l2x0_saved_regs;
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -28,6 +28,8 @@
|
|||
#include <mach/hardware.h>
|
||||
#include <asm-generic/gpio.h>
|
||||
|
||||
#define __ARM_GPIOLIB_COMPLEX
|
||||
|
||||
#define IOP3XX_N_GPIOS 8
|
||||
|
||||
static inline int gpio_get_value(unsigned gpio)
|
||||
|
|
|
@ -109,6 +109,27 @@ static inline void __iomem *__typesafe_io(unsigned long addr)
|
|||
*/
|
||||
#include <mach/io.h>
|
||||
|
||||
/*
|
||||
* 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
|
||||
#define IO_SPACE_LIMIT ((resource_size_t)0)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* IO port access primitives
|
||||
* -------------------------
|
||||
|
|
|
@ -34,6 +34,7 @@ struct outer_cache_fns {
|
|||
void (*sync)(void);
|
||||
#endif
|
||||
void (*set_debug)(unsigned long);
|
||||
void (*resume)(void);
|
||||
};
|
||||
|
||||
#ifdef CONFIG_OUTER_CACHE
|
||||
|
@ -74,6 +75,12 @@ static inline void outer_disable(void)
|
|||
outer_cache.disable();
|
||||
}
|
||||
|
||||
static inline void outer_resume(void)
|
||||
{
|
||||
if (outer_cache.resume)
|
||||
outer_cache.resume();
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
static inline void outer_inv_range(phys_addr_t start, phys_addr_t end)
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include <asm/thread_info.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/procinfo.h>
|
||||
#include <asm/hardware/cache-l2x0.h>
|
||||
#include <linux/kbuild.h>
|
||||
|
||||
/*
|
||||
|
@ -92,6 +93,17 @@ int main(void)
|
|||
DEFINE(S_OLD_R0, offsetof(struct pt_regs, ARM_ORIG_r0));
|
||||
DEFINE(S_FRAME_SIZE, sizeof(struct pt_regs));
|
||||
BLANK();
|
||||
#ifdef CONFIG_CACHE_L2X0
|
||||
DEFINE(L2X0_R_PHY_BASE, offsetof(struct l2x0_regs, phy_base));
|
||||
DEFINE(L2X0_R_AUX_CTRL, offsetof(struct l2x0_regs, aux_ctrl));
|
||||
DEFINE(L2X0_R_TAG_LATENCY, offsetof(struct l2x0_regs, tag_latency));
|
||||
DEFINE(L2X0_R_DATA_LATENCY, offsetof(struct l2x0_regs, data_latency));
|
||||
DEFINE(L2X0_R_FILTER_START, offsetof(struct l2x0_regs, filter_start));
|
||||
DEFINE(L2X0_R_FILTER_END, offsetof(struct l2x0_regs, filter_end));
|
||||
DEFINE(L2X0_R_PREFETCH_CTRL, offsetof(struct l2x0_regs, prefetch_ctrl));
|
||||
DEFINE(L2X0_R_PWR_CTRL, offsetof(struct l2x0_regs, pwr_ctrl));
|
||||
BLANK();
|
||||
#endif
|
||||
#ifdef CONFIG_CPU_HAS_ASID
|
||||
DEFINE(MM_CONTEXT_ID, offsetof(struct mm_struct, context.id));
|
||||
BLANK();
|
||||
|
|
|
@ -237,7 +237,7 @@ static void ecard_init_pgtables(struct mm_struct *mm)
|
|||
|
||||
memcpy(dst_pgd, src_pgd, sizeof(pgd_t) * (IO_SIZE / PGDIR_SIZE));
|
||||
|
||||
src_pgd = pgd_offset(mm, EASI_BASE);
|
||||
src_pgd = pgd_offset(mm, (unsigned long)EASI_BASE);
|
||||
dst_pgd = pgd_offset(mm, EASI_START);
|
||||
|
||||
memcpy(dst_pgd, src_pgd, sizeof(pgd_t) * (EASI_SIZE / PGDIR_SIZE));
|
||||
|
@ -674,44 +674,37 @@ static int __init ecard_probeirqhw(void)
|
|||
#define ecard_probeirqhw() (0)
|
||||
#endif
|
||||
|
||||
#ifndef IO_EC_MEMC8_BASE
|
||||
#define IO_EC_MEMC8_BASE 0
|
||||
#endif
|
||||
|
||||
static unsigned int __ecard_address(ecard_t *ec, card_type_t type, card_speed_t speed)
|
||||
static void __iomem *__ecard_address(ecard_t *ec, card_type_t type, card_speed_t speed)
|
||||
{
|
||||
unsigned long address = 0;
|
||||
void __iomem *address = NULL;
|
||||
int slot = ec->slot_no;
|
||||
|
||||
if (ec->slot_no == 8)
|
||||
return IO_EC_MEMC8_BASE;
|
||||
return ECARD_MEMC8_BASE;
|
||||
|
||||
ectcr &= ~(1 << slot);
|
||||
|
||||
switch (type) {
|
||||
case ECARD_MEMC:
|
||||
if (slot < 4)
|
||||
address = IO_EC_MEMC_BASE + (slot << 12);
|
||||
address = ECARD_MEMC_BASE + (slot << 14);
|
||||
break;
|
||||
|
||||
case ECARD_IOC:
|
||||
if (slot < 4)
|
||||
address = IO_EC_IOC_BASE + (slot << 12);
|
||||
#ifdef IO_EC_IOC4_BASE
|
||||
address = ECARD_IOC_BASE + (slot << 14);
|
||||
else
|
||||
address = IO_EC_IOC4_BASE + ((slot - 4) << 12);
|
||||
#endif
|
||||
address = ECARD_IOC4_BASE + ((slot - 4) << 14);
|
||||
if (address)
|
||||
address += speed << 17;
|
||||
address += speed << 19;
|
||||
break;
|
||||
|
||||
#ifdef IO_EC_EASI_BASE
|
||||
case ECARD_EASI:
|
||||
address = IO_EC_EASI_BASE + (slot << 22);
|
||||
address = ECARD_EASI_BASE + (slot << 24);
|
||||
if (speed == ECARD_FAST)
|
||||
ectcr |= 1 << slot;
|
||||
break;
|
||||
#endif
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -990,6 +983,7 @@ ecard_probe(int slot, card_type_t type)
|
|||
ecard_t **ecp;
|
||||
ecard_t *ec;
|
||||
struct ex_ecid cid;
|
||||
void __iomem *addr;
|
||||
int i, rc;
|
||||
|
||||
ec = ecard_alloc_card(type, slot);
|
||||
|
@ -999,7 +993,7 @@ ecard_probe(int slot, card_type_t type)
|
|||
}
|
||||
|
||||
rc = -ENODEV;
|
||||
if ((ec->podaddr = __ecard_address(ec, type, ECARD_SYNC)) == 0)
|
||||
if ((addr = __ecard_address(ec, type, ECARD_SYNC)) == NULL)
|
||||
goto nodev;
|
||||
|
||||
cid.r_zero = 1;
|
||||
|
@ -1019,7 +1013,7 @@ ecard_probe(int slot, card_type_t type)
|
|||
ec->cid.fiqmask = cid.r_fiqmask;
|
||||
ec->cid.fiqoff = ecard_gets24(cid.r_fiqoff);
|
||||
ec->fiqaddr =
|
||||
ec->irqaddr = (void __iomem *)ioaddr(ec->podaddr);
|
||||
ec->irqaddr = addr;
|
||||
|
||||
if (ec->cid.is) {
|
||||
ec->irqmask = ec->cid.irqmask;
|
||||
|
@ -1048,10 +1042,8 @@ ecard_probe(int slot, card_type_t type)
|
|||
set_irq_flags(ec->irq, IRQF_VALID);
|
||||
}
|
||||
|
||||
#ifdef IO_EC_MEMC8_BASE
|
||||
if (slot == 8)
|
||||
ec->irq = 11;
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_RPC
|
||||
/* On RiscPC, only first two slots have DMA capability */
|
||||
if (slot < 2)
|
||||
|
@ -1097,9 +1089,7 @@ static int __init ecard_init(void)
|
|||
ecard_probe(slot, ECARD_IOC);
|
||||
}
|
||||
|
||||
#ifdef IO_EC_MEMC8_BASE
|
||||
ecard_probe(8, ECARD_IOC);
|
||||
#endif
|
||||
|
||||
irqhw = ecard_probeirqhw();
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/i2c-gpio.h>
|
||||
|
||||
|
@ -23,7 +24,6 @@
|
|||
|
||||
#include <mach/board.h>
|
||||
#include <mach/cpu.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91cap9.h>
|
||||
#include <mach/at91cap9_matrix.h>
|
||||
#include <mach/at91sam9_smc.h>
|
||||
|
|
|
@ -14,11 +14,11 @@
|
|||
#include <asm/mach/map.h>
|
||||
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/i2c-gpio.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91rm9200.h>
|
||||
#include <mach/at91rm9200_mc.h>
|
||||
|
||||
|
|
|
@ -13,11 +13,11 @@
|
|||
#include <asm/mach/map.h>
|
||||
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/i2c-gpio.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/cpu.h>
|
||||
#include <mach/at91sam9260.h>
|
||||
#include <mach/at91sam9260_matrix.h>
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include <asm/mach/map.h>
|
||||
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/i2c-gpio.h>
|
||||
|
||||
|
@ -21,7 +22,6 @@
|
|||
#include <video/atmel_lcdc.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91sam9261.h>
|
||||
#include <mach/at91sam9261_matrix.h>
|
||||
#include <mach/at91sam9_smc.h>
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include <asm/mach/map.h>
|
||||
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/i2c-gpio.h>
|
||||
|
||||
|
@ -20,7 +21,6 @@
|
|||
#include <video/atmel_lcdc.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91sam9263.h>
|
||||
#include <mach/at91sam9263_matrix.h>
|
||||
#include <mach/at91sam9_smc.h>
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include <asm/mach/map.h>
|
||||
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/i2c-gpio.h>
|
||||
#include <linux/atmel-mci.h>
|
||||
|
@ -21,7 +22,6 @@
|
|||
#include <video/atmel_lcdc.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91sam9g45.h>
|
||||
#include <mach/at91sam9g45_matrix.h>
|
||||
#include <mach/at91sam9_smc.h>
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include <asm/mach/map.h>
|
||||
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/i2c-gpio.h>
|
||||
|
||||
|
@ -17,7 +18,6 @@
|
|||
#include <video/atmel_lcdc.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91sam9rl.h>
|
||||
#include <mach/at91sam9rl_matrix.h>
|
||||
#include <mach/at91sam9_smc.h>
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -34,7 +35,6 @@
|
|||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/cpu.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -43,7 +44,6 @@
|
|||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -38,7 +39,6 @@
|
|||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91sam9_smc.h>
|
||||
|
||||
#include "sam9_smc.h"
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -41,7 +42,6 @@
|
|||
#include <asm/mach/map.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91cap9_matrix.h>
|
||||
#include <mach/at91sam9_smc.h>
|
||||
#include <mach/system_rev.h>
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -35,7 +36,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -40,7 +41,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91sam9_smc.h>
|
||||
#include <mach/at91sam9260_matrix.h>
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -36,7 +37,6 @@
|
|||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91rm9200_mc.h>
|
||||
#include <mach/cpu.h>
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -38,7 +39,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#include <linux/types.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
@ -35,7 +36,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -35,7 +36,6 @@
|
|||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -37,7 +38,6 @@
|
|||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/cpu.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -34,7 +35,6 @@
|
|||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/cpu.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -35,7 +36,6 @@
|
|||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/cpu.h>
|
||||
#include <mach/at91rm9200_mc.h>
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -44,7 +45,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91sam9_smc.h>
|
||||
|
||||
#include "sam9_smc.h"
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -37,7 +38,6 @@
|
|||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91rm9200_mc.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -40,7 +41,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91sam9_smc.h>
|
||||
#include <mach/at91_shdwc.h>
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -39,7 +40,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91rm9200_mc.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -39,7 +40,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91rm9200_mc.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -37,7 +38,6 @@
|
|||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91sam9_smc.h>
|
||||
|
||||
#include "sam9_smc.h"
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -41,7 +42,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91sam9_smc.h>
|
||||
#include <mach/at91_shdwc.h>
|
||||
#include <mach/system_rev.h>
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -45,7 +46,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91sam9_smc.h>
|
||||
#include <mach/at91_shdwc.h>
|
||||
#include <mach/system_rev.h>
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -44,7 +45,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91sam9_smc.h>
|
||||
#include <mach/at91_shdwc.h>
|
||||
#include <mach/system_rev.h>
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -41,7 +42,6 @@
|
|||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91sam9_smc.h>
|
||||
#include <mach/system_rev.h>
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -38,7 +39,6 @@
|
|||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91sam9_smc.h>
|
||||
#include <mach/at91_shdwc.h>
|
||||
#include <mach/system_rev.h>
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -30,7 +31,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91sam9_smc.h>
|
||||
#include <mach/at91_shdwc.h>
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -40,7 +41,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91sam9_smc.h>
|
||||
#include <mach/at91_shdwc.h>
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -39,7 +40,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91sam9_smc.h>
|
||||
#include <mach/at91_shdwc.h>
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -43,7 +44,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/at91rm9200_mc.h>
|
||||
#include <mach/cpu.h>
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
|
||||
#include <linux/clk.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/debugfs.h>
|
||||
|
@ -22,9 +23,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/at91_pio.h>
|
||||
#include <mach/gpio.h>
|
||||
|
||||
#include <asm/gpio.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
||||
|
|
|
@ -214,11 +214,6 @@ extern void at91_gpio_resume(void);
|
|||
*/
|
||||
|
||||
#include <asm/errno.h>
|
||||
#include <asm-generic/gpio.h> /* cansleep wrappers */
|
||||
|
||||
#define gpio_get_value __gpio_get_value
|
||||
#define gpio_set_value __gpio_set_value
|
||||
#define gpio_cansleep __gpio_cansleep
|
||||
|
||||
#define gpio_to_irq(gpio) (gpio)
|
||||
#define irq_to_gpio(irq) (irq)
|
||||
|
|
|
@ -9,13 +9,13 @@
|
|||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <mach/board.h>
|
||||
#include <mach/gpio.h>
|
||||
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
* (at your option) any later version.
|
||||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/suspend.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/proc_fs.h>
|
||||
|
@ -25,7 +26,6 @@
|
|||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/at91_pmc.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/cpu.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
# Common objects
|
||||
obj-y := time.o clock.o serial.o io.o psc.o \
|
||||
gpio.o dma.o usb.o common.o sram.o aemif.o
|
||||
dma.o usb.o common.o sram.o aemif.o
|
||||
|
||||
obj-$(CONFIG_DAVINCI_MUX) += mux.o
|
||||
|
||||
|
@ -17,7 +17,6 @@ obj-$(CONFIG_ARCH_DAVINCI_DM365) += dm365.o devices.o
|
|||
obj-$(CONFIG_ARCH_DAVINCI_DA830) += da830.o devices-da8xx.o
|
||||
obj-$(CONFIG_ARCH_DAVINCI_DA850) += da850.o devices-da8xx.o
|
||||
obj-$(CONFIG_ARCH_DAVINCI_TNETV107X) += tnetv107x.o devices-tnetv107x.o
|
||||
obj-$(CONFIG_ARCH_DAVINCI_TNETV107X) += gpio-tnetv107x.o
|
||||
|
||||
obj-$(CONFIG_AINTC) += irq.o
|
||||
obj-$(CONFIG_CP_INTC) += cp_intc.o
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
* is licensed "as is" without any warranty of any kind, whether express
|
||||
* or implied.
|
||||
*/
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/clk.h>
|
||||
|
||||
|
@ -19,7 +20,7 @@
|
|||
#include <mach/common.h>
|
||||
#include <mach/time.h>
|
||||
#include <mach/da8xx.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/gpio-davinci.h>
|
||||
|
||||
#include "clock.h"
|
||||
#include "mux.h"
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
* is licensed "as is" without any warranty of any kind, whether express
|
||||
* or implied.
|
||||
*/
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
@ -27,7 +28,7 @@
|
|||
#include <mach/da8xx.h>
|
||||
#include <mach/cpufreq.h>
|
||||
#include <mach/pm.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/gpio-davinci.h>
|
||||
|
||||
#include "clock.h"
|
||||
#include "mux.h"
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
#include <linux/serial_8250.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/gpio.h>
|
||||
|
||||
#include <linux/spi/spi.h>
|
||||
|
||||
|
@ -30,6 +29,7 @@
|
|||
#include <mach/common.h>
|
||||
#include <mach/asp.h>
|
||||
#include <mach/spi.h>
|
||||
#include <mach/gpio-davinci.h>
|
||||
|
||||
#include "clock.h"
|
||||
#include "mux.h"
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
#include <linux/serial_8250.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/spi/spi.h>
|
||||
|
||||
#include <asm/mach/map.h>
|
||||
|
@ -34,7 +33,7 @@
|
|||
#include <mach/asp.h>
|
||||
#include <mach/keyscan.h>
|
||||
#include <mach/spi.h>
|
||||
|
||||
#include <mach/gpio-davinci.h>
|
||||
|
||||
#include "clock.h"
|
||||
#include "mux.h"
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#include <linux/clk.h>
|
||||
#include <linux/serial_8250.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/gpio.h>
|
||||
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
|
@ -26,6 +25,7 @@
|
|||
#include <mach/serial.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/asp.h>
|
||||
#include <mach/gpio-davinci.h>
|
||||
|
||||
#include "clock.h"
|
||||
#include "mux.h"
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
#include <linux/clk.h>
|
||||
#include <linux/serial_8250.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/gpio.h>
|
||||
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
|
@ -27,6 +26,7 @@
|
|||
#include <mach/serial.h>
|
||||
#include <mach/common.h>
|
||||
#include <mach/asp.h>
|
||||
#include <mach/gpio-davinci.h>
|
||||
|
||||
#include "clock.h"
|
||||
#include "mux.h"
|
||||
|
|
|
@ -0,0 +1,91 @@
|
|||
/*
|
||||
* TI DaVinci GPIO Support
|
||||
*
|
||||
* Copyright (c) 2006 David Brownell
|
||||
* Copyright (c) 2007, MontaVista Software, Inc. <source@mvista.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef __DAVINCI_DAVINCI_GPIO_H
|
||||
#define __DAVINCI_DAVINCI_GPIO_H
|
||||
|
||||
#include <linux/io.h>
|
||||
#include <linux/spinlock.h>
|
||||
|
||||
#include <asm-generic/gpio.h>
|
||||
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/common.h>
|
||||
|
||||
#define DAVINCI_GPIO_BASE 0x01C67000
|
||||
|
||||
enum davinci_gpio_type {
|
||||
GPIO_TYPE_DAVINCI = 0,
|
||||
GPIO_TYPE_TNETV107X,
|
||||
};
|
||||
|
||||
/*
|
||||
* basic gpio routines
|
||||
*
|
||||
* board-specific init should be done by arch/.../.../board-XXX.c (maybe
|
||||
* initializing banks together) rather than boot loaders; kexec() won't
|
||||
* go through boot loaders.
|
||||
*
|
||||
* the gpio clock will be turned on when gpios are used, and you may also
|
||||
* need to pay attention to PINMUX registers to be sure those pins are
|
||||
* used as gpios, not with other peripherals.
|
||||
*
|
||||
* On-chip GPIOs are numbered 0..(DAVINCI_N_GPIO-1). For documentation,
|
||||
* and maybe for later updates, code may write GPIO(N). These may be
|
||||
* all 1.8V signals, all 3.3V ones, or a mix of the two. A given chip
|
||||
* may not support all the GPIOs in that range.
|
||||
*
|
||||
* GPIOs can also be on external chips, numbered after the ones built-in
|
||||
* to the DaVinci chip. For now, they won't be usable as IRQ sources.
|
||||
*/
|
||||
#define GPIO(X) (X) /* 0 <= X <= (DAVINCI_N_GPIO - 1) */
|
||||
|
||||
/* Convert GPIO signal to GPIO pin number */
|
||||
#define GPIO_TO_PIN(bank, gpio) (16 * (bank) + (gpio))
|
||||
|
||||
struct davinci_gpio_controller {
|
||||
struct gpio_chip chip;
|
||||
int irq_base;
|
||||
spinlock_t lock;
|
||||
void __iomem *regs;
|
||||
void __iomem *set_data;
|
||||
void __iomem *clr_data;
|
||||
void __iomem *in_data;
|
||||
};
|
||||
|
||||
/* The __gpio_to_controller() and __gpio_mask() functions inline to constants
|
||||
* with constant parameters; or in outlined code they execute at runtime.
|
||||
*
|
||||
* You'd access the controller directly when reading or writing more than
|
||||
* one gpio value at a time, and to support wired logic where the value
|
||||
* being driven by the cpu need not match the value read back.
|
||||
*
|
||||
* These are NOT part of the cross-platform GPIO interface
|
||||
*/
|
||||
static inline struct davinci_gpio_controller *
|
||||
__gpio_to_controller(unsigned gpio)
|
||||
{
|
||||
struct davinci_gpio_controller *ctlrs = davinci_soc_info.gpio_ctlrs;
|
||||
int index = gpio / 32;
|
||||
|
||||
if (!ctlrs || index >= davinci_soc_info.gpio_ctlrs_num)
|
||||
return NULL;
|
||||
|
||||
return ctlrs + index;
|
||||
}
|
||||
|
||||
static inline u32 __gpio_mask(unsigned gpio)
|
||||
{
|
||||
return 1 << (gpio % 32);
|
||||
}
|
||||
|
||||
#endif /* __DAVINCI_DAVINCI_GPIO_H */
|
|
@ -13,80 +13,10 @@
|
|||
#ifndef __DAVINCI_GPIO_H
|
||||
#define __DAVINCI_GPIO_H
|
||||
|
||||
#include <linux/io.h>
|
||||
#include <linux/spinlock.h>
|
||||
|
||||
#include <asm-generic/gpio.h>
|
||||
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/common.h>
|
||||
|
||||
#define DAVINCI_GPIO_BASE 0x01C67000
|
||||
|
||||
enum davinci_gpio_type {
|
||||
GPIO_TYPE_DAVINCI = 0,
|
||||
GPIO_TYPE_TNETV107X,
|
||||
};
|
||||
|
||||
/*
|
||||
* basic gpio routines
|
||||
*
|
||||
* board-specific init should be done by arch/.../.../board-XXX.c (maybe
|
||||
* initializing banks together) rather than boot loaders; kexec() won't
|
||||
* go through boot loaders.
|
||||
*
|
||||
* the gpio clock will be turned on when gpios are used, and you may also
|
||||
* need to pay attention to PINMUX registers to be sure those pins are
|
||||
* used as gpios, not with other peripherals.
|
||||
*
|
||||
* On-chip GPIOs are numbered 0..(DAVINCI_N_GPIO-1). For documentation,
|
||||
* and maybe for later updates, code may write GPIO(N). These may be
|
||||
* all 1.8V signals, all 3.3V ones, or a mix of the two. A given chip
|
||||
* may not support all the GPIOs in that range.
|
||||
*
|
||||
* GPIOs can also be on external chips, numbered after the ones built-in
|
||||
* to the DaVinci chip. For now, they won't be usable as IRQ sources.
|
||||
*/
|
||||
#define GPIO(X) (X) /* 0 <= X <= (DAVINCI_N_GPIO - 1) */
|
||||
|
||||
/* Convert GPIO signal to GPIO pin number */
|
||||
#define GPIO_TO_PIN(bank, gpio) (16 * (bank) + (gpio))
|
||||
|
||||
struct davinci_gpio_controller {
|
||||
struct gpio_chip chip;
|
||||
int irq_base;
|
||||
spinlock_t lock;
|
||||
void __iomem *regs;
|
||||
void __iomem *set_data;
|
||||
void __iomem *clr_data;
|
||||
void __iomem *in_data;
|
||||
};
|
||||
|
||||
/* The __gpio_to_controller() and __gpio_mask() functions inline to constants
|
||||
* with constant parameters; or in outlined code they execute at runtime.
|
||||
*
|
||||
* You'd access the controller directly when reading or writing more than
|
||||
* one gpio value at a time, and to support wired logic where the value
|
||||
* being driven by the cpu need not match the value read back.
|
||||
*
|
||||
* These are NOT part of the cross-platform GPIO interface
|
||||
*/
|
||||
static inline struct davinci_gpio_controller *
|
||||
__gpio_to_controller(unsigned gpio)
|
||||
{
|
||||
struct davinci_gpio_controller *ctlrs = davinci_soc_info.gpio_ctlrs;
|
||||
int index = gpio / 32;
|
||||
|
||||
if (!ctlrs || index >= davinci_soc_info.gpio_ctlrs_num)
|
||||
return NULL;
|
||||
|
||||
return ctlrs + index;
|
||||
}
|
||||
|
||||
static inline u32 __gpio_mask(unsigned gpio)
|
||||
{
|
||||
return 1 << (gpio % 32);
|
||||
}
|
||||
/* The inline versions use the static inlines in the driver header */
|
||||
#include "gpio-davinci.h"
|
||||
|
||||
/*
|
||||
* The get/set/clear functions will inline when called with constant
|
||||
|
@ -147,11 +77,6 @@ static inline int gpio_cansleep(unsigned gpio)
|
|||
return __gpio_cansleep(gpio);
|
||||
}
|
||||
|
||||
static inline int gpio_to_irq(unsigned gpio)
|
||||
{
|
||||
return __gpio_to_irq(gpio);
|
||||
}
|
||||
|
||||
static inline int irq_to_gpio(unsigned irq)
|
||||
{
|
||||
/* don't support the reverse mapping */
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/clk.h>
|
||||
|
@ -27,9 +28,9 @@
|
|||
#include <mach/psc.h>
|
||||
#include <mach/cp_intc.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/tnetv107x.h>
|
||||
#include <mach/gpio-davinci.h>
|
||||
|
||||
#include "clock.h"
|
||||
#include "mux.h"
|
||||
|
|
|
@ -13,8 +13,6 @@
|
|||
#ifndef __ASM_ARM_ARCH_IO_H
|
||||
#define __ASM_ARM_ARCH_IO_H
|
||||
|
||||
#define IO_SPACE_LIMIT 0xffff
|
||||
|
||||
u8 __inb8(unsigned int port);
|
||||
void __outb8(u8 val, unsigned int port);
|
||||
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
#include <mach/fb.h>
|
||||
#include <mach/ep93xx_keypad.h>
|
||||
#include <mach/ep93xx_spi.h>
|
||||
#include <mach/gpio-ep93xx.h>
|
||||
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/time.h>
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
#include <mach/hardware.h>
|
||||
#include <mach/fb.h>
|
||||
#include <mach/ep93xx_spi.h>
|
||||
#include <mach/gpio-ep93xx.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
/*
|
||||
* arch/arm/mach-ep93xx/include/mach/gpio.h
|
||||
*/
|
||||
/* Include file for the EP93XX GPIO controller machine specifics */
|
||||
|
||||
#ifndef __ASM_ARCH_GPIO_H
|
||||
#define __ASM_ARCH_GPIO_H
|
||||
#ifndef __GPIO_EP93XX_H
|
||||
#define __GPIO_EP93XX_H
|
||||
|
||||
/* GPIO port A. */
|
||||
#define EP93XX_GPIO_LINE_A(x) ((x) + 0)
|
||||
|
@ -99,22 +97,4 @@
|
|||
/* maximum value for irq capable line identifiers */
|
||||
#define EP93XX_GPIO_LINE_MAX_IRQ EP93XX_GPIO_LINE_F(7)
|
||||
|
||||
/* new generic GPIO API - see Documentation/gpio.txt */
|
||||
|
||||
#include <asm-generic/gpio.h>
|
||||
|
||||
#define gpio_get_value __gpio_get_value
|
||||
#define gpio_set_value __gpio_set_value
|
||||
#define gpio_cansleep __gpio_cansleep
|
||||
|
||||
/*
|
||||
* Map GPIO A0..A7 (0..7) to irq 64..71,
|
||||
* B0..B7 (7..15) to irq 72..79, and
|
||||
* F0..F7 (16..24) to irq 80..87.
|
||||
*/
|
||||
#define gpio_to_irq(gpio) \
|
||||
(((gpio) <= EP93XX_GPIO_LINE_MAX_IRQ) ? (64 + (gpio)) : -EINVAL)
|
||||
|
||||
#define irq_to_gpio(irq) ((irq) - gpio_to_irq(0))
|
||||
|
||||
#endif
|
||||
#endif /* __GPIO_EP93XX_H */
|
|
@ -18,12 +18,12 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-gpio.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/fb.h>
|
||||
#include <mach/gpio-ep93xx.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/i2c-gpio.h>
|
||||
#include <linux/fb.h>
|
||||
|
@ -30,6 +29,7 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/fb.h>
|
||||
#include <mach/gpio-ep93xx.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
|
|
@ -13,11 +13,6 @@
|
|||
#ifndef __ASM_ARCH_GPIO_H
|
||||
#define __ASM_ARCH_GPIO_H __FILE__
|
||||
|
||||
#define gpio_get_value __gpio_get_value
|
||||
#define gpio_set_value __gpio_set_value
|
||||
#define gpio_cansleep __gpio_cansleep
|
||||
#define gpio_to_irq __gpio_to_irq
|
||||
|
||||
/* Practically, GPIO banks up to GPZ are the configurable gpio banks */
|
||||
|
||||
/* GPIO bank sizes */
|
||||
|
@ -151,6 +146,4 @@ enum s5p_gpio_number {
|
|||
#define ARCH_NR_GPIOS (EXYNOS4_GPZ(EXYNOS4_GPIO_Z_NR) + \
|
||||
CONFIG_SAMSUNG_GPIO_EXTRA + 1)
|
||||
|
||||
#include <asm-generic/gpio.h>
|
||||
|
||||
#endif /* __ASM_ARCH_GPIO_H */
|
||||
|
|
|
@ -23,8 +23,6 @@
|
|||
#define PCIO_SIZE 0x00100000
|
||||
#define PCIO_BASE MMU_IO(0xff000000, 0x7c000000)
|
||||
|
||||
#define IO_SPACE_LIMIT 0xffff
|
||||
|
||||
/*
|
||||
* Translation of various region addresses to virtual addresses
|
||||
*/
|
||||
|
|
|
@ -13,11 +13,6 @@
|
|||
#define __MACH_GPIO_H__
|
||||
|
||||
#include <mach/irqs.h>
|
||||
#include <asm-generic/gpio.h>
|
||||
|
||||
#define gpio_get_value __gpio_get_value
|
||||
#define gpio_set_value __gpio_set_value
|
||||
#define gpio_cansleep __gpio_cansleep
|
||||
|
||||
#define gpio_to_irq(x) ((x) + GPIO_IRQ_BASE)
|
||||
#define irq_to_gpio(x) ((x) - GPIO_IRQ_BASE)
|
||||
|
|
|
@ -17,13 +17,12 @@
|
|||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
* MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/iomux-mx3.h>
|
||||
|
||||
/*
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/map.h>
|
||||
|
@ -27,7 +27,6 @@
|
|||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/time.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/iomux-mx27.h>
|
||||
|
||||
#include "devices-imx27.h"
|
||||
|
|
|
@ -20,8 +20,6 @@
|
|||
#ifndef __ASM_ARM_ARCH_IO_H
|
||||
#define __ASM_ARM_ARCH_IO_H
|
||||
|
||||
#define IO_SPACE_LIMIT 0xffff
|
||||
|
||||
/*
|
||||
* WARNING: this has to mirror definitions in platform.h
|
||||
*/
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
* License version 2. This program is licensed "as is" without any
|
||||
* warranty of any kind, whether express or implied.
|
||||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/spinlock.h>
|
||||
|
@ -39,7 +39,7 @@
|
|||
#include <asm/mach/time.h>
|
||||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/gpio-ixp2000.h>
|
||||
|
||||
static DEFINE_SPINLOCK(ixp2000_slowport_lock);
|
||||
static unsigned long ixp2000_slowport_irq_flags;
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*/
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
|
@ -40,8 +41,7 @@
|
|||
#include <asm/mach/flash.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
#include <mach/gpio.h>
|
||||
|
||||
#include <mach/gpio-ixp2000.h>
|
||||
|
||||
/*************************************************************************
|
||||
* IXDP2x00 IRQ Initialization
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
* Author: Rod Whitby <rod@whitby.id.au>
|
||||
* Maintainers: http://www.nslu2-linux.org/
|
||||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/timer.h>
|
||||
|
@ -31,7 +31,6 @@
|
|||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/flash.h>
|
||||
#include <asm/mach/time.h>
|
||||
#include <asm/gpio.h>
|
||||
|
||||
#define DSMG600_SDA_PIN 5
|
||||
#define DSMG600_SCL_PIN 4
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
* Maintainers: http://www.nslu2-linux.org/
|
||||
*
|
||||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/if_ether.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/serial.h>
|
||||
|
@ -27,7 +27,6 @@
|
|||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/flash.h>
|
||||
#include <asm/gpio.h>
|
||||
|
||||
#define FSG_SDA_PIN 12
|
||||
#define FSG_SCL_PIN 13
|
||||
|
|
|
@ -28,6 +28,8 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <mach/hardware.h>
|
||||
|
||||
#define __ARM_GPIOLIB_COMPLEX
|
||||
|
||||
static inline int gpio_request(unsigned gpio, const char *label)
|
||||
{
|
||||
return 0;
|
||||
|
@ -70,6 +72,7 @@ static inline void gpio_set_value(unsigned gpio, int value)
|
|||
#include <asm-generic/gpio.h> /* cansleep wrappers */
|
||||
|
||||
extern int gpio_to_irq(int gpio);
|
||||
#define gpio_to_irq gpio_to_irq
|
||||
extern int irq_to_gpio(unsigned int irq);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -17,8 +17,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
|
||||
#define IO_SPACE_LIMIT 0x0000ffff
|
||||
|
||||
extern int (*ixp4xx_pci_read)(u32 addr, u32 cmd, u32* data);
|
||||
extern int ixp4xx_pci_write(u32 addr, u32 cmd, u32 data);
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
* Maintainers: http://www.nslu2-linux.org/
|
||||
*
|
||||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/if_ether.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/jiffies.h>
|
||||
|
@ -32,7 +32,6 @@
|
|||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/flash.h>
|
||||
#include <asm/gpio.h>
|
||||
|
||||
#define NAS100D_SDA_PIN 5
|
||||
#define NAS100D_SCL_PIN 6
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
* Maintainers: http://www.nslu2-linux.org/
|
||||
*
|
||||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/if_ether.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/serial.h>
|
||||
|
@ -30,7 +30,6 @@
|
|||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/flash.h>
|
||||
#include <asm/mach/time.h>
|
||||
#include <asm/gpio.h>
|
||||
|
||||
#define NSLU2_SDA_PIN 7
|
||||
#define NSLU2_SCL_PIN 6
|
||||
|
|
|
@ -7,14 +7,13 @@
|
|||
* License version 2. This program is licensed "as is" without any
|
||||
* warranty of any kind, whether express or implied.
|
||||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/io.h>
|
||||
#include <mach/bridge-regs.h>
|
||||
#include <plat/irq.h>
|
||||
#include <asm/gpio.h>
|
||||
#include "common.h"
|
||||
|
||||
static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
|
||||
|
|
|
@ -7,12 +7,11 @@
|
|||
* License version 2. This program is licensed "as is" without any
|
||||
* warranty of any kind, whether express or implied.
|
||||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/mbus.h>
|
||||
#include <linux/io.h>
|
||||
#include <asm/gpio.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <plat/mpp.h>
|
||||
#include "common.h"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# Makefile for KS8695 architecture support
|
||||
#
|
||||
|
||||
obj-y := cpu.o irq.o time.o gpio.o devices.o
|
||||
obj-y := cpu.o irq.o time.o devices.o
|
||||
obj-m :=
|
||||
obj-n :=
|
||||
obj- :=
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/interrupt.h>
|
||||
|
@ -34,7 +34,7 @@
|
|||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/devices.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/gpio-ks8695.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/interrupt.h>
|
||||
|
@ -29,7 +29,7 @@
|
|||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/devices.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/gpio-ks8695.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/interrupt.h>
|
||||
|
@ -18,7 +18,7 @@
|
|||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/gpio-ks8695.h>
|
||||
#include <mach/devices.h>
|
||||
|
||||
#include "generic.h"
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <mach/irqs.h>
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
/*
|
||||
* Copyright (C) 2006 Andrew Victor
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef __MACH_KS8659_GPIO_H
|
||||
#define __MACH_KS8659_GPIO_H
|
||||
|
||||
#include <linux/kernel.h>
|
||||
|
||||
#define KS8695_GPIO_0 0
|
||||
#define KS8695_GPIO_1 1
|
||||
#define KS8695_GPIO_2 2
|
||||
#define KS8695_GPIO_3 3
|
||||
#define KS8695_GPIO_4 4
|
||||
#define KS8695_GPIO_5 5
|
||||
#define KS8695_GPIO_6 6
|
||||
#define KS8695_GPIO_7 7
|
||||
#define KS8695_GPIO_8 8
|
||||
#define KS8695_GPIO_9 9
|
||||
#define KS8695_GPIO_10 10
|
||||
#define KS8695_GPIO_11 11
|
||||
#define KS8695_GPIO_12 12
|
||||
#define KS8695_GPIO_13 13
|
||||
#define KS8695_GPIO_14 14
|
||||
#define KS8695_GPIO_15 15
|
||||
|
||||
/*
|
||||
* Configure GPIO pin as external interrupt source.
|
||||
*/
|
||||
extern int ks8695_gpio_interrupt(unsigned int pin, unsigned int type);
|
||||
|
||||
/* Register the GPIOs */
|
||||
extern void ks8695_register_gpios(void);
|
||||
|
||||
#endif /* __MACH_KS8659_GPIO_H */
|
|
@ -11,47 +11,9 @@
|
|||
#ifndef __ASM_ARCH_GPIO_H_
|
||||
#define __ASM_ARCH_GPIO_H_
|
||||
|
||||
#include <linux/kernel.h>
|
||||
|
||||
#define KS8695_GPIO_0 0
|
||||
#define KS8695_GPIO_1 1
|
||||
#define KS8695_GPIO_2 2
|
||||
#define KS8695_GPIO_3 3
|
||||
#define KS8695_GPIO_4 4
|
||||
#define KS8695_GPIO_5 5
|
||||
#define KS8695_GPIO_6 6
|
||||
#define KS8695_GPIO_7 7
|
||||
#define KS8695_GPIO_8 8
|
||||
#define KS8695_GPIO_9 9
|
||||
#define KS8695_GPIO_10 10
|
||||
#define KS8695_GPIO_11 11
|
||||
#define KS8695_GPIO_12 12
|
||||
#define KS8695_GPIO_13 13
|
||||
#define KS8695_GPIO_14 14
|
||||
#define KS8695_GPIO_15 15
|
||||
|
||||
/*
|
||||
* Configure GPIO pin as external interrupt source.
|
||||
*/
|
||||
extern int ks8695_gpio_interrupt(unsigned int pin, unsigned int type);
|
||||
|
||||
/*
|
||||
* Map IRQ number to GPIO line.
|
||||
*/
|
||||
extern int irq_to_gpio(unsigned int irq);
|
||||
|
||||
#include <asm-generic/gpio.h>
|
||||
|
||||
/* If it turns out that we need to optimise GPIO access for the
|
||||
* Micrel's GPIOs, then these can be changed to check their argument
|
||||
* directly as static inlines. However for now it's probably not
|
||||
* worthwhile.
|
||||
*/
|
||||
#define gpio_get_value __gpio_get_value
|
||||
#define gpio_set_value __gpio_set_value
|
||||
#define gpio_to_irq __gpio_to_irq
|
||||
|
||||
/* Register the GPIOs */
|
||||
extern void ks8695_register_gpios(void);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -7,14 +7,14 @@
|
|||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/gpio.h>
|
||||
|
||||
#include <asm/leds.h>
|
||||
#include <mach/devices.h>
|
||||
#include <mach/gpio.h>
|
||||
|
||||
|
||||
static inline void ks8695_led_on(unsigned int led)
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
#
|
||||
|
||||
obj-y := timer.o irq.o common.o serial.o clock.o
|
||||
obj-y += gpiolib.o pm.o suspend.o
|
||||
obj-y += pm.o suspend.o
|
||||
obj-y += phy3250.o
|
||||
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
* Author: Kevin Wells <kevin.wells@nxp.com>
|
||||
*
|
||||
* Copyright (C) 2010 NXP Semiconductors
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef __MACH_GPIO_LPC32XX_H
|
||||
#define __MACH_GPIO_LPC32XX_H
|
||||
|
||||
/*
|
||||
* Note!
|
||||
* Muxed GP pins need to be setup to the GP state in the board level
|
||||
* code prior to using this driver.
|
||||
* GPI pins : 28xP3 group
|
||||
* GPO pins : 24xP3 group
|
||||
* GPIO pins: 8xP0 group, 24xP1 group, 13xP2 group, 6xP3 group
|
||||
*/
|
||||
|
||||
#define LPC32XX_GPIO_P0_MAX 8
|
||||
#define LPC32XX_GPIO_P1_MAX 24
|
||||
#define LPC32XX_GPIO_P2_MAX 13
|
||||
#define LPC32XX_GPIO_P3_MAX 6
|
||||
#define LPC32XX_GPI_P3_MAX 28
|
||||
#define LPC32XX_GPO_P3_MAX 24
|
||||
|
||||
#define LPC32XX_GPIO_P0_GRP 0
|
||||
#define LPC32XX_GPIO_P1_GRP (LPC32XX_GPIO_P0_GRP + LPC32XX_GPIO_P0_MAX)
|
||||
#define LPC32XX_GPIO_P2_GRP (LPC32XX_GPIO_P1_GRP + LPC32XX_GPIO_P1_MAX)
|
||||
#define LPC32XX_GPIO_P3_GRP (LPC32XX_GPIO_P2_GRP + LPC32XX_GPIO_P2_MAX)
|
||||
#define LPC32XX_GPI_P3_GRP (LPC32XX_GPIO_P3_GRP + LPC32XX_GPIO_P3_MAX)
|
||||
#define LPC32XX_GPO_P3_GRP (LPC32XX_GPI_P3_GRP + LPC32XX_GPI_P3_MAX)
|
||||
|
||||
/*
|
||||
* A specific GPIO can be selected with this macro
|
||||
* ie, GPIO_05 can be selected with LPC32XX_GPIO(LPC32XX_GPIO_P3_GRP, 5)
|
||||
* See the LPC32x0 User's guide for GPIO group numbers
|
||||
*/
|
||||
#define LPC32XX_GPIO(x, y) ((x) + (y))
|
||||
|
||||
#endif /* __MACH_GPIO_LPC32XX_H */
|
|
@ -1,74 +0,0 @@
|
|||
/*
|
||||
* arch/arm/mach-lpc32xx/include/mach/gpio.h
|
||||
*
|
||||
* Author: Kevin Wells <kevin.wells@nxp.com>
|
||||
*
|
||||
* Copyright (C) 2010 NXP Semiconductors
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_GPIO_H
|
||||
#define __ASM_ARCH_GPIO_H
|
||||
|
||||
#include <asm-generic/gpio.h>
|
||||
|
||||
/*
|
||||
* Note!
|
||||
* Muxed GP pins need to be setup to the GP state in the board level
|
||||
* code prior to using this driver.
|
||||
* GPI pins : 28xP3 group
|
||||
* GPO pins : 24xP3 group
|
||||
* GPIO pins: 8xP0 group, 24xP1 group, 13xP2 group, 6xP3 group
|
||||
*/
|
||||
|
||||
#define LPC32XX_GPIO_P0_MAX 8
|
||||
#define LPC32XX_GPIO_P1_MAX 24
|
||||
#define LPC32XX_GPIO_P2_MAX 13
|
||||
#define LPC32XX_GPIO_P3_MAX 6
|
||||
#define LPC32XX_GPI_P3_MAX 28
|
||||
#define LPC32XX_GPO_P3_MAX 24
|
||||
|
||||
#define LPC32XX_GPIO_P0_GRP 0
|
||||
#define LPC32XX_GPIO_P1_GRP (LPC32XX_GPIO_P0_GRP + LPC32XX_GPIO_P0_MAX)
|
||||
#define LPC32XX_GPIO_P2_GRP (LPC32XX_GPIO_P1_GRP + LPC32XX_GPIO_P1_MAX)
|
||||
#define LPC32XX_GPIO_P3_GRP (LPC32XX_GPIO_P2_GRP + LPC32XX_GPIO_P2_MAX)
|
||||
#define LPC32XX_GPI_P3_GRP (LPC32XX_GPIO_P3_GRP + LPC32XX_GPIO_P3_MAX)
|
||||
#define LPC32XX_GPO_P3_GRP (LPC32XX_GPI_P3_GRP + LPC32XX_GPI_P3_MAX)
|
||||
|
||||
/*
|
||||
* A specific GPIO can be selected with this macro
|
||||
* ie, GPIO_05 can be selected with LPC32XX_GPIO(LPC32XX_GPIO_P3_GRP, 5)
|
||||
* See the LPC32x0 User's guide for GPIO group numbers
|
||||
*/
|
||||
#define LPC32XX_GPIO(x, y) ((x) + (y))
|
||||
|
||||
static inline int gpio_get_value(unsigned gpio)
|
||||
{
|
||||
return __gpio_get_value(gpio);
|
||||
}
|
||||
|
||||
static inline void gpio_set_value(unsigned gpio, int value)
|
||||
{
|
||||
__gpio_set_value(gpio, value);
|
||||
}
|
||||
|
||||
static inline int gpio_cansleep(unsigned gpio)
|
||||
{
|
||||
return __gpio_cansleep(gpio);
|
||||
}
|
||||
|
||||
static inline int gpio_to_irq(unsigned gpio)
|
||||
{
|
||||
return __gpio_to_irq(gpio);
|
||||
}
|
||||
|
||||
#endif
|
|
@ -37,6 +37,7 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/platform.h>
|
||||
#include <mach/gpio-lpc32xx.h>
|
||||
#include "common.h"
|
||||
|
||||
/*
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
* it under the terms of the GNU General Public License version 2 as
|
||||
* publishhed by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
@ -17,13 +17,13 @@
|
|||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/mtd/nand.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/gpio.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <mach/addr-map.h>
|
||||
#include <mach/mfp-pxa168.h>
|
||||
#include <mach/pxa168.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <video/pxa168fb.h>
|
||||
#include <linux/input.h>
|
||||
#include <plat/pxa27x_keypad.h>
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/regulator/max8649.h>
|
||||
#include <linux/regulator/fixed.h>
|
||||
|
|
|
@ -9,11 +9,11 @@
|
|||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/gpio.h>
|
||||
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/pxa168.h>
|
||||
#include <mach/mfp-pxa168.h>
|
||||
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
#ifndef __ASM_MACH_GPIO_PXA_H
|
||||
#define __ASM_MACH_GPIO_PXA_H
|
||||
|
||||
#include <mach/addr-map.h>
|
||||
#include <mach/irqs.h>
|
||||
|
||||
#define GPIO_REGS_VIRT (APB_VIRT_BASE + 0x19000)
|
||||
|
||||
#define BANK_OFF(n) (((n) < 3) ? (n) << 2 : 0x100 + (((n) - 3) << 2))
|
||||
#define GPIO_REG(x) (*((volatile u32 *)(GPIO_REGS_VIRT + (x))))
|
||||
|
||||
#define NR_BUILTIN_GPIO IRQ_GPIO_NUM
|
||||
|
||||
#define gpio_to_bank(gpio) ((gpio) >> 5)
|
||||
|
||||
/* NOTE: these macros are defined here to make optimization of
|
||||
* gpio_{get,set}_value() to work when 'gpio' is a constant.
|
||||
* Usage of these macros otherwise is no longer recommended,
|
||||
* use generic GPIO API whenever possible.
|
||||
*/
|
||||
#define GPIO_bit(gpio) (1 << ((gpio) & 0x1f))
|
||||
|
||||
#define GPLR(x) GPIO_REG(BANK_OFF(gpio_to_bank(x)) + 0x00)
|
||||
#define GPDR(x) GPIO_REG(BANK_OFF(gpio_to_bank(x)) + 0x0c)
|
||||
#define GPSR(x) GPIO_REG(BANK_OFF(gpio_to_bank(x)) + 0x18)
|
||||
#define GPCR(x) GPIO_REG(BANK_OFF(gpio_to_bank(x)) + 0x24)
|
||||
|
||||
#include <plat/gpio-pxa.h>
|
||||
|
||||
#endif /* __ASM_MACH_GPIO_PXA_H */
|
|
@ -1,36 +1,13 @@
|
|||
#ifndef __ASM_MACH_GPIO_H
|
||||
#define __ASM_MACH_GPIO_H
|
||||
|
||||
#include <mach/addr-map.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <asm-generic/gpio.h>
|
||||
|
||||
#define GPIO_REGS_VIRT (APB_VIRT_BASE + 0x19000)
|
||||
|
||||
#define BANK_OFF(n) (((n) < 3) ? (n) << 2 : 0x100 + (((n) - 3) << 2))
|
||||
#define GPIO_REG(x) (*((volatile u32 *)(GPIO_REGS_VIRT + (x))))
|
||||
|
||||
#define NR_BUILTIN_GPIO IRQ_GPIO_NUM
|
||||
|
||||
#define gpio_to_bank(gpio) ((gpio) >> 5)
|
||||
#define gpio_to_irq(gpio) (IRQ_GPIO_START + (gpio))
|
||||
#define irq_to_gpio(irq) ((irq) - IRQ_GPIO_START)
|
||||
|
||||
|
||||
#define __gpio_is_inverted(gpio) (0)
|
||||
#define __gpio_is_occupied(gpio) (0)
|
||||
|
||||
/* NOTE: these macros are defined here to make optimization of
|
||||
* gpio_{get,set}_value() to work when 'gpio' is a constant.
|
||||
* Usage of these macros otherwise is no longer recommended,
|
||||
* use generic GPIO API whenever possible.
|
||||
*/
|
||||
#define GPIO_bit(gpio) (1 << ((gpio) & 0x1f))
|
||||
|
||||
#define GPLR(x) GPIO_REG(BANK_OFF(gpio_to_bank(x)) + 0x00)
|
||||
#define GPDR(x) GPIO_REG(BANK_OFF(gpio_to_bank(x)) + 0x0c)
|
||||
#define GPSR(x) GPIO_REG(BANK_OFF(gpio_to_bank(x)) + 0x18)
|
||||
#define GPCR(x) GPIO_REG(BANK_OFF(gpio_to_bank(x)) + 0x24)
|
||||
|
||||
#include <plat/gpio.h>
|
||||
#endif /* __ASM_MACH_GPIO_H */
|
||||
|
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче