summaryrefslogtreecommitdiff
path: root/arch/arm/mach-omap2
diff options
context:
space:
mode:
authorSumit Semwal <sumit.semwal@ti.com>2009-11-11 01:17:33 -0600
committerSantosh Shilimkar <santosh.shilimkar@ti.com>2009-11-11 12:21:14 +0100
commit15e44aceac672df0e827b976759daaa56a2563b3 (patch)
tree327697765b8b5e815a836d6d427913fe7f215fa9 /arch/arm/mach-omap2
parent798fbae1f49fea8b3d02dee3b190a92317d5d0bf (diff)
OMAP4: DSI first update.
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r--arch/arm/mach-omap2/board-4430sdp.c327
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 ");
}