aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-exynos/mach-origen.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-exynos/mach-origen.c')
-rw-r--r--arch/arm/mach-exynos/mach-origen.c39
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 */
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
501static struct gpio_keys_button origen_gpio_keys_table[] = { 534static 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)
711static void __init origen_map_io(void) 746static 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);