diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-21 20:38:49 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-21 20:38:49 -0500 |
commit | 7c2db36e730ee4facd341679ecb21ee73ba92831 (patch) | |
tree | 75016fba72aaf0581b9263f7fa4c565e6e634f3c /arch/arm | |
parent | 8b5628ab83b671f96ac9f174c1bd51c92589fc82 (diff) | |
parent | a47a376f1c025e23e836c0376813c0424de665c2 (diff) |
Merge branch 'akpm' (incoming from Andrew)
Merge misc patches from Andrew Morton:
- Florian has vanished so I appear to have become fbdev maintainer
again :(
- Joel and Mark are distracted to welcome to the new OCFS2 maintainer
- The backlight queue
- Small core kernel changes
- lib/ updates
- The rtc queue
- Various random bits
* akpm: (164 commits)
rtc: rtc-davinci: use devm_*() functions
rtc: rtc-max8997: use devm_request_threaded_irq()
rtc: rtc-max8907: use devm_request_threaded_irq()
rtc: rtc-da9052: use devm_request_threaded_irq()
rtc: rtc-wm831x: use devm_request_threaded_irq()
rtc: rtc-tps80031: use devm_request_threaded_irq()
rtc: rtc-lp8788: use devm_request_threaded_irq()
rtc: rtc-coh901331: use devm_clk_get()
rtc: rtc-vt8500: use devm_*() functions
rtc: rtc-tps6586x: use devm_request_threaded_irq()
rtc: rtc-imxdi: use devm_clk_get()
rtc: rtc-cmos: use dev_warn()/dev_dbg() instead of printk()/pr_debug()
rtc: rtc-pcf8583: use dev_warn() instead of printk()
rtc: rtc-sun4v: use pr_warn() instead of printk()
rtc: rtc-vr41xx: use dev_info() instead of printk()
rtc: rtc-rs5c313: use pr_err() instead of printk()
rtc: rtc-at91rm9200: use dev_dbg()/dev_err() instead of printk()/pr_debug()
rtc: rtc-rs5c372: use dev_dbg()/dev_warn() instead of printk()/pr_debug()
rtc: rtc-ds2404: use dev_err() instead of printk()
rtc: rtc-efi: use dev_err()/dev_warn()/pr_err() instead of printk()
...
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/boot/dts/armada-370-xp.dtsi | 6 | ||||
-rw-r--r-- | arch/arm/configs/pxa910_defconfig | 8 | ||||
-rw-r--r-- | arch/arm/mach-mmp/include/mach/pxa910.h | 5 | ||||
-rw-r--r-- | arch/arm/mach-mmp/pxa910.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-mmp/ttc_dkb.c | 92 |
5 files changed, 113 insertions, 1 deletions
diff --git a/arch/arm/boot/dts/armada-370-xp.dtsi b/arch/arm/boot/dts/armada-370-xp.dtsi index 4c0abe85405f..5b2922599f0e 100644 --- a/arch/arm/boot/dts/armada-370-xp.dtsi +++ b/arch/arm/boot/dts/armada-370-xp.dtsi | |||
@@ -131,6 +131,12 @@ | |||
131 | clocks = <&coreclk 0>; | 131 | clocks = <&coreclk 0>; |
132 | status = "disabled"; | 132 | status = "disabled"; |
133 | }; | 133 | }; |
134 | |||
135 | rtc@10300 { | ||
136 | compatible = "marvell,orion-rtc"; | ||
137 | reg = <0xd0010300 0x20>; | ||
138 | interrupts = <50>; | ||
139 | }; | ||
134 | }; | 140 | }; |
135 | }; | 141 | }; |
136 | 142 | ||
diff --git a/arch/arm/configs/pxa910_defconfig b/arch/arm/configs/pxa910_defconfig index 191118caa5c0..3bb7771d3c19 100644 --- a/arch/arm/configs/pxa910_defconfig +++ b/arch/arm/configs/pxa910_defconfig | |||
@@ -42,6 +42,14 @@ CONFIG_SMC91X=y | |||
42 | # CONFIG_SERIO is not set | 42 | # CONFIG_SERIO is not set |
43 | CONFIG_SERIAL_PXA=y | 43 | CONFIG_SERIAL_PXA=y |
44 | CONFIG_SERIAL_PXA_CONSOLE=y | 44 | CONFIG_SERIAL_PXA_CONSOLE=y |
45 | CONFIG_SPI=y | ||
46 | CONFIG_FB=y | ||
47 | CONFIG_MMP_DISP=y | ||
48 | CONFIG_MMP_DISP_CONTROLLER=y | ||
49 | CONFIG_MMP_SPI=y | ||
50 | CONFIG_MMP_PANEL_TPOHVGA=y | ||
51 | CONFIG_MMP_FB=y | ||
52 | CONFIG_LOGO=y | ||
45 | # CONFIG_LEGACY_PTYS is not set | 53 | # CONFIG_LEGACY_PTYS is not set |
46 | # CONFIG_HW_RANDOM is not set | 54 | # CONFIG_HW_RANDOM is not set |
47 | # CONFIG_HWMON is not set | 55 | # CONFIG_HWMON is not set |
diff --git a/arch/arm/mach-mmp/include/mach/pxa910.h b/arch/arm/mach-mmp/include/mach/pxa910.h index eff31ab6dc3b..b914afa1fcdc 100644 --- a/arch/arm/mach-mmp/include/mach/pxa910.h +++ b/arch/arm/mach-mmp/include/mach/pxa910.h | |||
@@ -8,6 +8,7 @@ extern void __init pxa910_init_irq(void); | |||
8 | #include <linux/i2c/pxa-i2c.h> | 8 | #include <linux/i2c/pxa-i2c.h> |
9 | #include <mach/devices.h> | 9 | #include <mach/devices.h> |
10 | #include <linux/platform_data/mtd-nand-pxa3xx.h> | 10 | #include <linux/platform_data/mtd-nand-pxa3xx.h> |
11 | #include <video/mmp_disp.h> | ||
11 | 12 | ||
12 | extern struct pxa_device_desc pxa910_device_uart1; | 13 | extern struct pxa_device_desc pxa910_device_uart1; |
13 | extern struct pxa_device_desc pxa910_device_uart2; | 14 | extern struct pxa_device_desc pxa910_device_uart2; |
@@ -21,7 +22,9 @@ extern struct pxa_device_desc pxa910_device_nand; | |||
21 | extern struct platform_device pxa168_device_u2o; | 22 | extern struct platform_device pxa168_device_u2o; |
22 | extern struct platform_device pxa168_device_u2ootg; | 23 | extern struct platform_device pxa168_device_u2ootg; |
23 | extern struct platform_device pxa168_device_u2oehci; | 24 | extern struct platform_device pxa168_device_u2oehci; |
24 | 25 | extern struct pxa_device_desc pxa910_device_disp; | |
26 | extern struct pxa_device_desc pxa910_device_fb; | ||
27 | extern struct pxa_device_desc pxa910_device_panel; | ||
25 | extern struct platform_device pxa910_device_gpio; | 28 | extern struct platform_device pxa910_device_gpio; |
26 | extern struct platform_device pxa910_device_rtc; | 29 | extern struct platform_device pxa910_device_rtc; |
27 | 30 | ||
diff --git a/arch/arm/mach-mmp/pxa910.c b/arch/arm/mach-mmp/pxa910.c index c6a89f1eca4e..36cb321a3d70 100644 --- a/arch/arm/mach-mmp/pxa910.c +++ b/arch/arm/mach-mmp/pxa910.c | |||
@@ -134,6 +134,9 @@ PXA910_DEVICE(pwm2, "pxa910-pwm", 1, NONE, 0xd401a400, 0x10); | |||
134 | PXA910_DEVICE(pwm3, "pxa910-pwm", 2, NONE, 0xd401a800, 0x10); | 134 | PXA910_DEVICE(pwm3, "pxa910-pwm", 2, NONE, 0xd401a800, 0x10); |
135 | PXA910_DEVICE(pwm4, "pxa910-pwm", 3, NONE, 0xd401ac00, 0x10); | 135 | PXA910_DEVICE(pwm4, "pxa910-pwm", 3, NONE, 0xd401ac00, 0x10); |
136 | PXA910_DEVICE(nand, "pxa3xx-nand", -1, NAND, 0xd4283000, 0x80, 97, 99); | 136 | PXA910_DEVICE(nand, "pxa3xx-nand", -1, NAND, 0xd4283000, 0x80, 97, 99); |
137 | PXA910_DEVICE(disp, "mmp-disp", 0, LCD, 0xd420b000, 0x1ec); | ||
138 | PXA910_DEVICE(fb, "mmp-fb", -1, NONE, 0, 0); | ||
139 | PXA910_DEVICE(panel, "tpo-hvga", -1, NONE, 0, 0); | ||
137 | 140 | ||
138 | struct resource pxa910_resource_gpio[] = { | 141 | struct resource pxa910_resource_gpio[] = { |
139 | { | 142 | { |
diff --git a/arch/arm/mach-mmp/ttc_dkb.c b/arch/arm/mach-mmp/ttc_dkb.c index 6e474900b13e..22a9058f9f4d 100644 --- a/arch/arm/mach-mmp/ttc_dkb.c +++ b/arch/arm/mach-mmp/ttc_dkb.c | |||
@@ -19,6 +19,8 @@ | |||
19 | #include <linux/gpio.h> | 19 | #include <linux/gpio.h> |
20 | #include <linux/mfd/88pm860x.h> | 20 | #include <linux/mfd/88pm860x.h> |
21 | #include <linux/platform_data/mv_usb.h> | 21 | #include <linux/platform_data/mv_usb.h> |
22 | #include <linux/spi/spi.h> | ||
23 | #include <linux/delay.h> | ||
22 | 24 | ||
23 | #include <asm/mach-types.h> | 25 | #include <asm/mach-types.h> |
24 | #include <asm/mach/arch.h> | 26 | #include <asm/mach/arch.h> |
@@ -184,6 +186,92 @@ static struct pxa3xx_nand_platform_data dkb_nand_info = { | |||
184 | }; | 186 | }; |
185 | #endif | 187 | #endif |
186 | 188 | ||
189 | #ifdef CONFIG_MMP_DISP | ||
190 | /* path config */ | ||
191 | #define CFG_IOPADMODE(iopad) (iopad) /* 0x0 ~ 0xd */ | ||
192 | #define SCLK_SOURCE_SELECT(x) (x << 30) /* 0x0 ~ 0x3 */ | ||
193 | /* link config */ | ||
194 | #define CFG_DUMBMODE(mode) (mode << 28) /* 0x0 ~ 0x6*/ | ||
195 | #define CFG_GRA_SWAPRB(x) (x << 0) /* 1: rbswap enabled */ | ||
196 | static struct mmp_mach_path_config dkb_disp_config[] = { | ||
197 | [0] = { | ||
198 | .name = "mmp-parallel", | ||
199 | .overlay_num = 2, | ||
200 | .output_type = PATH_OUT_PARALLEL, | ||
201 | .path_config = CFG_IOPADMODE(0x1) | ||
202 | | SCLK_SOURCE_SELECT(0x1), | ||
203 | .link_config = CFG_DUMBMODE(0x2) | ||
204 | | CFG_GRA_SWAPRB(0x1), | ||
205 | }, | ||
206 | }; | ||
207 | |||
208 | static struct mmp_mach_plat_info dkb_disp_info = { | ||
209 | .name = "mmp-disp", | ||
210 | .clk_name = "disp0", | ||
211 | .path_num = 1, | ||
212 | .paths = dkb_disp_config, | ||
213 | }; | ||
214 | |||
215 | static struct mmp_buffer_driver_mach_info dkb_fb_info = { | ||
216 | .name = "mmp-fb", | ||
217 | .path_name = "mmp-parallel", | ||
218 | .overlay_id = 0, | ||
219 | .dmafetch_id = 1, | ||
220 | .default_pixfmt = PIXFMT_RGB565, | ||
221 | }; | ||
222 | |||
223 | static void dkb_tpo_panel_power(int on) | ||
224 | { | ||
225 | int err; | ||
226 | u32 spi_reset = mfp_to_gpio(MFP_PIN_GPIO106); | ||
227 | |||
228 | if (on) { | ||
229 | err = gpio_request(spi_reset, "TPO_LCD_SPI_RESET"); | ||
230 | if (err) { | ||
231 | pr_err("failed to request GPIO for TPO LCD RESET\n"); | ||
232 | return; | ||
233 | } | ||
234 | gpio_direction_output(spi_reset, 0); | ||
235 | udelay(100); | ||
236 | gpio_set_value(spi_reset, 1); | ||
237 | gpio_free(spi_reset); | ||
238 | } else { | ||
239 | err = gpio_request(spi_reset, "TPO_LCD_SPI_RESET"); | ||
240 | if (err) { | ||
241 | pr_err("failed to request LCD RESET gpio\n"); | ||
242 | return; | ||
243 | } | ||
244 | gpio_set_value(spi_reset, 0); | ||
245 | gpio_free(spi_reset); | ||
246 | } | ||
247 | } | ||
248 | |||
249 | static struct mmp_mach_panel_info dkb_tpo_panel_info = { | ||
250 | .name = "tpo-hvga", | ||
251 | .plat_path_name = "mmp-parallel", | ||
252 | .plat_set_onoff = dkb_tpo_panel_power, | ||
253 | }; | ||
254 | |||
255 | static struct spi_board_info spi_board_info[] __initdata = { | ||
256 | { | ||
257 | .modalias = "tpo-hvga", | ||
258 | .platform_data = &dkb_tpo_panel_info, | ||
259 | .bus_num = 5, | ||
260 | } | ||
261 | }; | ||
262 | |||
263 | static void __init add_disp(void) | ||
264 | { | ||
265 | pxa_register_device(&pxa910_device_disp, | ||
266 | &dkb_disp_info, sizeof(dkb_disp_info)); | ||
267 | spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info)); | ||
268 | pxa_register_device(&pxa910_device_fb, | ||
269 | &dkb_fb_info, sizeof(dkb_fb_info)); | ||
270 | pxa_register_device(&pxa910_device_panel, | ||
271 | &dkb_tpo_panel_info, sizeof(dkb_tpo_panel_info)); | ||
272 | } | ||
273 | #endif | ||
274 | |||
187 | static void __init ttc_dkb_init(void) | 275 | static void __init ttc_dkb_init(void) |
188 | { | 276 | { |
189 | mfp_config(ARRAY_AND_SIZE(ttc_dkb_pin_config)); | 277 | mfp_config(ARRAY_AND_SIZE(ttc_dkb_pin_config)); |
@@ -212,6 +300,10 @@ static void __init ttc_dkb_init(void) | |||
212 | pxa168_device_u2ootg.dev.platform_data = &ttc_usb_pdata; | 300 | pxa168_device_u2ootg.dev.platform_data = &ttc_usb_pdata; |
213 | platform_device_register(&pxa168_device_u2ootg); | 301 | platform_device_register(&pxa168_device_u2ootg); |
214 | #endif | 302 | #endif |
303 | |||
304 | #ifdef CONFIG_MMP_DISP | ||
305 | add_disp(); | ||
306 | #endif | ||
215 | } | 307 | } |
216 | 308 | ||
217 | MACHINE_START(TTC_DKB, "PXA910-based TTC_DKB Development Platform") | 309 | MACHINE_START(TTC_DKB, "PXA910-based TTC_DKB Development Platform") |