diff options
Diffstat (limited to 'arch/arm/mach-exynos/mach-origen.c')
-rw-r--r-- | arch/arm/mach-exynos/mach-origen.c | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c index 873c708fd340..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> |
@@ -498,6 +500,37 @@ static void __init origen_ohci_init(void) | |||
498 | exynos4_ohci_set_platdata(pdata); | 500 | exynos4_ohci_set_platdata(pdata); |
499 | } | 501 | } |
500 | 502 | ||
503 | /* USB OTG */ | ||
504 | static struct s3c_hsotg_plat origen_hsotg_pdata; | ||
505 | |||
506 | static 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 | |||
521 | static struct gpio_led_platform_data origen_gpio_led_info = { | ||
522 | .leds = origen_gpio_leds, | ||
523 | .num_leds = ARRAY_SIZE(origen_gpio_leds), | ||
524 | }; | ||
525 | |||
526 | static 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 | |||
501 | static struct gpio_keys_button origen_gpio_keys_table[] = { | 534 | static struct gpio_keys_button origen_gpio_keys_table[] = { |
502 | { | 535 | { |
503 | .code = KEY_MENU, | 536 | .code = KEY_MENU, |
@@ -654,6 +687,7 @@ static struct platform_device *origen_devices[] __initdata = { | |||
654 | &s3c_device_hsmmc0, | 687 | &s3c_device_hsmmc0, |
655 | &s3c_device_i2c0, | 688 | &s3c_device_i2c0, |
656 | &s3c_device_rtc, | 689 | &s3c_device_rtc, |
690 | &s3c_device_usb_hsotg, | ||
657 | &s3c_device_wdt, | 691 | &s3c_device_wdt, |
658 | &s5p_device_ehci, | 692 | &s5p_device_ehci, |
659 | &s5p_device_fimc0, | 693 | &s5p_device_fimc0, |
@@ -676,6 +710,7 @@ static struct platform_device *origen_devices[] __initdata = { | |||
676 | &exynos4_device_ohci, | 710 | &exynos4_device_ohci, |
677 | &origen_device_gpiokeys, | 711 | &origen_device_gpiokeys, |
678 | &origen_lcd_hv070wsa, | 712 | &origen_lcd_hv070wsa, |
713 | &origen_leds_gpio, | ||
679 | &origen_device_bluetooth, | 714 | &origen_device_bluetooth, |
680 | }; | 715 | }; |
681 | 716 | ||
@@ -711,7 +746,7 @@ static void s5p_tv_setup(void) | |||
711 | static void __init origen_map_io(void) | 746 | static void __init origen_map_io(void) |
712 | { | 747 | { |
713 | exynos_init_io(NULL, 0); | 748 | exynos_init_io(NULL, 0); |
714 | s3c24xx_init_clocks(24000000); | 749 | s3c24xx_init_clocks(clk_xusbxti.rate); |
715 | s3c24xx_init_uarts(origen_uartcfgs, ARRAY_SIZE(origen_uartcfgs)); | 750 | s3c24xx_init_uarts(origen_uartcfgs, ARRAY_SIZE(origen_uartcfgs)); |
716 | } | 751 | } |
717 | 752 | ||
@@ -743,7 +778,7 @@ static void __init origen_machine_init(void) | |||
743 | 778 | ||
744 | origen_ehci_init(); | 779 | origen_ehci_init(); |
745 | origen_ohci_init(); | 780 | origen_ohci_init(); |
746 | clk_xusbxti.rate = 24000000; | 781 | s3c_hsotg_set_platdata(&origen_hsotg_pdata); |
747 | 782 | ||
748 | s5p_tv_setup(); | 783 | s5p_tv_setup(); |
749 | s5p_i2c_hdmiphy_set_platdata(NULL); | 784 | s5p_i2c_hdmiphy_set_platdata(NULL); |