From 392e8802486cb573b916e746010e141a75f507e6 Mon Sep 17 00:00:00 2001 From: Kevin Date: Sat, 15 Nov 2014 09:58:27 +0800 Subject: init android origin source code --- .../arch/arm/mach-davinci/include/mach/aemif.h | 36 + .../arch/arm/mach-davinci/include/mach/asp.h | 137 +++ .../arch/arm/mach-davinci/include/mach/cdce949.h | 19 + .../arch/arm/mach-davinci/include/mach/clock.h | 21 + .../arch/arm/mach-davinci/include/mach/common.h | 92 ++ .../arch/arm/mach-davinci/include/mach/cp_intc.h | 56 + .../arch/arm/mach-davinci/include/mach/cpufreq.h | 26 + .../arch/arm/mach-davinci/include/mach/cpuidle.h | 18 + .../arch/arm/mach-davinci/include/mach/cputype.h | 94 ++ .../arch/arm/mach-davinci/include/mach/da8xx.h | 133 +++ .../arch/arm/mach-davinci/include/mach/ddr2.h | 4 + .../arm/mach-davinci/include/mach/debug-macro.S | 85 ++ .../arch/arm/mach-davinci/include/mach/dm365.h | 1 + .../arch/arm/mach-davinci/include/mach/dm646x.h | 1 + .../arch/arm/mach-davinci/include/mach/edma.h | 267 +++++ .../arm/mach-davinci/include/mach/entry-macro.S | 41 + .../arm/mach-davinci/include/mach/gpio-davinci.h | 91 ++ .../arch/arm/mach-davinci/include/mach/gpio.h | 88 ++ .../arch/arm/mach-davinci/include/mach/hardware.h | 33 + .../arch/arm/mach-davinci/include/mach/i2c.h | 26 + .../arch/arm/mach-davinci/include/mach/irqs.h | 506 ++++++++ .../arch/arm/mach-davinci/include/mach/keyscan.h | 42 + .../arch/arm/mach-davinci/include/mach/mmc.h | 39 + .../arch/arm/mach-davinci/include/mach/mux.h | 1217 ++++++++++++++++++++ .../arch/arm/mach-davinci/include/mach/nand.h | 90 ++ .../arch/arm/mach-davinci/include/mach/pm.h | 54 + .../arch/arm/mach-davinci/include/mach/psc.h | 260 +++++ .../arch/arm/mach-davinci/include/mach/serial.h | 58 + .../arch/arm/mach-davinci/include/mach/spi.h | 89 ++ .../arch/arm/mach-davinci/include/mach/sram.h | 27 + .../arch/arm/mach-davinci/include/mach/time.h | 35 + .../arch/arm/mach-davinci/include/mach/timex.h | 22 + .../arch/arm/mach-davinci/include/mach/tnetv107x.h | 61 + .../arm/mach-davinci/include/mach/uncompress.h | 108 ++ .../arch/arm/mach-davinci/include/mach/usb.h | 59 + 35 files changed, 3936 insertions(+) create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/aemif.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/asp.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/cdce949.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/clock.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/common.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/cp_intc.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/cpufreq.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/cpuidle.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/cputype.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/da8xx.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/ddr2.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/debug-macro.S create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/dm365.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/dm646x.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/edma.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/entry-macro.S create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/gpio-davinci.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/gpio.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/hardware.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/i2c.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/irqs.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/keyscan.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/mmc.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/mux.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/nand.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/pm.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/psc.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/serial.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/spi.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/sram.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/time.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/timex.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/tnetv107x.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/uncompress.h create mode 100644 ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/usb.h (limited to 'ANDROID_3.4.5/arch/arm/mach-davinci/include') diff --git a/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/aemif.h b/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/aemif.h new file mode 100644 index 00000000..05b29344 --- /dev/null +++ b/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/aemif.h @@ -0,0 +1,36 @@ +/* + * TI DaVinci AEMIF support + * + * Copyright 2010 (C) Texas Instruments, Inc. http://www.ti.com/ + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ +#ifndef _MACH_DAVINCI_AEMIF_H +#define _MACH_DAVINCI_AEMIF_H + +#define NRCSR_OFFSET 0x00 +#define AWCCR_OFFSET 0x04 +#define A1CR_OFFSET 0x10 + +#define ACR_ASIZE_MASK 0x3 +#define ACR_EW_MASK BIT(30) +#define ACR_SS_MASK BIT(31) + +/* All timings in nanoseconds */ +struct davinci_aemif_timing { + u8 wsetup; + u8 wstrobe; + u8 whold; + + u8 rsetup; + u8 rstrobe; + u8 rhold; + + u8 ta; +}; + +int davinci_aemif_setup_timing(struct davinci_aemif_timing *t, + void __iomem *base, unsigned cs); +#endif diff --git a/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/asp.h b/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/asp.h new file mode 100644 index 00000000..9aa24090 --- /dev/null +++ b/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/asp.h @@ -0,0 +1,137 @@ +/* + * - DaVinci Audio Serial Port support + */ +#ifndef __ASM_ARCH_DAVINCI_ASP_H +#define __ASM_ARCH_DAVINCI_ASP_H + +#include +#include + +/* Bases of dm644x and dm355 register banks */ +#define DAVINCI_ASP0_BASE 0x01E02000 +#define DAVINCI_ASP1_BASE 0x01E04000 + +/* Bases of dm365 register banks */ +#define DAVINCI_DM365_ASP0_BASE 0x01D02000 + +/* Bases of dm646x register banks */ +#define DAVINCI_DM646X_MCASP0_REG_BASE 0x01D01000 +#define DAVINCI_DM646X_MCASP1_REG_BASE 0x01D01800 + +/* Bases of da850/da830 McASP0 register banks */ +#define DAVINCI_DA8XX_MCASP0_REG_BASE 0x01D00000 + +/* Bases of da830 McASP1 register banks */ +#define DAVINCI_DA830_MCASP1_REG_BASE 0x01D04000 + +/* EDMA channels of dm644x and dm355 */ +#define DAVINCI_DMA_ASP0_TX 2 +#define DAVINCI_DMA_ASP0_RX 3 +#define DAVINCI_DMA_ASP1_TX 8 +#define DAVINCI_DMA_ASP1_RX 9 + +/* EDMA channels of dm646x */ +#define DAVINCI_DM646X_DMA_MCASP0_AXEVT0 6 +#define DAVINCI_DM646X_DMA_MCASP0_AREVT0 9 +#define DAVINCI_DM646X_DMA_MCASP1_AXEVT1 12 + +/* EDMA channels of da850/da830 McASP0 */ +#define DAVINCI_DA8XX_DMA_MCASP0_AREVT 0 +#define DAVINCI_DA8XX_DMA_MCASP0_AXEVT 1 + +/* EDMA channels of da830 McASP1 */ +#define DAVINCI_DA830_DMA_MCASP1_AREVT 2 +#define DAVINCI_DA830_DMA_MCASP1_AXEVT 3 + +/* Interrupts */ +#define DAVINCI_ASP0_RX_INT IRQ_MBRINT +#define DAVINCI_ASP0_TX_INT IRQ_MBXINT +#define DAVINCI_ASP1_RX_INT IRQ_MBRINT +#define DAVINCI_ASP1_TX_INT IRQ_MBXINT + +struct snd_platform_data { + u32 tx_dma_offset; + u32 rx_dma_offset; + enum dma_event_q asp_chan_q; /* event queue number for ASP channel */ + enum dma_event_q ram_chan_q; /* event queue number for RAM channel */ + unsigned int codec_fmt; + /* + * Allowing this is more efficient and eliminates left and right swaps + * caused by underruns, but will swap the left and right channels + * when compared to previous behavior. + */ + unsigned enable_channel_combine:1; + unsigned sram_size_playback; + unsigned sram_size_capture; + + /* + * If McBSP peripheral gets the clock from an external pin, + * there are three chooses, that are MCBSP_CLKX, MCBSP_CLKR + * and MCBSP_CLKS. + * Depending on different hardware connections it is possible + * to use this setting to change the behaviour of McBSP + * driver. The dm365_clk_input_pin enum is available for dm365 + */ + int clk_input_pin; + + /* + * This flag works when both clock and FS are outputs for the cpu + * and makes clock more accurate (FS is not symmetrical and the + * clock is very fast. + * The clock becoming faster is named + * i2s continuous serial clock (I2S_SCK) and it is an externally + * visible bit clock. + * + * first line : WordSelect + * second line : ContinuousSerialClock + * third line: SerialData + * + * SYMMETRICAL APPROACH: + * _______________________ LEFT + * _| RIGHT |______________________| + * _ _ _ _ _ _ _ _ + * _| |_| |_ x16 _| |_| |_| |_| |_ x16 _| |_| |_ + * _ _ _ _ _ _ _ _ + * _/ \_/ \_ ... _/ \_/ \_/ \_/ \_ ... _/ \_/ \_ + * \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ + * + * ACCURATE CLOCK APPROACH: + * ______________ LEFT + * _| RIGHT |_______________________________| + * _ _ _ _ _ _ _ _ _ + * _| |_ x16 _| |_| |_ x16 _| |_| |_| |_| |_| |_| | + * _ _ _ _ dummy cycles + * _/ \_ ... _/ \_/ \_ ... _/ \__________________ + * \_/ \_/ \_/ \_/ + * + */ + bool i2s_accurate_sck; + + /* McASP specific fields */ + int tdm_slots; + u8 op_mode; + u8 num_serializer; + u8 *serial_dir; + u8 version; + u8 txnumevt; + u8 rxnumevt; +}; + +enum { + MCASP_VERSION_1 = 0, /* DM646x */ + MCASP_VERSION_2, /* DA8xx/OMAPL1x */ +}; + +enum dm365_clk_input_pin { + MCBSP_CLKR = 0, /* DM365 */ + MCBSP_CLKS, +}; + +#define INACTIVE_MODE 0 +#define TX_MODE 1 +#define RX_MODE 2 + +#define DAVINCI_MCASP_IIS_MODE 0 +#define DAVINCI_MCASP_DIT_MODE 1 + +#endif /* __ASM_ARCH_DAVINCI_ASP_H */ diff --git a/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/cdce949.h b/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/cdce949.h new file mode 100644 index 00000000..c73331fa --- /dev/null +++ b/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/cdce949.h @@ -0,0 +1,19 @@ +/* + * TI CDCE949 off-chip clock synthesizer support + * + * 2009 (C) Texas Instruments, Inc. http://www.ti.com/ + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ +#ifndef _MACH_DAVINCI_CDCE949_H +#define _MACH_DAVINCI_CDCE949_H + +#include + +#include + +int cdce_set_rate(struct clk *clk, unsigned long rate); + +#endif diff --git a/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/clock.h b/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/clock.h new file mode 100644 index 00000000..a3b04021 --- /dev/null +++ b/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/clock.h @@ -0,0 +1,21 @@ +/* + * arch/arm/mach-davinci/include/mach/clock.h + * + * Clock control driver for DaVinci - header file + * + * Authors: Vladimir Barinov + * + * 2007 (c) MontaVista Software, Inc. This file is licensed under + * the terms of the GNU General Public License version 2. This program + * is licensed "as is" without any warranty of any kind, whether express + * or implied. + */ +#ifndef __ASM_ARCH_DAVINCI_CLOCK_H +#define __ASM_ARCH_DAVINCI_CLOCK_H + +struct clk; + +extern int clk_register(struct clk *clk); +extern void clk_unregister(struct clk *clk); + +#endif diff --git a/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/common.h b/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/common.h new file mode 100644 index 00000000..5cd39a4e --- /dev/null +++ b/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/common.h @@ -0,0 +1,92 @@ +/* + * Header for code common to all DaVinci machines. + * + * Author: Kevin Hilman, MontaVista Software, Inc. + * + * 2007 (c) MontaVista Software, Inc. This file is licensed under + * the terms of the GNU General Public License version 2. This program + * is licensed "as is" without any warranty of any kind, whether express + * or implied. + */ + +#ifndef __ARCH_ARM_MACH_DAVINCI_COMMON_H +#define __ARCH_ARM_MACH_DAVINCI_COMMON_H + +#include +#include + +struct sys_timer; + +extern struct sys_timer davinci_timer; + +extern void davinci_irq_init(void); +extern void __iomem *davinci_intc_base; +extern int davinci_intc_type; + +struct davinci_timer_instance { + u32 base; + u32 bottom_irq; + u32 top_irq; + unsigned long cmp_off; + unsigned int cmp_irq; +}; + +struct davinci_timer_info { + struct davinci_timer_instance *timers; + unsigned int clockevent_id; + unsigned int clocksource_id; +}; + +struct davinci_gpio_controller; + +/* + * SoC info passed into common davinci modules. + * + * Base addresses in this structure should be physical and not virtual. + * Modules that take such base addresses, should internally ioremap() them to + * use. + */ +struct davinci_soc_info { + struct map_desc *io_desc; + unsigned long io_desc_num; + u32 cpu_id; + u32 jtag_id; + u32 jtag_id_reg; + struct davinci_id *ids; + unsigned long ids_num; + struct clk_lookup *cpu_clks; + u32 *psc_bases; + unsigned long psc_bases_num; + u32 pinmux_base; + const struct mux_config *pinmux_pins; + unsigned long pinmux_pins_num; + u32 intc_base; + int intc_type; + u8 *intc_irq_prios; + unsigned long intc_irq_num; + u32 *intc_host_map; + struct davinci_timer_info *timer_info; + int gpio_type; + u32 gpio_base; + unsigned gpio_num; + unsigned gpio_irq; + unsigned gpio_unbanked; + struct davinci_gpio_controller *gpio_ctlrs; + int gpio_ctlrs_num; + struct platform_device *serial_dev; + struct emac_platform_data *emac_pdata; + dma_addr_t sram_dma; + unsigned sram_len; +}; + +extern struct davinci_soc_info davinci_soc_info; + +extern void davinci_common_init(struct davinci_soc_info *soc_info); +extern void davinci_init_ide(void); +void davinci_restart(char mode, const char *cmd); + +/* standard place to map on-chip SRAMs; they *may* support DMA */ +#define SRAM_VIRT 0xfffe0000 +#define SRAM_SIZE SZ_128K + +#endif /* __ARCH_ARM_MACH_DAVINCI_COMMON_H */ diff --git a/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/cp_intc.h b/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/cp_intc.h new file mode 100644 index 00000000..4e8190ee --- /dev/null +++ b/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/cp_intc.h @@ -0,0 +1,56 @@ +/* + * TI Common Platform Interrupt Controller (cp_intc) definitions + * + * Author: Steve Chen + * Copyright (C) 2008-2009, MontaVista Software, Inc. + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ +#ifndef __ASM_HARDWARE_CP_INTC_H +#define __ASM_HARDWARE_CP_INTC_H + +#define CP_INTC_REV 0x00 +#define CP_INTC_CTRL 0x04 +#define CP_INTC_HOST_CTRL 0x0C +#define CP_INTC_GLOBAL_ENABLE 0x10 +#define CP_INTC_GLOBAL_NESTING_LEVEL 0x1C +#define CP_INTC_SYS_STAT_IDX_SET 0x20 +#define CP_INTC_SYS_STAT_IDX_CLR 0x24 +#define CP_INTC_SYS_ENABLE_IDX_SET 0x28 +#define CP_INTC_SYS_ENABLE_IDX_CLR 0x2C +#define CP_INTC_GLOBAL_WAKEUP_ENABLE 0x30 +#define CP_INTC_HOST_ENABLE_IDX_SET 0x34 +#define CP_INTC_HOST_ENABLE_IDX_CLR 0x38 +#define CP_INTC_PACING_PRESCALE 0x40 +#define CP_INTC_VECTOR_BASE 0x50 +#define CP_INTC_VECTOR_SIZE 0x54 +#define CP_INTC_VECTOR_NULL 0x58 +#define CP_INTC_PRIO_IDX 0x80 +#define CP_INTC_PRIO_VECTOR 0x84 +#define CP_INTC_SECURE_ENABLE 0x90 +#define CP_INTC_SECURE_PRIO_IDX 0x94 +#define CP_INTC_PACING_PARAM(n) (0x0100 + (n << 4)) +#define CP_INTC_PACING_DEC(n) (0x0104 + (n << 4)) +#define CP_INTC_PACING_MAP(n) (0x0108 + (n << 4)) +#define CP_INTC_SYS_RAW_STAT(n) (0x0200 + (n << 2)) +#define CP_INTC_SYS_STAT_CLR(n) (0x0280 + (n << 2)) +#define CP_INTC_SYS_ENABLE_SET(n) (0x0300 + (n << 2)) +#define CP_INTC_SYS_ENABLE_CLR(n) (0x0380 + (n << 2)) +#define CP_INTC_CHAN_MAP(n) (0x0400 + (n << 2)) +#define CP_INTC_HOST_MAP(n) (0x0800 + (n << 2)) +#define CP_INTC_HOST_PRIO_IDX(n) (0x0900 + (n << 2)) +#define CP_INTC_SYS_POLARITY(n) (0x0D00 + (n << 2)) +#define CP_INTC_SYS_TYPE(n) (0x0D80 + (n << 2)) +#define CP_INTC_WAKEUP_ENABLE(n) (0x0E00 + (n << 2)) +#define CP_INTC_DEBUG_SELECT(n) (0x0F00 + (n << 2)) +#define CP_INTC_SYS_SECURE_ENABLE(n) (0x1000 + (n << 2)) +#define CP_INTC_HOST_NESTING_LEVEL(n) (0x1100 + (n << 2)) +#define CP_INTC_HOST_ENABLE(n) (0x1500 + (n << 2)) +#define CP_INTC_HOST_PRIO_VECTOR(n) (0x1600 + (n << 2)) +#define CP_INTC_VECTOR_ADDR(n) (0x2000 + (n << 2)) + +void __init cp_intc_init(void); + +#endif /* __ASM_HARDWARE_CP_INTC_H */ diff --git a/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/cpufreq.h b/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/cpufreq.h new file mode 100644 index 00000000..3c089cfb --- /dev/null +++ b/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/cpufreq.h @@ -0,0 +1,26 @@ +/* + * TI DaVinci CPUFreq platform support. + * + * Copyright (C) 2009 Texas Instruments, Inc. http://www.ti.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 version 2. + * + * This program is distributed "as is" WITHOUT ANY WARRANTY of any + * kind, whether express or implied; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +#ifndef _MACH_DAVINCI_CPUFREQ_H +#define _MACH_DAVINCI_CPUFREQ_H + +#include + +struct davinci_cpufreq_config { + struct cpufreq_frequency_table *freq_table; + int (*set_voltage) (unsigned int index); + int (*init) (void); +}; + +#endif diff --git a/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/cpuidle.h b/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/cpuidle.h new file mode 100644 index 00000000..74f088b0 --- /dev/null +++ b/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/cpuidle.h @@ -0,0 +1,18 @@ +/* + * TI DaVinci cpuidle platform support + * + * 2009 (C) Texas Instruments, Inc. http://www.ti.com/ + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed "as is" without any warranty of any + * kind, whether express or implied. + */ +#ifndef _MACH_DAVINCI_CPUIDLE_H +#define _MACH_DAVINCI_CPUIDLE_H + +struct davinci_cpuidle_config { + u32 ddr2_pdown; + void __iomem *ddr2_ctlr_base; +}; + +#endif diff --git a/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/cputype.h b/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/cputype.h new file mode 100644 index 00000000..957fb87e --- /dev/null +++ b/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/cputype.h @@ -0,0 +1,94 @@ +/* + * DaVinci CPU type detection + * + * Author: Kevin Hilman, Deep Root Systems, LLC + * + * Defines the cpu_is_*() macros for runtime detection of DaVinci + * device type. In addition, if support for a given device is not + * compiled in to the kernel, the macros return 0 so that + * resulting code can be optimized out. + * + * 2009 (c) Deep Root Systems, LLC. This file is licensed under + * the terms of the GNU General Public License version 2. This program + * is licensed "as is" without any warranty of any kind, whether express + * or implied. + */ +#ifndef _ASM_ARCH_CPU_H +#define _ASM_ARCH_CPU_H + +#include + +struct davinci_id { + u8 variant; /* JTAG ID bits 31:28 */ + u16 part_no; /* JTAG ID bits 27:12 */ + u16 manufacturer; /* JTAG ID bits 11:1 */ + u32 cpu_id; + char *name; +}; + +/* Can use lower 16 bits of cpu id for a variant when required */ +#define DAVINCI_CPU_ID_DM6446 0x64460000 +#define DAVINCI_CPU_ID_DM6467 0x64670000 +#define DAVINCI_CPU_ID_DM355 0x03550000 +#define DAVINCI_CPU_ID_DM365 0x03650000 +#define DAVINCI_CPU_ID_DA830 0x08300000 +#define DAVINCI_CPU_ID_DA850 0x08500000 +#define DAVINCI_CPU_ID_TNETV107X 0x0b8a0000 + +#define IS_DAVINCI_CPU(type, id) \ +static inline int is_davinci_ ##type(void) \ +{ \ + return (davinci_soc_info.cpu_id == (id)); \ +} + +IS_DAVINCI_CPU(dm644x, DAVINCI_CPU_ID_DM6446) +IS_DAVINCI_CPU(dm646x, DAVINCI_CPU_ID_DM6467) +IS_DAVINCI_CPU(dm355, DAVINCI_CPU_ID_DM355) +IS_DAVINCI_CPU(dm365, DAVINCI_CPU_ID_DM365) +IS_DAVINCI_CPU(da830, DAVINCI_CPU_ID_DA830) +IS_DAVINCI_CPU(da850, DAVINCI_CPU_ID_DA850) +IS_DAVINCI_CPU(tnetv107x, DAVINCI_CPU_ID_TNETV107X) + +#ifdef CONFIG_ARCH_DAVINCI_DM644x +#define cpu_is_davinci_dm644x() is_davinci_dm644x() +#else +#define cpu_is_davinci_dm644x() 0 +#endif + +#ifdef CONFIG_ARCH_DAVINCI_DM646x +#define cpu_is_davinci_dm646x() is_davinci_dm646x() +#else +#define cpu_is_davinci_dm646x() 0 +#endif + +#ifdef CONFIG_ARCH_DAVINCI_DM355 +#define cpu_is_davinci_dm355() is_davinci_dm355() +#else +#define cpu_is_davinci_dm355() 0 +#endif + +#ifdef CONFIG_ARCH_DAVINCI_DM365 +#define cpu_is_davinci_dm365() is_davinci_dm365() +#else +#define cpu_is_davinci_dm365() 0 +#endif + +#ifdef CONFIG_ARCH_DAVINCI_DA830 +#define cpu_is_davinci_da830() is_davinci_da830() +#else +#define cpu_is_davinci_da830() 0 +#endif + +#ifdef CONFIG_ARCH_DAVINCI_DA850 +#define cpu_is_davinci_da850() is_davinci_da850() +#else +#define cpu_is_davinci_da850() 0 +#endif + +#ifdef CONFIG_ARCH_DAVINCI_TNETV107X +#define cpu_is_davinci_tnetv107x() is_davinci_tnetv107x() +#else +#define cpu_is_davinci_tnetv107x() 0 +#endif + +#endif diff --git a/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/da8xx.h b/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/da8xx.h new file mode 100644 index 00000000..ee3461d7 --- /dev/null +++ b/ANDROID_3.4.5/arch/arm/mach-davinci/include/mach/da8xx.h @@ -0,0 +1,133 @@ +/* + * Chip specific defines for DA8XX/OMAP L1XX SoC + * + * Author: Mark A. Greer + * + * 2007, 2009-2010 (c) MontaVista Software, Inc. This file is licensed under + * the terms of the GNU General Public License version 2. This program + * is licensed "as is" without any warranty of any kind, whether express + * or implied. + */ +#ifndef __ASM_ARCH_DAVINCI_DA8XX_H +#define __ASM_ARCH_DAVINCI_DA8XX_H + +#include