diff options
Diffstat (limited to 'arch/arm/mach-davinci/include/mach')
-rw-r--r-- | arch/arm/mach-davinci/include/mach/asp.h | 3 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/common.h | 6 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/cpufreq.h | 26 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/cpuidle.h | 17 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/da8xx.h | 26 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/dm365.h | 10 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/dm644x.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/irqs.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/keyscan.h | 41 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/mux.h | 20 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/system.h | 3 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/usb.h | 59 |
12 files changed, 196 insertions, 17 deletions
diff --git a/arch/arm/mach-davinci/include/mach/asp.h b/arch/arm/mach-davinci/include/mach/asp.h index e07f70ed7c53..834725f1e81d 100644 --- a/arch/arm/mach-davinci/include/mach/asp.h +++ b/arch/arm/mach-davinci/include/mach/asp.h | |||
@@ -11,6 +11,9 @@ | |||
11 | #define DAVINCI_ASP0_BASE 0x01E02000 | 11 | #define DAVINCI_ASP0_BASE 0x01E02000 |
12 | #define DAVINCI_ASP1_BASE 0x01E04000 | 12 | #define DAVINCI_ASP1_BASE 0x01E04000 |
13 | 13 | ||
14 | /* Bases of dm365 register banks */ | ||
15 | #define DAVINCI_DM365_ASP0_BASE 0x01D02000 | ||
16 | |||
14 | /* Bases of dm646x register banks */ | 17 | /* Bases of dm646x register banks */ |
15 | #define DAVINCI_DM646X_MCASP0_REG_BASE 0x01D01000 | 18 | #define DAVINCI_DM646X_MCASP0_REG_BASE 0x01D01000 |
16 | #define DAVINCI_DM646X_MCASP1_REG_BASE 0x01D01800 | 19 | #define DAVINCI_DM646X_MCASP1_REG_BASE 0x01D01800 |
diff --git a/arch/arm/mach-davinci/include/mach/common.h b/arch/arm/mach-davinci/include/mach/common.h index 1fd3917cae4e..6ca2c9a0a482 100644 --- a/arch/arm/mach-davinci/include/mach/common.h +++ b/arch/arm/mach-davinci/include/mach/common.h | |||
@@ -20,12 +20,6 @@ extern void davinci_irq_init(void); | |||
20 | extern void __iomem *davinci_intc_base; | 20 | extern void __iomem *davinci_intc_base; |
21 | extern int davinci_intc_type; | 21 | extern int davinci_intc_type; |
22 | 22 | ||
23 | /* parameters describe VBUS sourcing for host mode */ | ||
24 | extern void setup_usb(unsigned mA, unsigned potpgt_msec); | ||
25 | |||
26 | /* parameters describe VBUS sourcing for host mode */ | ||
27 | extern void setup_usb(unsigned mA, unsigned potpgt_msec); | ||
28 | |||
29 | struct davinci_timer_instance { | 23 | struct davinci_timer_instance { |
30 | void __iomem *base; | 24 | void __iomem *base; |
31 | u32 bottom_irq; | 25 | u32 bottom_irq; |
diff --git a/arch/arm/mach-davinci/include/mach/cpufreq.h b/arch/arm/mach-davinci/include/mach/cpufreq.h new file mode 100644 index 000000000000..3c089cfb6cd6 --- /dev/null +++ b/arch/arm/mach-davinci/include/mach/cpufreq.h | |||
@@ -0,0 +1,26 @@ | |||
1 | /* | ||
2 | * TI DaVinci CPUFreq platform support. | ||
3 | * | ||
4 | * Copyright (C) 2009 Texas Instruments, Inc. http://www.ti.com/ | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or | ||
7 | * modify it under the terms of the GNU General Public License as | ||
8 | * published by the Free Software Foundation version 2. | ||
9 | * | ||
10 | * This program is distributed "as is" WITHOUT ANY WARRANTY of any | ||
11 | * kind, whether express or implied; without even the implied warranty | ||
12 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | */ | ||
15 | #ifndef _MACH_DAVINCI_CPUFREQ_H | ||
16 | #define _MACH_DAVINCI_CPUFREQ_H | ||
17 | |||
18 | #include <linux/cpufreq.h> | ||
19 | |||
20 | struct davinci_cpufreq_config { | ||
21 | struct cpufreq_frequency_table *freq_table; | ||
22 | int (*set_voltage) (unsigned int index); | ||
23 | int (*init) (void); | ||
24 | }; | ||
25 | |||
26 | #endif | ||
diff --git a/arch/arm/mach-davinci/include/mach/cpuidle.h b/arch/arm/mach-davinci/include/mach/cpuidle.h new file mode 100644 index 000000000000..cbfc6a9c81b4 --- /dev/null +++ b/arch/arm/mach-davinci/include/mach/cpuidle.h | |||
@@ -0,0 +1,17 @@ | |||
1 | /* | ||
2 | * TI DaVinci cpuidle platform support | ||
3 | * | ||
4 | * 2009 (C) Texas Instruments, Inc. http://www.ti.com/ | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public License | ||
7 | * version 2. This program is licensed "as is" without any warranty of any | ||
8 | * kind, whether express or implied. | ||
9 | */ | ||
10 | #ifndef _MACH_DAVINCI_CPUIDLE_H | ||
11 | #define _MACH_DAVINCI_CPUIDLE_H | ||
12 | |||
13 | struct davinci_cpuidle_config { | ||
14 | u32 ddr2_pdown; | ||
15 | }; | ||
16 | |||
17 | #endif | ||
diff --git a/arch/arm/mach-davinci/include/mach/da8xx.h b/arch/arm/mach-davinci/include/mach/da8xx.h index d4095d0572c6..90704910d343 100644 --- a/arch/arm/mach-davinci/include/mach/da8xx.h +++ b/arch/arm/mach-davinci/include/mach/da8xx.h | |||
@@ -11,12 +11,17 @@ | |||
11 | #ifndef __ASM_ARCH_DAVINCI_DA8XX_H | 11 | #ifndef __ASM_ARCH_DAVINCI_DA8XX_H |
12 | #define __ASM_ARCH_DAVINCI_DA8XX_H | 12 | #define __ASM_ARCH_DAVINCI_DA8XX_H |
13 | 13 | ||
14 | #include <video/da8xx-fb.h> | ||
15 | |||
14 | #include <mach/serial.h> | 16 | #include <mach/serial.h> |
15 | #include <mach/edma.h> | 17 | #include <mach/edma.h> |
16 | #include <mach/i2c.h> | 18 | #include <mach/i2c.h> |
17 | #include <mach/emac.h> | 19 | #include <mach/emac.h> |
18 | #include <mach/asp.h> | 20 | #include <mach/asp.h> |
19 | #include <mach/mmc.h> | 21 | #include <mach/mmc.h> |
22 | #include <mach/usb.h> | ||
23 | |||
24 | extern void __iomem *da8xx_syscfg_base; | ||
20 | 25 | ||
21 | /* | 26 | /* |
22 | * The cp_intc interrupt controller for the da8xx isn't in the same | 27 | * The cp_intc interrupt controller for the da8xx isn't in the same |
@@ -29,11 +34,15 @@ | |||
29 | #define DA8XX_CP_INTC_SIZE SZ_8K | 34 | #define DA8XX_CP_INTC_SIZE SZ_8K |
30 | #define DA8XX_CP_INTC_VIRT (IO_VIRT - DA8XX_CP_INTC_SIZE - SZ_4K) | 35 | #define DA8XX_CP_INTC_VIRT (IO_VIRT - DA8XX_CP_INTC_SIZE - SZ_4K) |
31 | 36 | ||
32 | #define DA8XX_BOOT_CFG_BASE (IO_PHYS + 0x14000) | 37 | #define DA8XX_SYSCFG_BASE (IO_PHYS + 0x14000) |
38 | #define DA8XX_SYSCFG_VIRT(x) (da8xx_syscfg_base + (x)) | ||
39 | #define DA8XX_JTAG_ID_REG 0x18 | ||
40 | #define DA8XX_CFGCHIP0_REG 0x17c | ||
41 | #define DA8XX_CFGCHIP2_REG 0x184 | ||
42 | #define DA8XX_CFGCHIP3_REG 0x188 | ||
33 | 43 | ||
34 | #define DA8XX_PSC0_BASE 0x01c10000 | 44 | #define DA8XX_PSC0_BASE 0x01c10000 |
35 | #define DA8XX_PLL0_BASE 0x01c11000 | 45 | #define DA8XX_PLL0_BASE 0x01c11000 |
36 | #define DA8XX_JTAG_ID_REG 0x01c14018 | ||
37 | #define DA8XX_TIMER64P0_BASE 0x01c20000 | 46 | #define DA8XX_TIMER64P0_BASE 0x01c20000 |
38 | #define DA8XX_TIMER64P1_BASE 0x01c21000 | 47 | #define DA8XX_TIMER64P1_BASE 0x01c21000 |
39 | #define DA8XX_GPIO_BASE 0x01e26000 | 48 | #define DA8XX_GPIO_BASE 0x01e26000 |
@@ -43,6 +52,7 @@ | |||
43 | #define DA8XX_AEMIF_CS2_BASE 0x60000000 | 52 | #define DA8XX_AEMIF_CS2_BASE 0x60000000 |
44 | #define DA8XX_AEMIF_CS3_BASE 0x62000000 | 53 | #define DA8XX_AEMIF_CS3_BASE 0x62000000 |
45 | #define DA8XX_AEMIF_CTL_BASE 0x68000000 | 54 | #define DA8XX_AEMIF_CTL_BASE 0x68000000 |
55 | #define DA8XX_DDR2_CTL_BASE 0xb0000000 | ||
46 | 56 | ||
47 | #define PINMUX0 0x00 | 57 | #define PINMUX0 0x00 |
48 | #define PINMUX1 0x04 | 58 | #define PINMUX1 0x04 |
@@ -71,13 +81,20 @@ void __init da850_init(void); | |||
71 | int da8xx_register_edma(void); | 81 | int da8xx_register_edma(void); |
72 | int da8xx_register_i2c(int instance, struct davinci_i2c_platform_data *pdata); | 82 | int da8xx_register_i2c(int instance, struct davinci_i2c_platform_data *pdata); |
73 | int da8xx_register_watchdog(void); | 83 | int da8xx_register_watchdog(void); |
84 | int da8xx_register_usb20(unsigned mA, unsigned potpgt); | ||
85 | int da8xx_register_usb11(struct da8xx_ohci_root_hub *pdata); | ||
74 | int da8xx_register_emac(void); | 86 | int da8xx_register_emac(void); |
75 | int da8xx_register_lcdc(void); | 87 | int da8xx_register_lcdc(struct da8xx_lcdc_platform_data *pdata); |
76 | int da8xx_register_mmcsd0(struct davinci_mmc_config *config); | 88 | int da8xx_register_mmcsd0(struct davinci_mmc_config *config); |
77 | void __init da8xx_init_mcasp(int id, struct snd_platform_data *pdata); | 89 | void __init da8xx_register_mcasp(int id, struct snd_platform_data *pdata); |
90 | int da8xx_register_rtc(void); | ||
91 | int da850_register_cpufreq(void); | ||
92 | int da8xx_register_cpuidle(void); | ||
78 | 93 | ||
79 | extern struct platform_device da8xx_serial_device; | 94 | extern struct platform_device da8xx_serial_device; |
80 | extern struct emac_platform_data da8xx_emac_pdata; | 95 | extern struct emac_platform_data da8xx_emac_pdata; |
96 | extern struct da8xx_lcdc_platform_data sharp_lcd035q3dg01_pdata; | ||
97 | extern struct da8xx_lcdc_platform_data sharp_lk043t1dg01_pdata; | ||
81 | 98 | ||
82 | extern const short da830_emif25_pins[]; | 99 | extern const short da830_emif25_pins[]; |
83 | extern const short da830_spi0_pins[]; | 100 | extern const short da830_spi0_pins[]; |
@@ -110,6 +127,7 @@ extern const short da850_uart2_pins[]; | |||
110 | extern const short da850_i2c0_pins[]; | 127 | extern const short da850_i2c0_pins[]; |
111 | extern const short da850_i2c1_pins[]; | 128 | extern const short da850_i2c1_pins[]; |
112 | extern const short da850_cpgmac_pins[]; | 129 | extern const short da850_cpgmac_pins[]; |
130 | extern const short da850_rmii_pins[]; | ||
113 | extern const short da850_mcasp_pins[]; | 131 | extern const short da850_mcasp_pins[]; |
114 | extern const short da850_lcdcntl_pins[]; | 132 | extern const short da850_lcdcntl_pins[]; |
115 | extern const short da850_mmcsd0_pins[]; | 133 | extern const short da850_mmcsd0_pins[]; |
diff --git a/arch/arm/mach-davinci/include/mach/dm365.h b/arch/arm/mach-davinci/include/mach/dm365.h index 09db4343bb4c..f1710a30e7ba 100644 --- a/arch/arm/mach-davinci/include/mach/dm365.h +++ b/arch/arm/mach-davinci/include/mach/dm365.h | |||
@@ -16,6 +16,8 @@ | |||
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <mach/hardware.h> | 17 | #include <mach/hardware.h> |
18 | #include <mach/emac.h> | 18 | #include <mach/emac.h> |
19 | #include <mach/asp.h> | ||
20 | #include <mach/keyscan.h> | ||
19 | 21 | ||
20 | #define DM365_EMAC_BASE (0x01D07000) | 22 | #define DM365_EMAC_BASE (0x01D07000) |
21 | #define DM365_EMAC_CNTRL_OFFSET (0x0000) | 23 | #define DM365_EMAC_CNTRL_OFFSET (0x0000) |
@@ -24,6 +26,14 @@ | |||
24 | #define DM365_EMAC_MDIO_OFFSET (0x4000) | 26 | #define DM365_EMAC_MDIO_OFFSET (0x4000) |
25 | #define DM365_EMAC_CNTRL_RAM_SIZE (0x2000) | 27 | #define DM365_EMAC_CNTRL_RAM_SIZE (0x2000) |
26 | 28 | ||
29 | /* Base of key scan register bank */ | ||
30 | #define DM365_KEYSCAN_BASE (0x01C69400) | ||
31 | |||
32 | #define DM365_RTC_BASE (0x01C69000) | ||
33 | |||
27 | void __init dm365_init(void); | 34 | void __init dm365_init(void); |
35 | void __init dm365_init_asp(struct snd_platform_data *pdata); | ||
36 | void __init dm365_init_ks(struct davinci_ks_platform_data *pdata); | ||
37 | void __init dm365_init_rtc(void); | ||
28 | 38 | ||
29 | #endif /* __ASM_ARCH_DM365_H */ | 39 | #endif /* __ASM_ARCH_DM365_H */ |
diff --git a/arch/arm/mach-davinci/include/mach/dm644x.h b/arch/arm/mach-davinci/include/mach/dm644x.h index 0efb73852c2c..44e8f0fae9ea 100644 --- a/arch/arm/mach-davinci/include/mach/dm644x.h +++ b/arch/arm/mach-davinci/include/mach/dm644x.h | |||
@@ -22,7 +22,6 @@ | |||
22 | #ifndef __ASM_ARCH_DM644X_H | 22 | #ifndef __ASM_ARCH_DM644X_H |
23 | #define __ASM_ARCH_DM644X_H | 23 | #define __ASM_ARCH_DM644X_H |
24 | 24 | ||
25 | #include <linux/platform_device.h> | ||
26 | #include <mach/hardware.h> | 25 | #include <mach/hardware.h> |
27 | #include <mach/emac.h> | 26 | #include <mach/emac.h> |
28 | #include <mach/asp.h> | 27 | #include <mach/asp.h> |
diff --git a/arch/arm/mach-davinci/include/mach/irqs.h b/arch/arm/mach-davinci/include/mach/irqs.h index 3c918a772619..354af71798dc 100644 --- a/arch/arm/mach-davinci/include/mach/irqs.h +++ b/arch/arm/mach-davinci/include/mach/irqs.h | |||
@@ -217,6 +217,7 @@ | |||
217 | #define IRQ_DM365_SDIOINT0 23 | 217 | #define IRQ_DM365_SDIOINT0 23 |
218 | #define IRQ_DM365_MMCINT1 27 | 218 | #define IRQ_DM365_MMCINT1 27 |
219 | #define IRQ_DM365_PWMINT3 28 | 219 | #define IRQ_DM365_PWMINT3 28 |
220 | #define IRQ_DM365_RTCINT 29 | ||
220 | #define IRQ_DM365_SDIOINT1 31 | 221 | #define IRQ_DM365_SDIOINT1 31 |
221 | #define IRQ_DM365_SPIINT0_0 42 | 222 | #define IRQ_DM365_SPIINT0_0 42 |
222 | #define IRQ_DM365_SPIINT3_0 43 | 223 | #define IRQ_DM365_SPIINT3_0 43 |
diff --git a/arch/arm/mach-davinci/include/mach/keyscan.h b/arch/arm/mach-davinci/include/mach/keyscan.h new file mode 100644 index 000000000000..b4e21a2976d1 --- /dev/null +++ b/arch/arm/mach-davinci/include/mach/keyscan.h | |||
@@ -0,0 +1,41 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009 Texas Instruments, Inc | ||
3 | * | ||
4 | * Author: Miguel Aguilar <miguel.aguilar@ridgerun.com> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
19 | */ | ||
20 | |||
21 | #ifndef DAVINCI_KEYSCAN_H | ||
22 | #define DAVINCI_KEYSCAN_H | ||
23 | |||
24 | #include <linux/io.h> | ||
25 | |||
26 | enum davinci_matrix_types { | ||
27 | DAVINCI_KEYSCAN_MATRIX_4X4, | ||
28 | DAVINCI_KEYSCAN_MATRIX_5X3, | ||
29 | }; | ||
30 | |||
31 | struct davinci_ks_platform_data { | ||
32 | unsigned short *keymap; | ||
33 | u32 keymapsize; | ||
34 | u8 rep:1; | ||
35 | u8 strobe; | ||
36 | u8 interval; | ||
37 | u8 matrix_type; | ||
38 | }; | ||
39 | |||
40 | #endif | ||
41 | |||
diff --git a/arch/arm/mach-davinci/include/mach/mux.h b/arch/arm/mach-davinci/include/mach/mux.h index bb84893a4e83..b60c693985ff 100644 --- a/arch/arm/mach-davinci/include/mach/mux.h +++ b/arch/arm/mach-davinci/include/mach/mux.h | |||
@@ -40,6 +40,11 @@ enum davinci_dm644x_index { | |||
40 | 40 | ||
41 | /* AEAW functions */ | 41 | /* AEAW functions */ |
42 | DM644X_AEAW, | 42 | DM644X_AEAW, |
43 | DM644X_AEAW0, | ||
44 | DM644X_AEAW1, | ||
45 | DM644X_AEAW2, | ||
46 | DM644X_AEAW3, | ||
47 | DM644X_AEAW4, | ||
43 | 48 | ||
44 | /* Memory Stick */ | 49 | /* Memory Stick */ |
45 | DM644X_MSTK, | 50 | DM644X_MSTK, |
@@ -237,8 +242,8 @@ enum davinci_dm365_index { | |||
237 | DM365_EMAC_MDIO, | 242 | DM365_EMAC_MDIO, |
238 | DM365_EMAC_MDCLK, | 243 | DM365_EMAC_MDCLK, |
239 | 244 | ||
240 | /* Keypad */ | 245 | /* Key Scan */ |
241 | DM365_KEYPAD, | 246 | DM365_KEYSCAN, |
242 | 247 | ||
243 | /* PWM */ | 248 | /* PWM */ |
244 | DM365_PWM0, | 249 | DM365_PWM0, |
@@ -774,6 +779,14 @@ enum davinci_da850_index { | |||
774 | DA850_MII_RXD_0, | 779 | DA850_MII_RXD_0, |
775 | DA850_MDIO_CLK, | 780 | DA850_MDIO_CLK, |
776 | DA850_MDIO_D, | 781 | DA850_MDIO_D, |
782 | DA850_RMII_TXD_0, | ||
783 | DA850_RMII_TXD_1, | ||
784 | DA850_RMII_TXEN, | ||
785 | DA850_RMII_CRS_DV, | ||
786 | DA850_RMII_RXD_0, | ||
787 | DA850_RMII_RXD_1, | ||
788 | DA850_RMII_RXER, | ||
789 | DA850_RMII_MHZ_50_CLK, | ||
777 | 790 | ||
778 | /* McASP function */ | 791 | /* McASP function */ |
779 | DA850_ACLKR, | 792 | DA850_ACLKR, |
@@ -881,8 +894,9 @@ enum davinci_da850_index { | |||
881 | DA850_NEMA_CS_2, | 894 | DA850_NEMA_CS_2, |
882 | 895 | ||
883 | /* GPIO function */ | 896 | /* GPIO function */ |
897 | DA850_GPIO2_6, | ||
898 | DA850_GPIO2_8, | ||
884 | DA850_GPIO2_15, | 899 | DA850_GPIO2_15, |
885 | DA850_GPIO8_10, | ||
886 | DA850_GPIO4_0, | 900 | DA850_GPIO4_0, |
887 | DA850_GPIO4_1, | 901 | DA850_GPIO4_1, |
888 | }; | 902 | }; |
diff --git a/arch/arm/mach-davinci/include/mach/system.h b/arch/arm/mach-davinci/include/mach/system.h index 8e4f10fe1263..5a7d7581b8ce 100644 --- a/arch/arm/mach-davinci/include/mach/system.h +++ b/arch/arm/mach-davinci/include/mach/system.h | |||
@@ -11,9 +11,6 @@ | |||
11 | #ifndef __ASM_ARCH_SYSTEM_H | 11 | #ifndef __ASM_ARCH_SYSTEM_H |
12 | #define __ASM_ARCH_SYSTEM_H | 12 | #define __ASM_ARCH_SYSTEM_H |
13 | 13 | ||
14 | #include <linux/io.h> | ||
15 | #include <mach/hardware.h> | ||
16 | |||
17 | extern void davinci_watchdog_reset(void); | 14 | extern void davinci_watchdog_reset(void); |
18 | 15 | ||
19 | static inline void arch_idle(void) | 16 | static inline void arch_idle(void) |
diff --git a/arch/arm/mach-davinci/include/mach/usb.h b/arch/arm/mach-davinci/include/mach/usb.h new file mode 100644 index 000000000000..e0bc4abe69c2 --- /dev/null +++ b/arch/arm/mach-davinci/include/mach/usb.h | |||
@@ -0,0 +1,59 @@ | |||
1 | /* | ||
2 | * USB related definitions | ||
3 | * | ||
4 | * Copyright (C) 2009 MontaVista Software, Inc. <source@mvista.com> | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public License | ||
7 | * version 2. This program is licensed "as is" without any warranty of any | ||
8 | * kind, whether express or implied. | ||
9 | */ | ||
10 | |||
11 | #ifndef __ASM_ARCH_USB_H | ||
12 | #define __ASM_ARCH_USB_H | ||
13 | |||
14 | /* DA8xx CFGCHIP2 (USB 2.0 PHY Control) register bits */ | ||
15 | #define CFGCHIP2_PHYCLKGD (1 << 17) | ||
16 | #define CFGCHIP2_VBUSSENSE (1 << 16) | ||
17 | #define CFGCHIP2_RESET (1 << 15) | ||
18 | #define CFGCHIP2_OTGMODE (3 << 13) | ||
19 | #define CFGCHIP2_NO_OVERRIDE (0 << 13) | ||
20 | #define CFGCHIP2_FORCE_HOST (1 << 13) | ||
21 | #define CFGCHIP2_FORCE_DEVICE (2 << 13) | ||
22 | #define CFGCHIP2_FORCE_HOST_VBUS_LOW (3 << 13) | ||
23 | #define CFGCHIP2_USB1PHYCLKMUX (1 << 12) | ||
24 | #define CFGCHIP2_USB2PHYCLKMUX (1 << 11) | ||
25 | #define CFGCHIP2_PHYPWRDN (1 << 10) | ||
26 | #define CFGCHIP2_OTGPWRDN (1 << 9) | ||
27 | #define CFGCHIP2_DATPOL (1 << 8) | ||
28 | #define CFGCHIP2_USB1SUSPENDM (1 << 7) | ||
29 | #define CFGCHIP2_PHY_PLLON (1 << 6) /* override PLL suspend */ | ||
30 | #define CFGCHIP2_SESENDEN (1 << 5) /* Vsess_end comparator */ | ||
31 | #define CFGCHIP2_VBDTCTEN (1 << 4) /* Vbus comparator */ | ||
32 | #define CFGCHIP2_REFFREQ (0xf << 0) | ||
33 | #define CFGCHIP2_REFFREQ_12MHZ (1 << 0) | ||
34 | #define CFGCHIP2_REFFREQ_24MHZ (2 << 0) | ||
35 | #define CFGCHIP2_REFFREQ_48MHZ (3 << 0) | ||
36 | |||
37 | struct da8xx_ohci_root_hub; | ||
38 | |||
39 | typedef void (*da8xx_ocic_handler_t)(struct da8xx_ohci_root_hub *hub, | ||
40 | unsigned port); | ||
41 | |||
42 | /* Passed as the platform data to the OHCI driver */ | ||
43 | struct da8xx_ohci_root_hub { | ||
44 | /* Switch the port power on/off */ | ||
45 | int (*set_power)(unsigned port, int on); | ||
46 | /* Read the port power status */ | ||
47 | int (*get_power)(unsigned port); | ||
48 | /* Read the port over-current indicator */ | ||
49 | int (*get_oci)(unsigned port); | ||
50 | /* Over-current indicator change notification (pass NULL to disable) */ | ||
51 | int (*ocic_notify)(da8xx_ocic_handler_t handler); | ||
52 | |||
53 | /* Time from power on to power good (in 2 ms units) */ | ||
54 | u8 potpgt; | ||
55 | }; | ||
56 | |||
57 | void davinci_setup_usb(unsigned mA, unsigned potpgt_ms); | ||
58 | |||
59 | #endif /* ifndef __ASM_ARCH_USB_H */ | ||