aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-ux500/board-mop500.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-ux500/board-mop500.c')
-rw-r--r--arch/arm/mach-ux500/board-mop500.c63
1 files changed, 12 insertions, 51 deletions
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c
index 4fd93f5c49ec..84461fa2a3ba 100644
--- a/arch/arm/mach-ux500/board-mop500.c
+++ b/arch/arm/mach-ux500/board-mop500.c
@@ -58,7 +58,7 @@
58static struct gpio_led snowball_led_array[] = { 58static struct gpio_led snowball_led_array[] = {
59 { 59 {
60 .name = "user_led", 60 .name = "user_led",
61 .default_trigger = "none", 61 .default_trigger = "heartbeat",
62 .gpio = 142, 62 .gpio = 142,
63 }, 63 },
64}; 64};
@@ -331,43 +331,12 @@ static struct i2c_board_info __initdata mop500_i2c2_devices[] = {
331 }, 331 },
332}; 332};
333 333
334#define U8500_I2C_CONTROLLER(id, _slsu, _tft, _rft, clk, t_out, _sm) \
335static struct nmk_i2c_controller u8500_i2c##id##_data = { \
336 /* \
337 * slave data setup time, which is \
338 * 250 ns,100ns,10ns which is 14,6,2 \
339 * respectively for a 48 Mhz \
340 * i2c clock \
341 */ \
342 .slsu = _slsu, \
343 /* Tx FIFO threshold */ \
344 .tft = _tft, \
345 /* Rx FIFO threshold */ \
346 .rft = _rft, \
347 /* std. mode operation */ \
348 .clk_freq = clk, \
349 /* Slave response timeout(ms) */\
350 .timeout = t_out, \
351 .sm = _sm, \
352}
353
354/*
355 * The board uses 4 i2c controllers, initialize all of
356 * them with slave data setup time of 250 ns,
357 * Tx & Rx FIFO threshold values as 8 and standard
358 * mode of operation
359 */
360U8500_I2C_CONTROLLER(0, 0xe, 1, 8, 100000, 200, I2C_FREQ_MODE_FAST);
361U8500_I2C_CONTROLLER(1, 0xe, 1, 8, 100000, 200, I2C_FREQ_MODE_FAST);
362U8500_I2C_CONTROLLER(2, 0xe, 1, 8, 100000, 200, I2C_FREQ_MODE_FAST);
363U8500_I2C_CONTROLLER(3, 0xe, 1, 8, 100000, 200, I2C_FREQ_MODE_FAST);
364
365static void __init mop500_i2c_init(struct device *parent) 334static void __init mop500_i2c_init(struct device *parent)
366{ 335{
367 db8500_add_i2c0(parent, &u8500_i2c0_data); 336 db8500_add_i2c0(parent, NULL);
368 db8500_add_i2c1(parent, &u8500_i2c1_data); 337 db8500_add_i2c1(parent, NULL);
369 db8500_add_i2c2(parent, &u8500_i2c2_data); 338 db8500_add_i2c2(parent, NULL);
370 db8500_add_i2c3(parent, &u8500_i2c3_data); 339 db8500_add_i2c3(parent, NULL);
371} 340}
372 341
373static struct gpio_keys_button mop500_gpio_keys[] = { 342static struct gpio_keys_button mop500_gpio_keys[] = {
@@ -776,6 +745,8 @@ struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = {
776 OF_DEV_AUXDATA("arm,pl011", 0x80007000, "uart2", &uart2_plat), 745 OF_DEV_AUXDATA("arm,pl011", 0x80007000, "uart2", &uart2_plat),
777 /* Requires DMA bindings. */ 746 /* Requires DMA bindings. */
778 OF_DEV_AUXDATA("arm,pl022", 0x80002000, "ssp0", &ssp0_plat), 747 OF_DEV_AUXDATA("arm,pl022", 0x80002000, "ssp0", &ssp0_plat),
748 OF_DEV_AUXDATA("arm,pl18x", 0x80126000, "sdi0", &mop500_sdi0_data),
749 OF_DEV_AUXDATA("arm,pl18x", 0x80114000, "sdi4", &mop500_sdi4_data),
779 /* Requires clock name bindings. */ 750 /* Requires clock name bindings. */
780 OF_DEV_AUXDATA("st,nomadik-gpio", 0x8012e000, "gpio.0", NULL), 751 OF_DEV_AUXDATA("st,nomadik-gpio", 0x8012e000, "gpio.0", NULL),
781 OF_DEV_AUXDATA("st,nomadik-gpio", 0x8012e080, "gpio.1", NULL), 752 OF_DEV_AUXDATA("st,nomadik-gpio", 0x8012e080, "gpio.1", NULL),
@@ -786,6 +757,11 @@ struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = {
786 OF_DEV_AUXDATA("st,nomadik-gpio", 0x8011e000, "gpio.6", NULL), 757 OF_DEV_AUXDATA("st,nomadik-gpio", 0x8011e000, "gpio.6", NULL),
787 OF_DEV_AUXDATA("st,nomadik-gpio", 0x8011e080, "gpio.7", NULL), 758 OF_DEV_AUXDATA("st,nomadik-gpio", 0x8011e080, "gpio.7", NULL),
788 OF_DEV_AUXDATA("st,nomadik-gpio", 0xa03fe000, "gpio.8", NULL), 759 OF_DEV_AUXDATA("st,nomadik-gpio", 0xa03fe000, "gpio.8", NULL),
760 OF_DEV_AUXDATA("st,nomadik-i2c", 0x80004000, "nmk-i2c.0", NULL),
761 OF_DEV_AUXDATA("st,nomadik-i2c", 0x80122000, "nmk-i2c.1", NULL),
762 OF_DEV_AUXDATA("st,nomadik-i2c", 0x80128000, "nmk-i2c.2", NULL),
763 OF_DEV_AUXDATA("st,nomadik-i2c", 0x80110000, "nmk-i2c.3", NULL),
764 OF_DEV_AUXDATA("st,nomadik-i2c", 0x8012a000, "nmk-i2c.4", NULL),
789 /* Requires device name bindings. */ 765 /* Requires device name bindings. */
790 OF_DEV_AUXDATA("stericsson,nmk_pinctrl", 0, "pinctrl-db8500", NULL), 766 OF_DEV_AUXDATA("stericsson,nmk_pinctrl", 0, "pinctrl-db8500", NULL),
791 {}, 767 {},
@@ -820,8 +796,6 @@ static void __init u8500_init_machine(void)
820 796
821 for (i = 0; i < ARRAY_SIZE(mop500_platform_devs); i++) 797 for (i = 0; i < ARRAY_SIZE(mop500_platform_devs); i++)
822 mop500_platform_devs[i]->dev.parent = parent; 798 mop500_platform_devs[i]->dev.parent = parent;
823 for (i = 0; i < ARRAY_SIZE(snowball_platform_devs); i++)
824 snowball_platform_devs[i]->dev.parent = parent;
825 799
826 /* automatically probe child nodes of db8500 device */ 800 /* automatically probe child nodes of db8500 device */
827 of_platform_populate(NULL, u8500_local_bus_nodes, u8500_auxdata_lookup, parent); 801 of_platform_populate(NULL, u8500_local_bus_nodes, u8500_auxdata_lookup, parent);
@@ -840,18 +814,6 @@ static void __init u8500_init_machine(void)
840 814
841 mop500_uib_init(); 815 mop500_uib_init();
842 816
843 } else if (of_machine_is_compatible("calaosystems,snowball-a9500")) {
844 /*
845 * Devices to be DT:ed:
846 * snowball_led_dev = todo
847 * snowball_key_dev = todo
848 * snowball_sbnet_dev = done
849 * ab8500_device = done
850 */
851 platform_add_devices(snowball_of_platform_devs,
852 ARRAY_SIZE(snowball_of_platform_devs));
853
854 snowball_sdi_init(parent);
855 } else if (of_machine_is_compatible("st-ericsson,hrefv60+")) { 817 } else if (of_machine_is_compatible("st-ericsson,hrefv60+")) {
856 /* 818 /*
857 * The HREFv60 board removed a GPIO expander and routed 819 * The HREFv60 board removed a GPIO expander and routed
@@ -873,7 +835,6 @@ static void __init u8500_init_machine(void)
873 835
874 mop500_uib_init(); 836 mop500_uib_init();
875 } 837 }
876 mop500_i2c_init(parent);
877 838
878 /* This board has full regulator constraints */ 839 /* This board has full regulator constraints */
879 regulator_has_full_constraints(); 840 regulator_has_full_constraints();