diff options
Diffstat (limited to 'arch/arm/mach-msm/include')
| -rw-r--r-- | arch/arm/mach-msm/include/mach/board.h | 1 | ||||
| -rw-r--r-- | arch/arm/mach-msm/include/mach/debug-macro.S | 8 | ||||
| -rw-r--r-- | arch/arm/mach-msm/include/mach/dma.h | 24 | ||||
| -rw-r--r-- | arch/arm/mach-msm/include/mach/msm_iomap.h | 69 | ||||
| -rw-r--r-- | arch/arm/mach-msm/include/mach/vreg.h | 29 | 
5 files changed, 98 insertions, 33 deletions
diff --git a/arch/arm/mach-msm/include/mach/board.h b/arch/arm/mach-msm/include/mach/board.h index a7639493c09..264d62e519f 100644 --- a/arch/arm/mach-msm/include/mach/board.h +++ b/arch/arm/mach-msm/include/mach/board.h @@ -33,5 +33,6 @@ void __init msm_add_devices(void);  void __init msm_map_common_io(void);  void __init msm_init_irq(void);  void __init msm_init_gpio(void); +void __init msm_clock_init(void);  #endif diff --git a/arch/arm/mach-msm/include/mach/debug-macro.S b/arch/arm/mach-msm/include/mach/debug-macro.S index 528eef4b605..1db3c97dbc4 100644 --- a/arch/arm/mach-msm/include/mach/debug-macro.S +++ b/arch/arm/mach-msm/include/mach/debug-macro.S @@ -22,18 +22,22 @@  	mrc	p15, 0, \rx, c1, c0  	tst	\rx, #1  	ldreq	\rx, =MSM_UART1_PHYS -	ldrne	\rx, =MSM_UART1_BASE +	movne	\rx, #0  	.endm  	.macro	senduart,rd,rx -	str	\rd, [\rx, #0x0C] +	teq	\rx, #0 +	strne	\rd, [\rx, #0x0C]  	.endm  	.macro	waituart,rd,rx  	@ wait for TX_READY +	teq	\rx, #0 +	bne	2f  1:	ldr	\rd, [\rx, #0x08]  	tst	\rd, #0x04  	beq	1b +2:  	.endm  	.macro	busyuart,rd,rx diff --git a/arch/arm/mach-msm/include/mach/dma.h b/arch/arm/mach-msm/include/mach/dma.h index ad1c87f86d1..5ab5bdffab0 100644 --- a/arch/arm/mach-msm/include/mach/dma.h +++ b/arch/arm/mach-msm/include/mach/dma.h @@ -1,4 +1,4 @@ -/* arch/arm/mach-msm/include/mach/dma.h +/* linux/include/asm-arm/arch-msm/dma.h   *   * Copyright (C) 2007 Google, Inc.   * @@ -18,17 +18,21 @@  #include <linux/list.h>  #include <mach/msm_iomap.h> +struct msm_dmov_errdata { +	uint32_t flush[6]; +}; +  struct msm_dmov_cmd {  	struct list_head list;  	unsigned int cmdptr; -	void (*complete_func)(struct msm_dmov_cmd *cmd, unsigned int result); -/*	void (*user_result_func)(struct msm_dmov_cmd *cmd); */ +	void (*complete_func)(struct msm_dmov_cmd *cmd, +			      unsigned int result, +			      struct msm_dmov_errdata *err);  };  void msm_dmov_enqueue_cmd(unsigned id, struct msm_dmov_cmd *cmd); -void msm_dmov_stop_cmd(unsigned id, struct msm_dmov_cmd *cmd); +void msm_dmov_stop_cmd(unsigned id, struct msm_dmov_cmd *cmd, int graceful);  int msm_dmov_exec_cmd(unsigned id, unsigned int cmdptr); -/* int msm_dmov_exec_cmd_etc(unsigned id, unsigned int cmdptr, int timeout, int interruptible); */ @@ -122,6 +126,16 @@ typedef struct {  	unsigned _reserved;  } dmov_sg; +/* Box mode */ +typedef struct { +	uint32_t cmd; +	uint32_t src_row_addr; +	uint32_t dst_row_addr; +	uint32_t src_dst_len; +	uint32_t num_rows; +	uint32_t row_offset; +} dmov_box; +  /* bits for the cmd field of the above structures */  #define CMD_LC      (1 << 31)  /* last command */ diff --git a/arch/arm/mach-msm/include/mach/msm_iomap.h b/arch/arm/mach-msm/include/mach/msm_iomap.h index e221f58ceea..2f7b4c8620d 100644 --- a/arch/arm/mach-msm/include/mach/msm_iomap.h +++ b/arch/arm/mach-msm/include/mach/msm_iomap.h @@ -37,11 +37,17 @@   *   */ -#define MSM_VIC_BASE          0xE0000000 +#ifdef __ASSEMBLY__ +#define IOMEM(x)	x +#else +#define IOMEM(x)	((void __force __iomem *)(x)) +#endif + +#define MSM_VIC_BASE          IOMEM(0xE0000000)  #define MSM_VIC_PHYS          0xC0000000  #define MSM_VIC_SIZE          SZ_4K -#define MSM_CSR_BASE          0xE0001000 +#define MSM_CSR_BASE          IOMEM(0xE0001000)  #define MSM_CSR_PHYS          0xC0100000  #define MSM_CSR_SIZE          SZ_4K @@ -49,56 +55,67 @@  #define MSM_GPT_BASE          MSM_CSR_BASE  #define MSM_GPT_SIZE          SZ_4K -#define MSM_DMOV_BASE         0xE0002000 +#define MSM_DMOV_BASE         IOMEM(0xE0002000)  #define MSM_DMOV_PHYS         0xA9700000  #define MSM_DMOV_SIZE         SZ_4K -#define MSM_UART1_BASE        0xE0003000 +#define MSM_GPIO1_BASE        IOMEM(0xE0003000) +#define MSM_GPIO1_PHYS        0xA9200000 +#define MSM_GPIO1_SIZE        SZ_4K + +#define MSM_GPIO2_BASE        IOMEM(0xE0004000) +#define MSM_GPIO2_PHYS        0xA9300000 +#define MSM_GPIO2_SIZE        SZ_4K + +#define MSM_CLK_CTL_BASE      IOMEM(0xE0005000) +#define MSM_CLK_CTL_PHYS      0xA8600000 +#define MSM_CLK_CTL_SIZE      SZ_4K + +#define MSM_SHARED_RAM_BASE   IOMEM(0xE0100000) +#define MSM_SHARED_RAM_PHYS   0x01F00000 +#define MSM_SHARED_RAM_SIZE   SZ_1M +  #define MSM_UART1_PHYS        0xA9A00000  #define MSM_UART1_SIZE        SZ_4K -#define MSM_UART2_BASE        0xE0004000  #define MSM_UART2_PHYS        0xA9B00000  #define MSM_UART2_SIZE        SZ_4K -#define MSM_UART3_BASE        0xE0005000  #define MSM_UART3_PHYS        0xA9C00000  #define MSM_UART3_SIZE        SZ_4K -#define MSM_I2C_BASE          0xE0006000 -#define MSM_I2C_PHYS          0xA9900000 -#define MSM_I2C_SIZE          SZ_4K +#define MSM_SDC1_PHYS         0xA0400000 +#define MSM_SDC1_SIZE         SZ_4K -#define MSM_GPIO1_BASE        0xE0007000 -#define MSM_GPIO1_PHYS        0xA9200000 -#define MSM_GPIO1_SIZE        SZ_4K +#define MSM_SDC2_PHYS         0xA0500000 +#define MSM_SDC2_SIZE         SZ_4K -#define MSM_GPIO2_BASE        0xE0008000 -#define MSM_GPIO2_PHYS        0xA9300000 -#define MSM_GPIO2_SIZE        SZ_4K +#define MSM_SDC3_PHYS         0xA0600000 +#define MSM_SDC3_SIZE         SZ_4K + +#define MSM_SDC4_PHYS         0xA0700000 +#define MSM_SDC4_SIZE         SZ_4K + +#define MSM_I2C_PHYS          0xA9900000 +#define MSM_I2C_SIZE          SZ_4K -#define MSM_HSUSB_BASE        0xE0009000  #define MSM_HSUSB_PHYS        0xA0800000  #define MSM_HSUSB_SIZE        SZ_4K -#define MSM_CLK_CTL_BASE      0xE000A000 -#define MSM_CLK_CTL_PHYS      0xA8600000 -#define MSM_CLK_CTL_SIZE      SZ_4K - -#define MSM_PMDH_BASE         0xE000B000  #define MSM_PMDH_PHYS         0xAA600000  #define MSM_PMDH_SIZE         SZ_4K -#define MSM_EMDH_BASE         0xE000C000  #define MSM_EMDH_PHYS         0xAA700000  #define MSM_EMDH_SIZE         SZ_4K -#define MSM_MDP_BASE          0xE0010000  #define MSM_MDP_PHYS          0xAA200000  #define MSM_MDP_SIZE          0x000F0000 -#define MSM_SHARED_RAM_BASE   0xE0100000 -#define MSM_SHARED_RAM_PHYS   0x01F00000 -#define MSM_SHARED_RAM_SIZE   SZ_1M +#define MSM_MDC_PHYS	      0xAA500000 +#define MSM_MDC_SIZE	      SZ_1M + +#define MSM_AD5_PHYS          0xAC000000 +#define MSM_AD5_SIZE          (SZ_1M*13) +  #endif diff --git a/arch/arm/mach-msm/include/mach/vreg.h b/arch/arm/mach-msm/include/mach/vreg.h new file mode 100644 index 00000000000..9f9e25cb718 --- /dev/null +++ b/arch/arm/mach-msm/include/mach/vreg.h @@ -0,0 +1,29 @@ +/* linux/include/asm-arm/arch-msm/vreg.h + * + * Copyright (C) 2008 Google, Inc. + * Author: Brian Swetland <swetland@google.com> + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * 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 __ARCH_ARM_MACH_MSM_VREG_H +#define __ARCH_ARM_MACH_MSM_VREG_H + +struct vreg; + +struct vreg *vreg_get(struct device *dev, const char *id); +void vreg_put(struct vreg *vreg); + +int vreg_enable(struct vreg *vreg); +void vreg_disable(struct vreg *vreg); +int vreg_set_level(struct vreg *vreg, unsigned mv); + +#endif  | 
