diff options
author | Kukjin Kim <kgene.kim@samsung.com> | 2010-12-29 20:44:13 -0500 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2010-12-29 20:44:13 -0500 |
commit | 724c35cf530651f68f5958dc02e0b49ac6661226 (patch) | |
tree | 7511b55f0efc07495a559f48b3071a34f0bfaff3 /arch/arm/mach-s5pv210 | |
parent | 57ca51514905b7aea532977e4e87e989d33bfcbb (diff) | |
parent | 3bbef1b912df64a86a86e402d7686a8ed38abaf4 (diff) |
Merge branch 'next-s5p' into for-next-new
Diffstat (limited to 'arch/arm/mach-s5pv210')
-rw-r--r-- | arch/arm/mach-s5pv210/clock.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-s5pv210/cpu.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-s5pv210/include/mach/irqs.h | 3 | ||||
-rw-r--r-- | arch/arm/mach-s5pv210/include/mach/map.h | 6 | ||||
-rw-r--r-- | arch/arm/mach-s5pv210/include/mach/regs-clock.h | 5 | ||||
-rw-r--r-- | arch/arm/mach-s5pv210/mach-smdkv210.c | 57 |
6 files changed, 72 insertions, 10 deletions
diff --git a/arch/arm/mach-s5pv210/clock.c b/arch/arm/mach-s5pv210/clock.c index b774ff1805db..dab6ef3b6ca9 100644 --- a/arch/arm/mach-s5pv210/clock.c +++ b/arch/arm/mach-s5pv210/clock.c | |||
@@ -525,6 +525,12 @@ static struct clk init_clocks[] = { | |||
525 | .parent = &clk_pclk_psys.clk, | 525 | .parent = &clk_pclk_psys.clk, |
526 | .enable = s5pv210_clk_ip3_ctrl, | 526 | .enable = s5pv210_clk_ip3_ctrl, |
527 | .ctrlbit = (1 << 20), | 527 | .ctrlbit = (1 << 20), |
528 | }, { | ||
529 | .name = "sromc", | ||
530 | .id = -1, | ||
531 | .parent = &clk_hclk_psys.clk, | ||
532 | .enable = s5pv210_clk_ip1_ctrl, | ||
533 | .ctrlbit = (1 << 26), | ||
528 | }, | 534 | }, |
529 | }; | 535 | }; |
530 | 536 | ||
diff --git a/arch/arm/mach-s5pv210/cpu.c b/arch/arm/mach-s5pv210/cpu.c index 8eb480e201b0..61e6c24b90ac 100644 --- a/arch/arm/mach-s5pv210/cpu.c +++ b/arch/arm/mach-s5pv210/cpu.c | |||
@@ -81,11 +81,6 @@ static struct map_desc s5pv210_iodesc[] __initdata = { | |||
81 | .length = SZ_512K, | 81 | .length = SZ_512K, |
82 | .type = MT_DEVICE, | 82 | .type = MT_DEVICE, |
83 | }, { | 83 | }, { |
84 | .virtual = (unsigned long)S5P_VA_SROMC, | ||
85 | .pfn = __phys_to_pfn(S5PV210_PA_SROMC), | ||
86 | .length = SZ_4K, | ||
87 | .type = MT_DEVICE, | ||
88 | }, { | ||
89 | .virtual = (unsigned long)S5P_VA_DMC0, | 84 | .virtual = (unsigned long)S5P_VA_DMC0, |
90 | .pfn = __phys_to_pfn(S5PV210_PA_DMC0), | 85 | .pfn = __phys_to_pfn(S5PV210_PA_DMC0), |
91 | .length = SZ_4K, | 86 | .length = SZ_4K, |
diff --git a/arch/arm/mach-s5pv210/include/mach/irqs.h b/arch/arm/mach-s5pv210/include/mach/irqs.h index 119b95fdc3ce..26710b35ef87 100644 --- a/arch/arm/mach-s5pv210/include/mach/irqs.h +++ b/arch/arm/mach-s5pv210/include/mach/irqs.h | |||
@@ -65,7 +65,7 @@ | |||
65 | #define IRQ_HSMMC0 S5P_IRQ_VIC1(26) | 65 | #define IRQ_HSMMC0 S5P_IRQ_VIC1(26) |
66 | #define IRQ_HSMMC1 S5P_IRQ_VIC1(27) | 66 | #define IRQ_HSMMC1 S5P_IRQ_VIC1(27) |
67 | #define IRQ_HSMMC2 S5P_IRQ_VIC1(28) | 67 | #define IRQ_HSMMC2 S5P_IRQ_VIC1(28) |
68 | #define IRQ_MIPICSI S5P_IRQ_VIC1(29) | 68 | #define IRQ_MIPI_CSIS S5P_IRQ_VIC1(29) |
69 | #define IRQ_MIPIDSI S5P_IRQ_VIC1(30) | 69 | #define IRQ_MIPIDSI S5P_IRQ_VIC1(30) |
70 | #define IRQ_ONENAND_AUDI S5P_IRQ_VIC1(31) | 70 | #define IRQ_ONENAND_AUDI S5P_IRQ_VIC1(31) |
71 | 71 | ||
@@ -132,5 +132,6 @@ | |||
132 | #define IRQ_LCD_FIFO IRQ_LCD0 | 132 | #define IRQ_LCD_FIFO IRQ_LCD0 |
133 | #define IRQ_LCD_VSYNC IRQ_LCD1 | 133 | #define IRQ_LCD_VSYNC IRQ_LCD1 |
134 | #define IRQ_LCD_SYSTEM IRQ_LCD2 | 134 | #define IRQ_LCD_SYSTEM IRQ_LCD2 |
135 | #define IRQ_MIPI_CSIS0 IRQ_MIPI_CSIS | ||
135 | 136 | ||
136 | #endif /* ASM_ARCH_IRQS_H */ | 137 | #endif /* ASM_ARCH_IRQS_H */ |
diff --git a/arch/arm/mach-s5pv210/include/mach/map.h b/arch/arm/mach-s5pv210/include/mach/map.h index 861d7fe11fc9..3611492ad681 100644 --- a/arch/arm/mach-s5pv210/include/mach/map.h +++ b/arch/arm/mach-s5pv210/include/mach/map.h | |||
@@ -16,6 +16,8 @@ | |||
16 | #include <plat/map-base.h> | 16 | #include <plat/map-base.h> |
17 | #include <plat/map-s5p.h> | 17 | #include <plat/map-s5p.h> |
18 | 18 | ||
19 | #define S5PV210_PA_SROM_BANK5 (0xA8000000) | ||
20 | |||
19 | #define S5PC110_PA_ONENAND (0xB0000000) | 21 | #define S5PC110_PA_ONENAND (0xB0000000) |
20 | #define S5P_PA_ONENAND S5PC110_PA_ONENAND | 22 | #define S5P_PA_ONENAND S5PC110_PA_ONENAND |
21 | 23 | ||
@@ -60,6 +62,7 @@ | |||
60 | #define S3C_VA_UARTx(x) (S3C_VA_UART + ((x) * S3C_UART_OFFSET)) | 62 | #define S3C_VA_UARTx(x) (S3C_VA_UART + ((x) * S3C_UART_OFFSET)) |
61 | 63 | ||
62 | #define S5PV210_PA_SROMC (0xE8000000) | 64 | #define S5PV210_PA_SROMC (0xE8000000) |
65 | #define S5P_PA_SROMC S5PV210_PA_SROMC | ||
63 | 66 | ||
64 | #define S5PV210_PA_CFCON (0xE8200000) | 67 | #define S5PV210_PA_CFCON (0xE8200000) |
65 | 68 | ||
@@ -107,6 +110,8 @@ | |||
107 | #define S5PV210_PA_DMC0 (0xF0000000) | 110 | #define S5PV210_PA_DMC0 (0xF0000000) |
108 | #define S5PV210_PA_DMC1 (0xF1400000) | 111 | #define S5PV210_PA_DMC1 (0xF1400000) |
109 | 112 | ||
113 | #define S5PV210_PA_MIPI_CSIS 0xFA600000 | ||
114 | |||
110 | /* compatibiltiy defines. */ | 115 | /* compatibiltiy defines. */ |
111 | #define S3C_PA_UART S5PV210_PA_UART | 116 | #define S3C_PA_UART S5PV210_PA_UART |
112 | #define S3C_PA_HSMMC0 S5PV210_PA_HSMMC(0) | 117 | #define S3C_PA_HSMMC0 S5PV210_PA_HSMMC(0) |
@@ -123,6 +128,7 @@ | |||
123 | #define S5P_PA_FIMC0 S5PV210_PA_FIMC0 | 128 | #define S5P_PA_FIMC0 S5PV210_PA_FIMC0 |
124 | #define S5P_PA_FIMC1 S5PV210_PA_FIMC1 | 129 | #define S5P_PA_FIMC1 S5PV210_PA_FIMC1 |
125 | #define S5P_PA_FIMC2 S5PV210_PA_FIMC2 | 130 | #define S5P_PA_FIMC2 S5PV210_PA_FIMC2 |
131 | #define S5P_PA_MIPI_CSIS0 S5PV210_PA_MIPI_CSIS | ||
126 | 132 | ||
127 | #define SAMSUNG_PA_ADC S5PV210_PA_ADC | 133 | #define SAMSUNG_PA_ADC S5PV210_PA_ADC |
128 | #define SAMSUNG_PA_CFCON S5PV210_PA_CFCON | 134 | #define SAMSUNG_PA_CFCON S5PV210_PA_CFCON |
diff --git a/arch/arm/mach-s5pv210/include/mach/regs-clock.h b/arch/arm/mach-s5pv210/include/mach/regs-clock.h index ebaabe021af9..4c45b74def5f 100644 --- a/arch/arm/mach-s5pv210/include/mach/regs-clock.h +++ b/arch/arm/mach-s5pv210/include/mach/regs-clock.h | |||
@@ -161,7 +161,7 @@ | |||
161 | #define S5P_MDNIE_SEL S5P_CLKREG(0x7008) | 161 | #define S5P_MDNIE_SEL S5P_CLKREG(0x7008) |
162 | #define S5P_MIPI_PHY_CON0 S5P_CLKREG(0x7200) | 162 | #define S5P_MIPI_PHY_CON0 S5P_CLKREG(0x7200) |
163 | #define S5P_MIPI_PHY_CON1 S5P_CLKREG(0x7204) | 163 | #define S5P_MIPI_PHY_CON1 S5P_CLKREG(0x7204) |
164 | #define S5P_MIPI_CONTROL S5P_CLKREG(0xE814) | 164 | #define S5P_MIPI_DPHY_CONTROL S5P_CLKREG(0xE814) |
165 | 165 | ||
166 | #define S5P_IDLE_CFG_TL_MASK (3 << 30) | 166 | #define S5P_IDLE_CFG_TL_MASK (3 << 30) |
167 | #define S5P_IDLE_CFG_TM_MASK (3 << 28) | 167 | #define S5P_IDLE_CFG_TM_MASK (3 << 28) |
@@ -195,9 +195,6 @@ | |||
195 | #define S5P_OTHERS_RET_UART (1 << 28) | 195 | #define S5P_OTHERS_RET_UART (1 << 28) |
196 | #define S5P_OTHERS_USB_SIG_MASK (1 << 16) | 196 | #define S5P_OTHERS_USB_SIG_MASK (1 << 16) |
197 | 197 | ||
198 | /* MIPI */ | ||
199 | #define S5P_MIPI_DPHY_EN (3) | ||
200 | |||
201 | /* S5P_DAC_CONTROL */ | 198 | /* S5P_DAC_CONTROL */ |
202 | #define S5P_DAC_ENABLE (1) | 199 | #define S5P_DAC_ENABLE (1) |
203 | #define S5P_DAC_DISABLE (0) | 200 | #define S5P_DAC_DISABLE (0) |
diff --git a/arch/arm/mach-s5pv210/mach-smdkv210.c b/arch/arm/mach-s5pv210/mach-smdkv210.c index 82e635625073..3a59068e983a 100644 --- a/arch/arm/mach-s5pv210/mach-smdkv210.c +++ b/arch/arm/mach-s5pv210/mach-smdkv210.c | |||
@@ -14,6 +14,8 @@ | |||
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/serial_core.h> | 15 | #include <linux/serial_core.h> |
16 | #include <linux/sysdev.h> | 16 | #include <linux/sysdev.h> |
17 | #include <linux/dm9000.h> | ||
18 | #include <linux/gpio.h> | ||
17 | 19 | ||
18 | #include <asm/mach/arch.h> | 20 | #include <asm/mach/arch.h> |
19 | #include <asm/mach/map.h> | 21 | #include <asm/mach/map.h> |
@@ -24,6 +26,8 @@ | |||
24 | #include <mach/regs-clock.h> | 26 | #include <mach/regs-clock.h> |
25 | 27 | ||
26 | #include <plat/regs-serial.h> | 28 | #include <plat/regs-serial.h> |
29 | #include <plat/regs-srom.h> | ||
30 | #include <plat/gpio-cfg.h> | ||
27 | #include <plat/s5pv210.h> | 31 | #include <plat/s5pv210.h> |
28 | #include <plat/devs.h> | 32 | #include <plat/devs.h> |
29 | #include <plat/cpu.h> | 33 | #include <plat/cpu.h> |
@@ -102,6 +106,39 @@ static struct samsung_keypad_platdata smdkv210_keypad_data __initdata = { | |||
102 | .cols = 8, | 106 | .cols = 8, |
103 | }; | 107 | }; |
104 | 108 | ||
109 | static struct resource smdkv210_dm9000_resources[] = { | ||
110 | [0] = { | ||
111 | .start = S5PV210_PA_SROM_BANK5, | ||
112 | .end = S5PV210_PA_SROM_BANK5, | ||
113 | .flags = IORESOURCE_MEM, | ||
114 | }, | ||
115 | [1] = { | ||
116 | .start = S5PV210_PA_SROM_BANK5 + 2, | ||
117 | .end = S5PV210_PA_SROM_BANK5 + 2, | ||
118 | .flags = IORESOURCE_MEM, | ||
119 | }, | ||
120 | [2] = { | ||
121 | .start = IRQ_EINT(9), | ||
122 | .end = IRQ_EINT(9), | ||
123 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, | ||
124 | }, | ||
125 | }; | ||
126 | |||
127 | static struct dm9000_plat_data smdkv210_dm9000_platdata = { | ||
128 | .flags = DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM, | ||
129 | .dev_addr = { 0x00, 0x09, 0xc0, 0xff, 0xec, 0x48 }, | ||
130 | }; | ||
131 | |||
132 | struct platform_device smdkv210_dm9000 = { | ||
133 | .name = "dm9000", | ||
134 | .id = -1, | ||
135 | .num_resources = ARRAY_SIZE(smdkv210_dm9000_resources), | ||
136 | .resource = smdkv210_dm9000_resources, | ||
137 | .dev = { | ||
138 | .platform_data = &smdkv210_dm9000_platdata, | ||
139 | }, | ||
140 | }; | ||
141 | |||
105 | static struct platform_device *smdkv210_devices[] __initdata = { | 142 | static struct platform_device *smdkv210_devices[] __initdata = { |
106 | &s5pv210_device_iis0, | 143 | &s5pv210_device_iis0, |
107 | &s5pv210_device_ac97, | 144 | &s5pv210_device_ac97, |
@@ -119,8 +156,26 @@ static struct platform_device *smdkv210_devices[] __initdata = { | |||
119 | &s3c_device_rtc, | 156 | &s3c_device_rtc, |
120 | &s3c_device_ts, | 157 | &s3c_device_ts, |
121 | &s3c_device_wdt, | 158 | &s3c_device_wdt, |
159 | &smdkv210_dm9000, | ||
122 | }; | 160 | }; |
123 | 161 | ||
162 | static void __init smdkv210_dm9000_init(void) | ||
163 | { | ||
164 | unsigned int tmp; | ||
165 | |||
166 | gpio_request(S5PV210_MP01(5), "nCS5"); | ||
167 | s3c_gpio_cfgpin(S5PV210_MP01(5), S3C_GPIO_SFN(2)); | ||
168 | gpio_free(S5PV210_MP01(5)); | ||
169 | |||
170 | tmp = (5 << S5P_SROM_BCX__TACC__SHIFT); | ||
171 | __raw_writel(tmp, S5P_SROM_BC5); | ||
172 | |||
173 | tmp = __raw_readl(S5P_SROM_BW); | ||
174 | tmp &= (S5P_SROM_BW__CS_MASK << S5P_SROM_BW__NCS5__SHIFT); | ||
175 | tmp |= (1 << S5P_SROM_BW__NCS5__SHIFT); | ||
176 | __raw_writel(tmp, S5P_SROM_BW); | ||
177 | } | ||
178 | |||
124 | static struct i2c_board_info smdkv210_i2c_devs0[] __initdata = { | 179 | static struct i2c_board_info smdkv210_i2c_devs0[] __initdata = { |
125 | { I2C_BOARD_INFO("24c08", 0x50), }, /* Samsung S524AD0XD1 */ | 180 | { I2C_BOARD_INFO("24c08", 0x50), }, /* Samsung S524AD0XD1 */ |
126 | { I2C_BOARD_INFO("wm8580", 0x1b), }, | 181 | { I2C_BOARD_INFO("wm8580", 0x1b), }, |
@@ -151,6 +206,8 @@ static void __init smdkv210_machine_init(void) | |||
151 | { | 206 | { |
152 | s3c_pm_init(); | 207 | s3c_pm_init(); |
153 | 208 | ||
209 | smdkv210_dm9000_init(); | ||
210 | |||
154 | samsung_keypad_set_platdata(&smdkv210_keypad_data); | 211 | samsung_keypad_set_platdata(&smdkv210_keypad_data); |
155 | s3c24xx_ts_set_platdata(&s3c_ts_platform); | 212 | s3c24xx_ts_set_platdata(&s3c_ts_platform); |
156 | 213 | ||