diff options
author | Sumit Semwal <sumit.semwal@ti.com> | 2009-11-11 01:17:33 -0600 |
---|---|---|
committer | Santosh Shilimkar <santosh.shilimkar@ti.com> | 2009-11-11 12:21:14 +0100 |
commit | 15e44aceac672df0e827b976759daaa56a2563b3 (patch) | |
tree | 327697765b8b5e815a836d6d427913fe7f215fa9 /arch/arm/mach-omap2 | |
parent | 798fbae1f49fea8b3d02dee3b190a92317d5d0bf (diff) |
OMAP4: DSI first update.
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r-- | arch/arm/mach-omap2/board-4430sdp.c | 327 |
1 files changed, 127 insertions, 200 deletions
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c index 6c0c3a21ea44..c8a390835f35 100644 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c @@ -19,7 +19,6 @@ #include <linux/gpio.h> #include <linux/spi/spi.h> #include <linux/input.h> -#include <linux/usb/otg.h> #include <mach/keypad.h> #include <mach/hardware.h> @@ -34,11 +33,9 @@ #include <mach/common.h> #include <mach/control.h> #include <mach/timer-gp.h> -#include <mach/usb.h> #include <asm/hardware/gic.h> #include <asm/hardware/cache-l2x0.h> #include <linux/i2c/twl.h> -#include <mach/syntm12xx.h> #include "mmc-twl4030.h" #include <linux/regulator/machine.h> @@ -47,77 +44,33 @@ static int ts_gpio; static int omap_keymap[] = { - KEY(0, 0, KEY_E), - KEY(0, 1, KEY_D), - KEY(0, 2, KEY_X), - KEY(0, 3, KEY_Z), - KEY(0, 4, KEY_W), - KEY(0, 5, KEY_S), - KEY(0, 6, KEY_Q), - KEY(0, 7, KEY_UNKNOWN), - - KEY(1, 0, KEY_R), - KEY(1, 1, KEY_F), - KEY(1, 2, KEY_C), - KEY(1, 3, KEY_KPPLUS), - KEY(1, 4, KEY_Y), - KEY(1, 5, KEY_H), - KEY(1, 6, KEY_A), - KEY(1, 7, KEY_UNKNOWN), - - KEY(2, 0, KEY_T), - KEY(2, 1, KEY_G), - KEY(2, 2, KEY_V), - KEY(2, 3, KEY_B), - KEY(2, 4, KEY_U), - KEY(2, 5, KEY_J), - KEY(2, 6, KEY_N), - KEY(2, 7, KEY_UNKNOWN), - - KEY(3, 0, KEY_HOME), - KEY(3, 1, KEY_SEND), - KEY(3, 2, KEY_END), - KEY(3, 3, KEY_F1), - KEY(3, 4, KEY_F2), - KEY(3, 5, KEY_F3), - KEY(3, 6, KEY_BACK), - KEY(3, 7, KEY_UNKNOWN), - - KEY(4, 0, KEY_UNKNOWN), - KEY(4, 1, KEY_UNKNOWN), - KEY(4, 2, KEY_UNKNOWN), - KEY(4, 3, KEY_UNKNOWN), - KEY(4, 4, KEY_VOLUMEUP), - KEY(4, 5, KEY_UNKNOWN), - KEY(4, 6, KEY_BACKSPACE), - KEY(4, 7, KEY_F4), - - KEY(5, 0, KEY_UNKNOWN), - KEY(5, 1, KEY_UNKNOWN), - KEY(5, 2, KEY_UNKNOWN), - KEY(5, 3, KEY_UNKNOWN), - KEY(5, 4, KEY_UNKNOWN), - KEY(5, 5, KEY_VOLUMEDOWN), - KEY(5, 6, KEY_UNKNOWN), - KEY(5, 7, KEY_UNKNOWN), - - KEY(6, 0, KEY_I), - KEY(6, 1, KEY_K), - KEY(6, 2, KEY_DOT), - KEY(6, 3, KEY_O), - KEY(6, 4, KEY_L), - KEY(6, 5, KEY_M), - KEY(6, 6, KEY_P), - KEY(6, 7, KEY_SELECT), - - KEY(7, 0, KEY_UNKNOWN), - KEY(7, 1, KEY_ENTER), - KEY(7, 2, KEY_CAPSLOCK), - KEY(7, 3, KEY_SPACE), - KEY(7, 4, KEY_LEFT), - KEY(7, 5, KEY_RIGHT), - KEY(7, 6, KEY_UP), - KEY(7, 7, KEY_DOWN), + KEY(0, 0, KEY_SENDFILE), + KEY(0, 1, KEY_1), + KEY(0, 2, KEY_4), + KEY(0, 3, KEY_7), + KEY(1, 0, KEY_END), + KEY(1, 1, KEY_2), + KEY(1, 2, KEY_5), + KEY(1, 3, KEY_8), + KEY(1, 4, KEY_0), + KEY(2, 1, KEY_3), + KEY(2, 2, KEY_6), + KEY(2, 3, KEY_9), + KEY(3, 1, KEY_HOME), + KEY(3, 2, KEY_BACK), + KEY(3, 3, KEY_VOLUMEUP), + KEY(3, 4, KEY_VOLUMEDOWN), + KEY(4, 0, KEY_UP), + KEY(4, 1, KEY_RIGHT), + KEY(4, 2, KEY_LEFT), + KEY(4, 3, KEY_DOWN), + KEY(0, 4, KEY_DOT), + KEY(2, 4, KEY_LEFT), + KEY(4, 4, KEY_ENTER), + KEY(5, 0, KEY_SCROLLUP), + KEY(5, 1, KEY_SCROLLDOWN), + KEY(5, 2, KEY_RIGHT), + KEY(5, 3, KEY_RECORD), 0, }; @@ -130,8 +83,8 @@ static struct resource omap_kp_resources[] = { }; static struct omap_kp_platform_data omap_kp_data = { - .rows = 8, - .cols = 8, + .rows = 5, + .cols = 6, .keymap = omap_keymap, .keymapsize = ARRAY_SIZE(omap_keymap), .delay = 4, @@ -176,19 +129,39 @@ static int sdp4430_panel_enable_lcd(void) { static int sdp4430_panel_disable_lcd(void) { return 0; } +static void __init sdp4430_display_init(void) +{ + int r; + /* MJ CORE_PAD0_C2C_DATA14_PAD1_C2C_DATA15 */ + /* CONTROL_DSIPHY */ + omap_writel(0x21084000, 0x4A100618); + printk(KERN_INFO "\n CONTROL_DSIPHY = 0x%X ", omap_readl(0x4A100618)); + return; +} -static void __init sdp4430_display_init(void) { - return; -} static struct omap_dss_device sdp4430_lcd_device = { - .name = "sdp4430_lcd", - .driver_name = "sdp4430_panel", - .type = OMAP_DISPLAY_TYPE_DPI, - .phy.dpi.data_lines = 16, - .platform_enable = sdp4430_panel_enable_lcd, - .platform_disable = sdp4430_panel_disable_lcd, + .name = "lcd", +/* .driver_name = "sharp_ls_panel", */ + .driver_name = "panel-taal", + .type = OMAP_DISPLAY_TYPE_DSI, +/* .phy.dpi.data_lines = 24, */ + .reset_gpio = 78, + .phy.dsi = { + .clk_lane = 1, + .clk_pol = 0, + .data1_lane = 2, + .data1_pol = 0, + .data2_lane = 3, + .data2_pol = 0, + .lp_clk_hz = 10000000, + .ddr_clk_hz = 150000000, + + .ext_te = false, + .ext_te_gpio = 86, + }, + .platform_enable = sdp4430_panel_enable_lcd, + .platform_disable = sdp4430_panel_disable_lcd, }; - static int sdp4430_panel_enable_hdmi(struct omap_dss_device *dssdev) { return 0; @@ -212,9 +185,11 @@ static struct omap_dss_device sdp4430_hdmi_device = { .platform_disable = sdp4430_panel_disable_hdmi, }; + + static struct omap_dss_device *sdp4430_dss_devices[] = { &sdp4430_lcd_device, -#ifdef CONFIG_OMAP2_DSS_HDMI + #ifdef CONFIG_OMAP2_DSS_HDMI &sdp4430_hdmi_device, #endif }; @@ -235,6 +210,10 @@ static struct platform_device sdp4430_dss_device = { }, }; +static struct regulator_consumer_supply sdp4430_vdda_dac_supply = { + .supply = "vdda_dac", + .dev = &sdp4430_dss_device.dev, +}; static struct platform_device *sdp4430_devices[] __initdata = { &sdp4430_dss_device, &omap_kp_device, @@ -298,26 +277,22 @@ static struct twl4030_hsmmc_info mmc[] = { { .mmc = 2, .wires = 8, - .gpio_cd = -EINVAL, - .gpio_wp = -EINVAL, + .gpio_wp = 7, }, { .mmc = 3, - .wires = -EINVAL, - .gpio_cd = -EINVAL, - .gpio_wp = -EINVAL, + .wires = 8, + .gpio_wp = 4, }, { .mmc = 4, - .wires = -EINVAL, - .gpio_cd = -EINVAL, - .gpio_wp = -EINVAL, + .wires = 8, + .gpio_wp = 4, }, { .mmc = 5, - .wires = -EINVAL, - .gpio_cd = -EINVAL, - .gpio_wp = -EINVAL, + .wires = 8, + .gpio_wp = 4, }, {} /* Terminator */ }; @@ -344,6 +319,10 @@ static int __init sdp4430_mmc_init(void) { /* Hard Coding Values for testing */ mmc[0].gpio_cd = 373; + mmc[1].gpio_cd = 0; + mmc[2].gpio_cd = 1; + mmc[3].gpio_cd = 2; + mmc[4].gpio_cd = 3; twl4030_mmc_init(mmc); /* link regulators to MMC adapters ... we "know" the * regulators will be set up only *after* we return. @@ -509,6 +488,35 @@ static struct regulator_init_data sdp4430_vdac = { .valid_ops_mask = REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, }, + .num_consumer_supplies = 1, + .consumer_supplies = &sdp4430_vdda_dac_supply, +}; + +/* VPLL2 for digital video outputs */ +static struct regulator_consumer_supply sdp4430_vpll2_supplies[] = { + { + .supply = "vdvi", + .dev = &sdp4430_lcd_device.dev, + }, + { + .supply = "vdds_dsi", + .dev = &sdp4430_dss_device.dev, + } +}; + +static struct regulator_init_data sdp4430_vpll2 = { + .constraints = { + .name = "VDVI", + .min_uV = 1800000, + .max_uV = 1800000, + .apply_uV = true, + .valid_modes_mask = REGULATOR_MODE_NORMAL + | REGULATOR_MODE_STANDBY, + .valid_ops_mask = REGULATOR_CHANGE_MODE + | REGULATOR_CHANGE_STATUS, + }, + .num_consumer_supplies = ARRAY_SIZE(sdp4430_vpll2_supplies), + .consumer_supplies = sdp4430_vpll2_supplies, }; static struct regulator_init_data sdp4430_vusb = { @@ -523,18 +531,6 @@ static struct regulator_init_data sdp4430_vusb = { }, }; -static struct twl_codec_data twl6030_codec = { -#ifdef CONFIG_OMAP4_SUDO_ROMCODE - .audpwron_gpio = 127, - .naudint_irq = INT_44XX_SYS_NIRQ2, -#else - /* provide GPIO number above the valid value, to mean there is no GPIO connected, - likewise do not provide any valid IRQ number */ - .audpwron_gpio = 1024, - .naudint_irq = 0, -#endif -}; - static struct twl_platform_data sdp4430_twldata = { .irq_base = TWL6030_IRQ_BASE, .irq_end = TWL6030_IRQ_END, @@ -550,48 +546,10 @@ static struct twl_platform_data sdp4430_twldata = { .vaux1 = &sdp4430_vaux1, .vaux2 = &sdp4430_vaux2, .vaux3 = &sdp4430_vaux3, - - /* children */ - .codec = &twl6030_codec, + .vpll2 = &sdp4430_vpll2, }; #endif -/* Begin Synaptic Touchscreen TM-01217 */ -static char *tm12xx_idev_names[] = { - "Synaptic TM12XX TouchPoint 1", - "Synaptic TM12XX TouchPoint 2", - "Synaptic TM12XX TouchPoint 3", - "Synaptic TM12XX TouchPoint 4", - "Synaptic TM12XX TouchPoint 5", - "Synaptic TM12XX TouchPoint 6", - NULL, -}; - -static u8 tm12xx_button_map[] = { - KEY_F1, - KEY_F2, -}; - -static struct tm12xx_ts_platform_data tm12xx_platform_data[] = { - [0] = { /* Primary Controller */ - .gpio_intr = 35, - .idev_name = tm12xx_idev_names, - .button_map = tm12xx_button_map, - .num_buttons = ARRAY_SIZE(tm12xx_button_map), - .repeat = 0, - .swap_xy = 1, - }, - [1] = { /* Secondary Controller */ - .gpio_intr = 36, - .idev_name = tm12xx_idev_names, - .button_map = tm12xx_button_map, - .num_buttons = ARRAY_SIZE(tm12xx_button_map), - .repeat = 0, - .swap_xy = 1, - }, -}; -/* End Synaptic Touchscreen TM-01217 */ - static struct i2c_board_info __initdata sdp4430_i2c_boardinfo[] = { { I2C_BOARD_INFO("twl6030", 0x48), @@ -602,29 +560,12 @@ static struct i2c_board_info __initdata sdp4430_i2c_boardinfo[] = { #endif }, }; - -static struct i2c_board_info __initdata sdp4430_i2c_2_boardinfo[] = { - { - I2C_BOARD_INFO("tm12xx_ts_primary", 0x4b), - .platform_data = &tm12xx_platform_data[0], - }, -}; - -static struct i2c_board_info __initdata sdp4430_i2c_3_boardinfo[] = { - { - I2C_BOARD_INFO("tm12xx_ts_secondary", 0x4b), - .platform_data = &tm12xx_platform_data[1], - }, -}; - static int __init omap4_i2c_init(void) { - omap_register_i2c_bus(1, 400, sdp4430_i2c_boardinfo, - ARRAY_SIZE(sdp4430_i2c_boardinfo)); - omap_register_i2c_bus(2, 400, sdp4430_i2c_2_boardinfo, - ARRAY_SIZE(sdp4430_i2c_boardinfo)); - omap_register_i2c_bus(3, 400, sdp4430_i2c_3_boardinfo, + omap_register_i2c_bus(1, 2600, sdp4430_i2c_boardinfo, ARRAY_SIZE(sdp4430_i2c_boardinfo)); + omap_register_i2c_bus(2, 400, NULL, 0); + omap_register_i2c_bus(3, 400, NULL, 0); return 0; } static void omap_mcbsp_init(void) @@ -634,35 +575,29 @@ static void omap_mcbsp_init(void) omap_cfg_reg(Y2_4430_McBSP1_DX); omap_cfg_reg(Y4_4430_McBSP1_FSX); } - -static void omap_abe_init(void) +void omap_kp_init(void) { - /* mcpdm */ - omap_cfg_reg(AG25_4430_ABE_PDM_UL_DATA); - omap_cfg_reg(AF25_4430_ABE_PDM_DL_DATA); - omap_cfg_reg(AE25_4430_ABE_PDM_FRAME); - omap_cfg_reg(AF26_4430_ABE_PDM_LB_CLK); - omap_cfg_reg(AH26_4430_ABE_PDM_CLKS); + omap_cfg_reg(PAD0_4430_UNIPRO_TX0); + omap_cfg_reg(PAD1_4430_UNIPRO_TY0); + omap_cfg_reg(PAD0_4430_UNIPRO_TX1); + omap_cfg_reg(PAD1_4430_UNIPRO_TY1); + omap_cfg_reg(PAD0_4430_UNIPRO_TX2); + omap_cfg_reg(PAD1_4430_UNIPRO_TY2); + + omap_cfg_reg(PAD0_4430_UNIPRO_RX0); + omap_cfg_reg(PAD1_4430_UNIPRO_RY0); + omap_cfg_reg(PAD0_4430_UNIPRO_RX1); + omap_cfg_reg(PAD1_4430_UNIPRO_RY1); + omap_cfg_reg(PAD0_4430_UNIPRO_RX2); + omap_cfg_reg(PAD1_4430_UNIPRO_RY2); } static void omap_phoenix_init(void) { - /* twl6030 audio power-on */ - omap_cfg_reg(AA27_4430_GPIO_127); - omap_cfg_reg(PAD1_4430_SYS_NIRQ1); omap_cfg_reg(PAD0_4430_SYS_NIRQ2); } -static struct omap_usbhost_port_data sdp_usbhost_port_data[] = { - [0] = { - .mode = OMAP_USB_PORT_MODE_ULPI_PHY, - }, - [1] = { - .mode = OMAP_USB_PORT_MODE_ULPI_PHY, - }, -}; - static void __init omap_4430sdp_init(void) { omap4_i2c_init(); @@ -675,18 +610,10 @@ static void __init omap_4430sdp_init(void) ARRAY_SIZE(sdp4430_spi_board_info)); omap_mcbsp_init(); sdp4430_mmc_init(); - sdp4430_display_init(); + omap_kp_init(); omap_phoenix_init(); -#ifdef CONFIG_NOP_USB_XCEIV - /* OMAP4SDP uses no explicit transceiver */ - usb_nop_xceiv_register(); -#endif - - usb_musb_init(MUSB_INTERFACE_UTMI); - usb_host_and_tll_init(sdp_usbhost_port_data, - ARRAY_SIZE(sdp_usbhost_port_data)); - usb_ehci_init(EHCI_HCD_OMAP_MODE_PHY, true, true, 57, 61); - omap_abe_init(); + sdp4430_display_init(); + printk(KERN_INFO "\n \n omap_4430sdp_init done .. \n \n "); } |