aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-exynos/mach-origen.c
diff options
context:
space:
mode:
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2012-09-05 10:22:45 -0400
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2012-09-05 10:22:45 -0400
commit593d0a3e9f813db910dc50574532914db21d09ff (patch)
tree12d8413ee57b4383ca8c906996ffe02be6d377a5 /arch/arm/mach-exynos/mach-origen.c
parent50e900417b8096939d12a46848f965e27a905e36 (diff)
parent4cb38750d49010ae72e718d46605ac9ba5a851b4 (diff)
Merge commit '4cb38750d49010ae72e718d46605ac9ba5a851b4' into stable/for-linus-3.6
* commit '4cb38750d49010ae72e718d46605ac9ba5a851b4': (6849 commits) bcma: fix invalid PMU chip control masks [libata] pata_cmd64x: whitespace cleanup libata-acpi: fix up for acpi_pm_device_sleep_state API sata_dwc_460ex: device tree may specify dma_channel ahci, trivial: fixed coding style issues related to braces ahci_platform: add hibernation callbacks libata-eh.c: local functions should not be exposed globally libata-transport.c: local functions should not be exposed globally sata_dwc_460ex: support hardreset ata: use module_pci_driver drivers/ata/pata_pcmcia.c: adjust suspicious bit operation pata_imx: Convert to clk_prepare_enable/clk_disable_unprepare ahci: Enable SB600 64bit DMA on MSI K9AGM2 (MS-7327) v2 [libata] Prevent interface errors with Seagate FreeAgent GoFlex drivers/acpi/glue: revert accidental license-related 6b66d95895c bits libata-acpi: add missing inlines in libata.h i2c-omap: Add support for I2C_M_STOP message flag i2c: Fall back to emulated SMBus if the operation isn't supported natively i2c: Add SCCB support i2c-tiny-usb: Add support for the Robofuzz OSIF USB/I2C converter ...
Diffstat (limited to 'arch/arm/mach-exynos/mach-origen.c')
-rw-r--r--arch/arm/mach-exynos/mach-origen.c40
1 files changed, 37 insertions, 3 deletions
diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c
index f5572be9d7bf..5a12dc26f496 100644
--- a/arch/arm/mach-exynos/mach-origen.c
+++ b/arch/arm/mach-exynos/mach-origen.c
@@ -9,6 +9,7 @@
9*/ 9*/
10 10
11#include <linux/serial_core.h> 11#include <linux/serial_core.h>
12#include <linux/leds.h>
12#include <linux/gpio.h> 13#include <linux/gpio.h>
13#include <linux/mmc/host.h> 14#include <linux/mmc/host.h>
14#include <linux/platform_device.h> 15#include <linux/platform_device.h>
@@ -21,6 +22,7 @@
21#include <linux/mfd/max8997.h> 22#include <linux/mfd/max8997.h>
22#include <linux/lcd.h> 23#include <linux/lcd.h>
23#include <linux/rfkill-gpio.h> 24#include <linux/rfkill-gpio.h>
25#include <linux/platform_data/s3c-hsotg.h>
24 26
25#include <asm/mach/arch.h> 27#include <asm/mach/arch.h>
26#include <asm/hardware/gic.h> 28#include <asm/hardware/gic.h>
@@ -38,7 +40,6 @@
38#include <plat/clock.h> 40#include <plat/clock.h>
39#include <plat/gpio-cfg.h> 41#include <plat/gpio-cfg.h>
40#include <plat/backlight.h> 42#include <plat/backlight.h>
41#include <plat/pd.h>
42#include <plat/fb.h> 43#include <plat/fb.h>
43#include <plat/mfc.h> 44#include <plat/mfc.h>
44 45
@@ -499,6 +500,37 @@ static void __init origen_ohci_init(void)
499 exynos4_ohci_set_platdata(pdata); 500 exynos4_ohci_set_platdata(pdata);
500} 501}
501 502
503/* USB OTG */
504static struct s3c_hsotg_plat origen_hsotg_pdata;
505
506static struct gpio_led origen_gpio_leds[] = {
507 {
508 .name = "origen::status1",
509 .default_trigger = "heartbeat",
510 .gpio = EXYNOS4_GPX1(3),
511 .active_low = 1,
512 },
513 {
514 .name = "origen::status2",
515 .default_trigger = "mmc0",
516 .gpio = EXYNOS4_GPX1(4),
517 .active_low = 1,
518 },
519};
520
521static struct gpio_led_platform_data origen_gpio_led_info = {
522 .leds = origen_gpio_leds,
523 .num_leds = ARRAY_SIZE(origen_gpio_leds),
524};
525
526static struct platform_device origen_leds_gpio = {
527 .name = "leds-gpio",
528 .id = -1,
529 .dev = {
530 .platform_data = &origen_gpio_led_info,
531 },
532};
533
502static struct gpio_keys_button origen_gpio_keys_table[] = { 534static struct gpio_keys_button origen_gpio_keys_table[] = {
503 { 535 {
504 .code = KEY_MENU, 536 .code = KEY_MENU,
@@ -655,6 +687,7 @@ static struct platform_device *origen_devices[] __initdata = {
655 &s3c_device_hsmmc0, 687 &s3c_device_hsmmc0,
656 &s3c_device_i2c0, 688 &s3c_device_i2c0,
657 &s3c_device_rtc, 689 &s3c_device_rtc,
690 &s3c_device_usb_hsotg,
658 &s3c_device_wdt, 691 &s3c_device_wdt,
659 &s5p_device_ehci, 692 &s5p_device_ehci,
660 &s5p_device_fimc0, 693 &s5p_device_fimc0,
@@ -677,6 +710,7 @@ static struct platform_device *origen_devices[] __initdata = {
677 &exynos4_device_ohci, 710 &exynos4_device_ohci,
678 &origen_device_gpiokeys, 711 &origen_device_gpiokeys,
679 &origen_lcd_hv070wsa, 712 &origen_lcd_hv070wsa,
713 &origen_leds_gpio,
680 &origen_device_bluetooth, 714 &origen_device_bluetooth,
681}; 715};
682 716
@@ -712,7 +746,7 @@ static void s5p_tv_setup(void)
712static void __init origen_map_io(void) 746static void __init origen_map_io(void)
713{ 747{
714 exynos_init_io(NULL, 0); 748 exynos_init_io(NULL, 0);
715 s3c24xx_init_clocks(24000000); 749 s3c24xx_init_clocks(clk_xusbxti.rate);
716 s3c24xx_init_uarts(origen_uartcfgs, ARRAY_SIZE(origen_uartcfgs)); 750 s3c24xx_init_uarts(origen_uartcfgs, ARRAY_SIZE(origen_uartcfgs));
717} 751}
718 752
@@ -744,7 +778,7 @@ static void __init origen_machine_init(void)
744 778
745 origen_ehci_init(); 779 origen_ehci_init();
746 origen_ohci_init(); 780 origen_ohci_init();
747 clk_xusbxti.rate = 24000000; 781 s3c_hsotg_set_platdata(&origen_hsotg_pdata);
748 782
749 s5p_tv_setup(); 783 s5p_tv_setup();
750 s5p_i2c_hdmiphy_set_platdata(NULL); 784 s5p_i2c_hdmiphy_set_platdata(NULL);