mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
Merge ARM fixes
This commit is contained in:
commit
5a84d15906
5239 changed files with 242029 additions and 121294 deletions
|
|
@ -1,64 +0,0 @@
|
|||
/* -*- linux-c -*-
|
||||
*
|
||||
* (C) 2003 zecke@handhelds.org
|
||||
*
|
||||
* GPL version 2
|
||||
*
|
||||
* based on arch/arm/kernel/apm.c
|
||||
* factor out the information needed by architectures to provide
|
||||
* apm status
|
||||
*
|
||||
*
|
||||
*/
|
||||
#ifndef ARM_ASM_SA1100_APM_H
|
||||
#define ARM_ASM_SA1100_APM_H
|
||||
|
||||
#include <linux/apm_bios.h>
|
||||
|
||||
/*
|
||||
* This structure gets filled in by the machine specific 'get_power_status'
|
||||
* implementation. Any fields which are not set default to a safe value.
|
||||
*/
|
||||
struct apm_power_info {
|
||||
unsigned char ac_line_status;
|
||||
#define APM_AC_OFFLINE 0
|
||||
#define APM_AC_ONLINE 1
|
||||
#define APM_AC_BACKUP 2
|
||||
#define APM_AC_UNKNOWN 0xff
|
||||
|
||||
unsigned char battery_status;
|
||||
#define APM_BATTERY_STATUS_HIGH 0
|
||||
#define APM_BATTERY_STATUS_LOW 1
|
||||
#define APM_BATTERY_STATUS_CRITICAL 2
|
||||
#define APM_BATTERY_STATUS_CHARGING 3
|
||||
#define APM_BATTERY_STATUS_NOT_PRESENT 4
|
||||
#define APM_BATTERY_STATUS_UNKNOWN 0xff
|
||||
|
||||
unsigned char battery_flag;
|
||||
#define APM_BATTERY_FLAG_HIGH (1 << 0)
|
||||
#define APM_BATTERY_FLAG_LOW (1 << 1)
|
||||
#define APM_BATTERY_FLAG_CRITICAL (1 << 2)
|
||||
#define APM_BATTERY_FLAG_CHARGING (1 << 3)
|
||||
#define APM_BATTERY_FLAG_NOT_PRESENT (1 << 7)
|
||||
#define APM_BATTERY_FLAG_UNKNOWN 0xff
|
||||
|
||||
int battery_life;
|
||||
int time;
|
||||
int units;
|
||||
#define APM_UNITS_MINS 0
|
||||
#define APM_UNITS_SECS 1
|
||||
#define APM_UNITS_UNKNOWN -1
|
||||
|
||||
};
|
||||
|
||||
/*
|
||||
* This allows machines to provide their own "apm get power status" function.
|
||||
*/
|
||||
extern void (*apm_get_power_status)(struct apm_power_info *);
|
||||
|
||||
/*
|
||||
* Queue an event (APM_SYS_SUSPEND or APM_CRITICAL_SUSPEND)
|
||||
*/
|
||||
void apm_queue_event(apm_event_t event);
|
||||
|
||||
#endif
|
||||
|
|
@ -188,6 +188,7 @@
|
|||
|
||||
#ifndef __ASSEMBLY__
|
||||
/* setup setup routines, called from board init or driver probe() */
|
||||
extern int __init_or_module at91_set_GPIO_periph(unsigned pin, int use_pullup);
|
||||
extern int __init_or_module at91_set_A_periph(unsigned pin, int use_pullup);
|
||||
extern int __init_or_module at91_set_B_periph(unsigned pin, int use_pullup);
|
||||
extern int __init_or_module at91_set_gpio_input(unsigned pin, int use_pullup);
|
||||
|
|
@ -202,7 +203,50 @@ extern int at91_get_gpio_value(unsigned pin);
|
|||
/* callable only from core power-management code */
|
||||
extern void at91_gpio_suspend(void);
|
||||
extern void at91_gpio_resume(void);
|
||||
#endif
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
/* wrappers for "new style" GPIO calls. the old AT91-specfic ones should
|
||||
* eventually be removed (along with this errno.h inclusion), and the
|
||||
* gpio request/free calls should probably be implemented.
|
||||
*/
|
||||
|
||||
#include <asm/errno.h>
|
||||
|
||||
static inline int gpio_request(unsigned gpio, const char *label)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void gpio_free(unsigned gpio)
|
||||
{
|
||||
}
|
||||
|
||||
extern int gpio_direction_input(unsigned gpio);
|
||||
extern int gpio_direction_output(unsigned gpio);
|
||||
|
||||
static inline int gpio_get_value(unsigned gpio)
|
||||
{
|
||||
return at91_get_gpio_value(gpio);
|
||||
}
|
||||
|
||||
static inline void gpio_set_value(unsigned gpio, int value)
|
||||
{
|
||||
at91_set_gpio_value(gpio, value);
|
||||
}
|
||||
|
||||
#include <asm-generic/gpio.h> /* cansleep wrappers */
|
||||
|
||||
static inline int gpio_to_irq(unsigned gpio)
|
||||
{
|
||||
return gpio;
|
||||
}
|
||||
|
||||
static inline int irq_to_gpio(unsigned irq)
|
||||
{
|
||||
return irq;
|
||||
}
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
|||
72
include/asm-arm/arch-imx/spi_imx.h
Normal file
72
include/asm-arm/arch-imx/spi_imx.h
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
/*
|
||||
* include/asm-arm/arch-imx/spi_imx.h
|
||||
*
|
||||
* Copyright (C) 2006 SWAPP
|
||||
* Andrea Paterniani <a.paterniani@swapp-eng.it>
|
||||
*
|
||||
* Initial version inspired by:
|
||||
* linux-2.6.17-rc3-mm1/include/asm-arm/arch-pxa/pxa2xx_spi.h
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef SPI_IMX_H_
|
||||
#define SPI_IMX_H_
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
/**
|
||||
* struct spi_imx_master - device.platform_data for SPI controller devices.
|
||||
* @num_chipselect: chipselects are used to distinguish individual
|
||||
* SPI slaves, and are numbered from zero to num_chipselects - 1.
|
||||
* each slave has a chipselect signal, but it's common that not
|
||||
* every chipselect is connected to a slave.
|
||||
* @enable_dma: if true enables DMA driven transfers.
|
||||
*/
|
||||
struct spi_imx_master {
|
||||
u8 num_chipselect;
|
||||
u8 enable_dma:1;
|
||||
};
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
/**
|
||||
* struct spi_imx_chip - spi_board_info.controller_data for SPI
|
||||
* slave devices, copied to spi_device.controller_data.
|
||||
* @enable_loopback : used for test purpouse to internally connect RX and TX
|
||||
* sections.
|
||||
* @enable_dma : enables dma transfer (provided that controller driver has
|
||||
* dma enabled too).
|
||||
* @ins_ss_pulse : enable /SS pulse insertion between SPI burst.
|
||||
* @bclk_wait : number of bclk waits between each bits_per_word SPI burst.
|
||||
* @cs_control : function pointer to board-specific function to assert/deassert
|
||||
* I/O port to control HW generation of devices chip-select.
|
||||
*/
|
||||
struct spi_imx_chip {
|
||||
u8 enable_loopback:1;
|
||||
u8 enable_dma:1;
|
||||
u8 ins_ss_pulse:1;
|
||||
u16 bclk_wait:15;
|
||||
void (*cs_control)(u32 control);
|
||||
};
|
||||
|
||||
/* Chip-select state */
|
||||
#define SPI_CS_ASSERT (1 << 0)
|
||||
#define SPI_CS_DEASSERT (1 << 1)
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
#endif /* SPI_IMX_H_*/
|
||||
|
|
@ -46,7 +46,7 @@
|
|||
#define IXDP2351_VIRT_NVRAM_BASE IXDP2351_BB_AREA_BASE(0x0)
|
||||
#define IXDP2351_NVRAM_SIZE (0x20000)
|
||||
|
||||
#define IXDP2351_VIRT_MB_IXF1104_BASE IXDP3251_BB_AREA_BASE(0x00020000)
|
||||
#define IXDP2351_VIRT_MB_IXF1104_BASE IXDP2351_BB_AREA_BASE(0x00020000)
|
||||
#define IXDP2351_VIRT_ADD_UART_BASE IXDP2351_BB_AREA_BASE(0x000240C0)
|
||||
#define IXDP2351_VIRT_FIC_BASE IXDP2351_BB_AREA_BASE(0x00200000)
|
||||
#define IXDP2351_VIRT_DB0_BASE IXDP2351_BB_AREA_BASE(0x00400000)
|
||||
|
|
|
|||
|
|
@ -238,9 +238,6 @@ __ixp4xx_readsl(const volatile void __iomem *bus_addr, u32 *vaddr, u32 count)
|
|||
#define memcpy_fromio(a,c,l) _memcpy_fromio((a),(c),(l))
|
||||
#define memcpy_toio(c,a,l) _memcpy_toio((c),(a),(l))
|
||||
|
||||
#define eth_io_copy_and_sum(s,c,l,b) \
|
||||
eth_copy_and_sum((s),__mem_pci(c),(l),(b))
|
||||
|
||||
static inline int
|
||||
check_signature(const unsigned char __iomem *bus_addr, const unsigned char *signature,
|
||||
int length)
|
||||
|
|
|
|||
|
|
@ -76,4 +76,70 @@ extern void omap_set_gpio_direction(int gpio, int is_input);
|
|||
extern void omap_set_gpio_dataout(int gpio, int enable);
|
||||
extern int omap_get_gpio_datain(int gpio);
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
/* wrappers for "new style" GPIO calls. the old OMAP-specfic ones should
|
||||
* eventually be removed (along with this errno.h inclusion), and maybe
|
||||
* gpios should put MPUIOs last too.
|
||||
*/
|
||||
|
||||
#include <asm/errno.h>
|
||||
|
||||
static inline int gpio_request(unsigned gpio, const char *label)
|
||||
{
|
||||
return omap_request_gpio(gpio);
|
||||
}
|
||||
|
||||
static inline void gpio_free(unsigned gpio)
|
||||
{
|
||||
omap_free_gpio(gpio);
|
||||
}
|
||||
|
||||
static inline int __gpio_set_direction(unsigned gpio, int is_input)
|
||||
{
|
||||
if (cpu_class_is_omap2()) {
|
||||
if (gpio > OMAP_MAX_GPIO_LINES)
|
||||
return -EINVAL;
|
||||
} else {
|
||||
if (gpio > (OMAP_MAX_GPIO_LINES + 16 /* MPUIO */))
|
||||
return -EINVAL;
|
||||
}
|
||||
omap_set_gpio_direction(gpio, is_input);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int gpio_direction_input(unsigned gpio)
|
||||
{
|
||||
return __gpio_set_direction(gpio, 1);
|
||||
}
|
||||
|
||||
static inline int gpio_direction_output(unsigned gpio)
|
||||
{
|
||||
return __gpio_set_direction(gpio, 0);
|
||||
}
|
||||
|
||||
static inline int gpio_get_value(unsigned gpio)
|
||||
{
|
||||
return omap_get_gpio_datain(gpio);
|
||||
}
|
||||
|
||||
static inline void gpio_set_value(unsigned gpio, int value)
|
||||
{
|
||||
omap_set_gpio_dataout(gpio, value);
|
||||
}
|
||||
|
||||
#include <asm-generic/gpio.h> /* cansleep wrappers */
|
||||
|
||||
static inline int gpio_to_irq(unsigned gpio)
|
||||
{
|
||||
return OMAP_GPIO_IRQ(gpio);
|
||||
}
|
||||
|
||||
static inline int irq_to_gpio(unsigned irq)
|
||||
{
|
||||
if (cpu_class_is_omap1() && (irq < (IH_MPUIO_BASE + 16)))
|
||||
return (irq - IH_MPUIO_BASE) + OMAP_MAX_GPIO_LINES;
|
||||
return irq - IH_GPIO_BASE;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
72
include/asm-arm/arch-pxa/gpio.h
Normal file
72
include/asm-arm/arch-pxa/gpio.h
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
/*
|
||||
* linux/include/asm-arm/arch-pxa/gpio.h
|
||||
*
|
||||
* PXA GPIO wrappers for arch-neutral GPIO calls
|
||||
*
|
||||
* Written by Philipp Zabel <philipp.zabel@gmail.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.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_PXA_GPIO_H
|
||||
#define __ASM_ARCH_PXA_GPIO_H
|
||||
|
||||
#include <asm/arch/pxa-regs.h>
|
||||
#include <asm/arch/irqs.h>
|
||||
#include <asm/arch/hardware.h>
|
||||
|
||||
#include <asm/errno.h>
|
||||
|
||||
static inline int gpio_request(unsigned gpio, const char *label)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void gpio_free(unsigned gpio)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static inline int gpio_direction_input(unsigned gpio)
|
||||
{
|
||||
if (gpio > PXA_LAST_GPIO)
|
||||
return -EINVAL;
|
||||
pxa_gpio_mode(gpio | GPIO_IN);
|
||||
}
|
||||
|
||||
static inline int gpio_direction_output(unsigned gpio)
|
||||
{
|
||||
if (gpio > PXA_LAST_GPIO)
|
||||
return -EINVAL;
|
||||
pxa_gpio_mode(gpio | GPIO_OUT);
|
||||
}
|
||||
|
||||
/* REVISIT these macros are correct, but suffer code explosion
|
||||
* for non-constant parameters. Provide out-line versions too.
|
||||
*/
|
||||
#define gpio_get_value(gpio) \
|
||||
(GPLR(gpio) & GPIO_bit(gpio))
|
||||
|
||||
#define gpio_set_value(gpio,value) \
|
||||
((value) ? (GPSR(gpio) = GPIO_bit(gpio)):(GPCR(gpio) = GPIO_bit(gpio)))
|
||||
|
||||
#include <asm-generic/gpio.h> /* cansleep wrappers */
|
||||
|
||||
#define gpio_to_irq(gpio) IRQ_GPIO(gpio)
|
||||
#define irq_to_gpio(irq) IRQ_TO_GPIO(irq)
|
||||
|
||||
|
||||
#endif
|
||||
|
|
@ -31,9 +31,9 @@ struct s3c24xx_iis_ops {
|
|||
int (*suspend)(struct s3c24xx_iis_ops *me);
|
||||
int (*resume)(struct s3c24xx_iis_ops *me);
|
||||
|
||||
int (*open)(struct s3c24xx_iis_ops *me, snd_pcm_substream_t *strm);
|
||||
int (*close)(struct s3c24xx_iis_ops *me, snd_pcm_substream_t *strm);
|
||||
int (*prepare)(struct s3c24xx_iis_ops *me, snd_pcm_substream_t *strm, snd_pcm_runtime_t *rt);
|
||||
int (*open)(struct s3c24xx_iis_ops *me, struct snd_pcm_substream *strm);
|
||||
int (*close)(struct s3c24xx_iis_ops *me, struct snd_pcm_substream *strm);
|
||||
int (*prepare)(struct s3c24xx_iis_ops *me, struct snd_pcm_substream *strm, struct snd_pcm_runtime *rt);
|
||||
};
|
||||
|
||||
struct s3c24xx_platdata_iis {
|
||||
|
|
|
|||
65
include/asm-arm/arch-s3c2410/gpio.h
Normal file
65
include/asm-arm/arch-s3c2410/gpio.h
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
/*
|
||||
* linux/include/asm-arm/arch-pxa/gpio.h
|
||||
*
|
||||
* S3C2400 GPIO wrappers for arch-neutral GPIO calls
|
||||
*
|
||||
* Written by Philipp Zabel <philipp.zabel@gmail.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.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_PXA_GPIO_H
|
||||
#define __ASM_ARCH_PXA_GPIO_H
|
||||
|
||||
#include <asm/arch/pxa-regs.h>
|
||||
#include <asm/arch/irqs.h>
|
||||
#include <asm/arch/hardware.h>
|
||||
|
||||
#include <asm/errno.h>
|
||||
|
||||
static inline int gpio_request(unsigned gpio, const char *label)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void gpio_free(unsigned gpio)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static inline int gpio_direction_input(unsigned gpio)
|
||||
{
|
||||
s3c2410_gpio_cfgpin(gpio, S3C2410_GPIO_INPUT);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int gpio_direction_output(unsigned gpio)
|
||||
{
|
||||
s3c2410_gpio_cfgpin(gpio, S3C2410_GPIO_OUTPUT);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define gpio_get_value(gpio) s3c2410_gpio_getpin(gpio)
|
||||
#define gpio_set_value(gpio,value) s3c2410_gpio_setpin(gpio, value)
|
||||
|
||||
#include <asm-generic/gpio.h> /* cansleep wrappers */
|
||||
|
||||
/* FIXME or maybe s3c2400_gpio_getirq() ... */
|
||||
#define gpio_to_irq(gpio) s3c2410_gpio_getirq(gpio)
|
||||
|
||||
/* FIXME implement irq_to_gpio() */
|
||||
|
||||
#endif
|
||||
81
include/asm-arm/arch-sa1100/gpio.h
Normal file
81
include/asm-arm/arch-sa1100/gpio.h
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
/*
|
||||
* linux/include/asm-arm/arch-pxa/gpio.h
|
||||
*
|
||||
* SA1100 GPIO wrappers for arch-neutral GPIO calls
|
||||
*
|
||||
* Written by Philipp Zabel <philipp.zabel@gmail.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.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_SA1100_GPIO_H
|
||||
#define __ASM_ARCH_SA1100_GPIO_H
|
||||
|
||||
#include <asm/arch/SA-1100.h>
|
||||
#include <asm/arch/irqs.h>
|
||||
#include <asm/arch/hardware.h>
|
||||
|
||||
#include <asm/errno.h>
|
||||
|
||||
static inline int gpio_request(unsigned gpio, const char *label)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void gpio_free(unsigned gpio)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static inline int gpio_direction_input(unsigned gpio)
|
||||
{
|
||||
if (gpio > GPIO_MAX)
|
||||
return -EINVAL;
|
||||
GPDR = (GPDR_In << gpio) 0
|
||||
}
|
||||
|
||||
static inline int gpio_direction_output(unsigned gpio)
|
||||
{
|
||||
if (gpio > GPIO_MAX)
|
||||
return -EINVAL;
|
||||
GPDR = (GPDR_Out << gpio) 0
|
||||
}
|
||||
|
||||
#define gpio_get_value(gpio) \
|
||||
(GPLR & GPIO_GPIO(gpio))
|
||||
|
||||
#define gpio_set_value(gpio,value) \
|
||||
((value) ? (GPSR = GPIO_GPIO(gpio)) : (GPCR(gpio) = GPIO_GPIO(gpio)))
|
||||
|
||||
#include <asm-generic/gpio.h> /* cansleep wrappers */
|
||||
|
||||
static inline unsigned gpio_to_irq(unsigned gpio)
|
||||
{
|
||||
if (gpio < 11)
|
||||
return IRQ_GPIO0 + gpio;
|
||||
else
|
||||
return IRQ_GPIO11 - 11 + gpio;
|
||||
}
|
||||
|
||||
static inline unsigned irq_to_gpio(unsigned irq)
|
||||
{
|
||||
if (irq < IRQ_GPIO11_27)
|
||||
return irq - IRQ_GPIO0;
|
||||
else
|
||||
return irq - IRQ_GPIO11 + 11;
|
||||
}
|
||||
|
||||
#endif
|
||||
7
include/asm-arm/gpio.h
Normal file
7
include/asm-arm/gpio.h
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
#ifndef _ARCH_ARM_GPIO_H
|
||||
#define _ARCH_ARM_GPIO_H
|
||||
|
||||
/* not all ARM platforms necessarily support this API ... */
|
||||
#include <asm/arch/gpio.h>
|
||||
|
||||
#endif /* _ARCH_ARM_GPIO_H */
|
||||
17
include/asm-arm/hardware/gpio_keys.h
Normal file
17
include/asm-arm/hardware/gpio_keys.h
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
#ifndef _GPIO_KEYS_H
|
||||
#define _GPIO_KEYS_H
|
||||
|
||||
struct gpio_keys_button {
|
||||
/* Configuration parameters */
|
||||
int keycode;
|
||||
int gpio;
|
||||
int active_low;
|
||||
char *desc;
|
||||
};
|
||||
|
||||
struct gpio_keys_platform_data {
|
||||
struct gpio_keys_button *buttons;
|
||||
int nbuttons;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -182,9 +182,6 @@ extern void _memset_io(volatile void __iomem *, int, size_t);
|
|||
#define memcpy_fromio(a,c,l) _memcpy_fromio((a),__mem_pci(c),(l))
|
||||
#define memcpy_toio(c,a,l) _memcpy_toio(__mem_pci(c),(a),(l))
|
||||
|
||||
#define eth_io_copy_and_sum(s,c,l,b) \
|
||||
eth_copy_and_sum((s),__mem_pci(c),(l),(b))
|
||||
|
||||
#elif !defined(readb)
|
||||
|
||||
#define readb(c) (__readwrite_bug("readb"),0)
|
||||
|
|
@ -194,8 +191,6 @@ extern void _memset_io(volatile void __iomem *, int, size_t);
|
|||
#define writew(v,c) __readwrite_bug("writew")
|
||||
#define writel(v,c) __readwrite_bug("writel")
|
||||
|
||||
#define eth_io_copy_and_sum(s,c,l,b) __readwrite_bug("eth_io_copy_and_sum")
|
||||
|
||||
#define check_signature(io,sig,len) (0)
|
||||
|
||||
#endif /* __mem_pci */
|
||||
|
|
|
|||
|
|
@ -85,7 +85,6 @@ static inline void __raw_spin_unlock(raw_spinlock_t *lock)
|
|||
* Write locks are easy - we just set bit 31. When unlocking, we can
|
||||
* just write zero since the lock is exclusively held.
|
||||
*/
|
||||
#define rwlock_is_locked(x) (*((volatile unsigned int *)(x)) != 0)
|
||||
|
||||
static inline void __raw_write_lock(raw_rwlock_t *rw)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -49,24 +49,6 @@ struct termio {
|
|||
|
||||
/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
|
||||
|
||||
/* line disciplines */
|
||||
#define N_TTY 0
|
||||
#define N_SLIP 1
|
||||
#define N_MOUSE 2
|
||||
#define N_PPP 3
|
||||
#define N_STRIP 4
|
||||
#define N_AX25 5
|
||||
#define N_X25 6 /* X.25 async */
|
||||
#define N_6PACK 7
|
||||
#define N_MASC 8 /* Reserved for Mobitex module <[email protected]> */
|
||||
#define N_R3964 9 /* Reserved for Simatic R3964 module */
|
||||
#define N_PROFIBUS_FDL 10 /* Reserved for Profibus <[email protected]> */
|
||||
#define N_IRDA 11 /* Linux IrDa - http://irda.sourceforge.net/ */
|
||||
#define N_SMSBLOCK 12 /* SMS block mode - for talking to GSM data cards about SMS messages */
|
||||
#define N_HDLC 13 /* synchronous HDLC */
|
||||
#define N_SYNC_PPP 14
|
||||
#define N_HCI 15 /* Bluetooth HCI UART */
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -76,10 +76,10 @@ static inline void set_fs(mm_segment_t fs)
|
|||
|
||||
/* We use 33-bit arithmetic here... */
|
||||
#define __range_ok(addr,size) ({ \
|
||||
unsigned long flag, sum; \
|
||||
unsigned long flag, roksum; \
|
||||
__chk_user_ptr(addr); \
|
||||
__asm__("adds %1, %2, %3; sbcccs %1, %1, %0; movcc %0, #0" \
|
||||
: "=&r" (flag), "=&r" (sum) \
|
||||
: "=&r" (flag), "=&r" (roksum) \
|
||||
: "r" (addr), "Ir" (size), "0" (current_thread_info()->addr_limit) \
|
||||
: "cc"); \
|
||||
flag; })
|
||||
|
|
@ -109,7 +109,7 @@ extern int __get_user_4(void *);
|
|||
|
||||
#define get_user(x,p) \
|
||||
({ \
|
||||
const register typeof(*(p)) __user *__p asm("r0") = (p);\
|
||||
register const typeof(*(p)) __user *__p asm("r0") = (p);\
|
||||
register unsigned long __r2 asm("r2"); \
|
||||
register int __e asm("r0"); \
|
||||
switch (sizeof(*(__p))) { \
|
||||
|
|
@ -143,8 +143,8 @@ extern int __put_user_8(void *, unsigned long long);
|
|||
|
||||
#define put_user(x,p) \
|
||||
({ \
|
||||
const register typeof(*(p)) __r2 asm("r2") = (x); \
|
||||
const register typeof(*(p)) __user *__p asm("r0") = (p);\
|
||||
register const typeof(*(p)) __r2 asm("r2") = (x); \
|
||||
register const typeof(*(p)) __user *__p asm("r0") = (p);\
|
||||
register int __e asm("r0"); \
|
||||
switch (sizeof(*(__p))) { \
|
||||
case 1: \
|
||||
|
|
|
|||
Loading…
Reference in a new issue