Skip to content

Commit

Permalink
Merge branch 'omap/board' into next/boards
Browse files Browse the repository at this point in the history
* omap/board:
  ARM: OMAP: TI814X: Create board support and enable build for TI8148 EVM
  ARM: OMAP4: board-4430sdp: Register platform device for digimic codec
  ARM: OMAP4: devices: Register OMAP4 DMIC platform device
  ARM: OMAP3: sdram-nokia: add 200 MHz memory timings info
  ARM: OMAP3: rx51: enable tsc2005 touchscreen
  ARM: OMAP3: cm-t35: fix mux mode for DSS pins
  ARM: OMAP3: cm-t35: Add reset for USB hub
  ARM: OMAP3: cm-t35: enable audio
  ARM: OMAP3: cm-t35: Use correct DSS regulator supply
  ARM: OMAP3: cm-t35: Add regulator for ads7846 touchscreen
  ARM: OMAP: TI814X: Add cpu type macros and detection support
  ARM: OMAP: TI81XX: Prepare for addition of TI814X support
  ARM: OMAP: ID: Chip detection for OMAP4470
  ARM: OMAP: id: add chip id recognition for omap4430 es2.3
  ARM: OMAP: am33xx: Update common OMAP machine specific sources
  ARM: OMAP: am33xx: Update common omap platform files
  • Loading branch information
Olof Johansson committed Dec 16, 2011
2 parents b94ee06 + b46ad44 commit f4eb64d
Show file tree
Hide file tree
Showing 30 changed files with 462 additions and 116 deletions.
16 changes: 13 additions & 3 deletions arch/arm/mach-omap2/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,13 @@ config SOC_OMAP3430
default y
select ARCH_OMAP_OTG

config SOC_OMAPTI816X
bool "TI816X support"
config SOC_OMAPTI81XX
bool "TI81XX support"
depends on ARCH_OMAP3
default y

config SOC_OMAPAM33XX
bool "AM33XX support"
depends on ARCH_OMAP3
default y

Expand Down Expand Up @@ -314,7 +319,12 @@ config MACH_OMAP_3630SDP

config MACH_TI8168EVM
bool "TI8168 Evaluation Module"
depends on SOC_OMAPTI816X
depends on SOC_OMAPTI81XX
default y

config MACH_TI8148EVM
bool "TI8148 Evaluation Module"
depends on SOC_OMAPTI81XX
default y

config MACH_OMAP_4430SDP
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-omap2/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,7 @@ obj-$(CONFIG_MACH_CRANEBOARD) += board-am3517crane.o

obj-$(CONFIG_MACH_SBC3530) += board-omap3stalker.o
obj-$(CONFIG_MACH_TI8168EVM) += board-ti8168evm.o
obj-$(CONFIG_MACH_TI8148EVM) += board-ti8168evm.o

# Platform specific device init code

Expand Down
6 changes: 6 additions & 0 deletions arch/arm/mach-omap2/board-4430sdp.c
Original file line number Diff line number Diff line change
Expand Up @@ -372,11 +372,17 @@ static struct platform_device sdp4430_vbat = {
},
};

static struct platform_device sdp4430_dmic_codec = {
.name = "dmic-codec",
.id = -1,
};

static struct platform_device *sdp4430_devices[] __initdata = {
&sdp4430_gpio_keys_device,
&sdp4430_leds_gpio,
&sdp4430_leds_pwm,
&sdp4430_vbat,
&sdp4430_dmic_codec,
};

static struct omap_musb_board_data musb_board_data = {
Expand Down
82 changes: 58 additions & 24 deletions arch/arm/mach-omap2/board-cm-t35.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@
#include "hsmmc.h"
#include "common-board-devices.h"

#define CM_T35_GPIO_PENDOWN 57
#define CM_T35_GPIO_PENDOWN 57
#define SB_T35_USB_HUB_RESET_GPIO 167

#define CM_T35_SMSC911X_CS 5
#define CM_T35_SMSC911X_GPIO 163
Expand Down Expand Up @@ -339,8 +340,10 @@ static struct regulator_consumer_supply cm_t35_vsim_supply[] = {
REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.0"),
};

static struct regulator_consumer_supply cm_t35_vdvi_supply[] = {
REGULATOR_SUPPLY("vdvi", "omapdss"),
static struct regulator_consumer_supply cm_t35_vio_supplies[] = {
REGULATOR_SUPPLY("vcc", "spi1.0"),
REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
};

/* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max 220 mA) */
Expand Down Expand Up @@ -373,6 +376,19 @@ static struct regulator_init_data cm_t35_vsim = {
.consumer_supplies = cm_t35_vsim_supply,
};

static struct regulator_init_data cm_t35_vio = {
.constraints = {
.min_uV = 1800000,
.max_uV = 1800000,
.apply_uV = true,
.valid_modes_mask = REGULATOR_MODE_NORMAL
| REGULATOR_MODE_STANDBY,
.valid_ops_mask = REGULATOR_CHANGE_MODE,
},
.num_consumer_supplies = ARRAY_SIZE(cm_t35_vio_supplies),
.consumer_supplies = cm_t35_vio_supplies,
};

static uint32_t cm_t35_keymap[] = {
KEY(0, 0, KEY_A), KEY(0, 1, KEY_B), KEY(0, 2, KEY_LEFT),
KEY(1, 0, KEY_UP), KEY(1, 1, KEY_ENTER), KEY(1, 2, KEY_DOWN),
Expand Down Expand Up @@ -421,6 +437,23 @@ static struct usbhs_omap_board_data usbhs_bdata __initdata = {
.reset_gpio_port[2] = -EINVAL
};

static void cm_t35_init_usbh(void)
{
int err;

err = gpio_request_one(SB_T35_USB_HUB_RESET_GPIO,
GPIOF_OUT_INIT_LOW, "usb hub rst");
if (err) {
pr_err("SB-T35: usb hub rst gpio request failed: %d\n", err);
} else {
udelay(10);
gpio_set_value(SB_T35_USB_HUB_RESET_GPIO, 1);
msleep(1);
}

usbhs_init(&usbhs_bdata);
}

static int cm_t35_twl_gpio_setup(struct device *dev, unsigned gpio,
unsigned ngpio)
{
Expand Down Expand Up @@ -456,17 +489,14 @@ static struct twl4030_platform_data cm_t35_twldata = {
.gpio = &cm_t35_gpio_data,
.vmmc1 = &cm_t35_vmmc1,
.vsim = &cm_t35_vsim,
.vio = &cm_t35_vio,
};

static void __init cm_t35_init_i2c(void)
{
omap3_pmic_get_config(&cm_t35_twldata, TWL_COMMON_PDATA_USB,
TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2);

cm_t35_twldata.vpll2->constraints.name = "VDVI";
cm_t35_twldata.vpll2->num_consumer_supplies =
ARRAY_SIZE(cm_t35_vdvi_supply);
cm_t35_twldata.vpll2->consumer_supplies = cm_t35_vdvi_supply;
TWL_COMMON_REGULATOR_VDAC |
TWL_COMMON_PDATA_AUDIO);

omap3_pmic_init("tps65930", &cm_t35_twldata);
}
Expand Down Expand Up @@ -570,24 +600,28 @@ static void __init cm_t3x_common_dss_mux_init(int mux_mode)

static void __init cm_t35_init_mux(void)
{
omap_mux_init_signal("gpio_70", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT);
omap_mux_init_signal("gpio_71", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT);
omap_mux_init_signal("gpio_72", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT);
omap_mux_init_signal("gpio_73", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT);
omap_mux_init_signal("gpio_74", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT);
omap_mux_init_signal("gpio_75", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT);
cm_t3x_common_dss_mux_init(OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT);
int mux_mode = OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT;

omap_mux_init_signal("dss_data0.dss_data0", mux_mode);
omap_mux_init_signal("dss_data1.dss_data1", mux_mode);
omap_mux_init_signal("dss_data2.dss_data2", mux_mode);
omap_mux_init_signal("dss_data3.dss_data3", mux_mode);
omap_mux_init_signal("dss_data4.dss_data4", mux_mode);
omap_mux_init_signal("dss_data5.dss_data5", mux_mode);
cm_t3x_common_dss_mux_init(mux_mode);
}

static void __init cm_t3730_init_mux(void)
{
omap_mux_init_signal("sys_boot0", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT);
omap_mux_init_signal("sys_boot1", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT);
omap_mux_init_signal("sys_boot3", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT);
omap_mux_init_signal("sys_boot4", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT);
omap_mux_init_signal("sys_boot5", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT);
omap_mux_init_signal("sys_boot6", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT);
cm_t3x_common_dss_mux_init(OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT);
int mux_mode = OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT;

omap_mux_init_signal("sys_boot0", mux_mode);
omap_mux_init_signal("sys_boot1", mux_mode);
omap_mux_init_signal("sys_boot3", mux_mode);
omap_mux_init_signal("sys_boot4", mux_mode);
omap_mux_init_signal("sys_boot5", mux_mode);
omap_mux_init_signal("sys_boot6", mux_mode);
cm_t3x_common_dss_mux_init(mux_mode);
}
#else
static inline void cm_t35_init_mux(void) {}
Expand All @@ -612,7 +646,7 @@ static void __init cm_t3x_common_init(void)
cm_t35_init_display();

usb_musb_init(NULL);
usbhs_init(&usbhs_bdata);
cm_t35_init_usbh();
}

static void __init cm_t35_init(void)
Expand Down
46 changes: 44 additions & 2 deletions arch/arm/mach-omap2/board-rx51-peripherals.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#include <linux/input/matrix_keypad.h>
#include <linux/spi/spi.h>
#include <linux/wl12xx.h>
#include <linux/spi/tsc2005.h>
#include <linux/i2c.h>
#include <linux/i2c/twl.h>
#include <linux/clk.h>
Expand Down Expand Up @@ -58,6 +59,9 @@

#define RX51_USB_TRANSCEIVER_RST_GPIO 67

#define RX51_TSC2005_RESET_GPIO 104
#define RX51_TSC2005_IRQ_GPIO 100

/* list all spi devices here */
enum {
RX51_SPI_WL1251,
Expand All @@ -66,6 +70,7 @@ enum {
};

static struct wl12xx_platform_data wl1251_pdata;
static struct tsc2005_platform_data tsc2005_pdata;

#if defined(CONFIG_SENSORS_TSL2563) || defined(CONFIG_SENSORS_TSL2563_MODULE)
static struct tsl2563_platform_data rx51_tsl2563_platform_data = {
Expand Down Expand Up @@ -167,10 +172,10 @@ static struct spi_board_info rx51_peripherals_spi_board_info[] __initdata = {
.modalias = "tsc2005",
.bus_num = 1,
.chip_select = 0,
/* .irq = OMAP_GPIO_IRQ(RX51_TSC2005_IRQ_GPIO),*/
.irq = OMAP_GPIO_IRQ(RX51_TSC2005_IRQ_GPIO),
.max_speed_hz = 6000000,
.controller_data = &tsc2005_mcspi_config,
/* .platform_data = &tsc2005_config,*/
.platform_data = &tsc2005_pdata,
},
};

Expand Down Expand Up @@ -1086,6 +1091,42 @@ static void __init rx51_init_wl1251(void)
*/
}

static struct tsc2005_platform_data tsc2005_pdata = {
.ts_pressure_max = 2048,
.ts_pressure_fudge = 2,
.ts_x_max = 4096,
.ts_x_fudge = 4,
.ts_y_max = 4096,
.ts_y_fudge = 7,
.ts_x_plate_ohm = 280,
.esd_timeout_ms = 8000,
};

static void rx51_tsc2005_set_reset(bool enable)
{
gpio_set_value(RX51_TSC2005_RESET_GPIO, enable);
}

static void __init rx51_init_tsc2005(void)
{
int r;

r = gpio_request_one(RX51_TSC2005_IRQ_GPIO, GPIOF_IN, "tsc2005 IRQ");
if (r < 0) {
printk(KERN_ERR "unable to get %s GPIO\n", "tsc2005 IRQ");
rx51_peripherals_spi_board_info[RX51_SPI_TSC2005].irq = 0;
}

r = gpio_request_one(RX51_TSC2005_RESET_GPIO, GPIOF_OUT_INIT_HIGH,
"tsc2005 reset");
if (r >= 0) {
tsc2005_pdata.set_reset = rx51_tsc2005_set_reset;
} else {
printk(KERN_ERR "unable to get %s GPIO\n", "tsc2005 reset");
tsc2005_pdata.esd_timeout_ms = 0;
}
}

void __init rx51_peripherals_init(void)
{
rx51_i2c_init();
Expand All @@ -1094,6 +1135,7 @@ void __init rx51_peripherals_init(void)
board_smc91x_init();
rx51_add_gpio_keys();
rx51_init_wl1251();
rx51_init_tsc2005();
rx51_init_si4713();
spi_register_board_info(rx51_peripherals_spi_board_info,
ARRAY_SIZE(rx51_peripherals_spi_board_info));
Expand Down
33 changes: 19 additions & 14 deletions arch/arm/mach-omap2/board-ti8168evm.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Code for TI8168 EVM.
* Code for TI8168/TI8148 EVM.
*
* Copyright (C) 2010 Texas Instruments, Inc. - http://www.ti.com/
*
Expand All @@ -24,28 +24,33 @@
#include <plat/board.h>
#include "common.h"

static struct omap_board_config_kernel ti8168_evm_config[] __initdata = {
static struct omap_board_config_kernel ti81xx_evm_config[] __initdata = {
};

static void __init ti8168_evm_init(void)
static void __init ti81xx_evm_init(void)
{
omap_serial_init();
omap_sdrc_init(NULL, NULL);
omap_board_config = ti8168_evm_config;
omap_board_config_size = ARRAY_SIZE(ti8168_evm_config);
}

static void __init ti8168_evm_map_io(void)
{
omapti816x_map_common_io();
omap_board_config = ti81xx_evm_config;
omap_board_config_size = ARRAY_SIZE(ti81xx_evm_config);
}

MACHINE_START(TI8168EVM, "ti8168evm")
/* Maintainer: Texas Instruments */
.atag_offset = 0x100,
.map_io = ti8168_evm_map_io,
.init_early = ti816x_init_early,
.init_irq = ti816x_init_irq,
.map_io = ti81xx_map_io,
.init_early = ti81xx_init_early,
.init_irq = ti81xx_init_irq,
.timer = &omap3_timer,
.init_machine = ti81xx_evm_init,
MACHINE_END

MACHINE_START(TI8148EVM, "ti8148evm")
/* Maintainer: Texas Instruments */
.atag_offset = 0x100,
.map_io = ti81xx_map_io,
.init_early = ti81xx_init_early,
.init_irq = ti81xx_init_irq,
.timer = &omap3_timer,
.init_machine = ti8168_evm_init,
.init_machine = ti81xx_evm_init,
MACHINE_END
2 changes: 1 addition & 1 deletion arch/arm/mach-omap2/clock.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
#include "cm-regbits-24xx.h"
#include "cm-regbits-34xx.h"

u8 cpu_mask;
u16 cpu_mask;

/*
* clkdm_control: if true, then when a clock is enabled in the
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-omap2/clock.h
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ void omap2_clk_print_new_rates(const char *hfclkin_ck_name,
const char *core_ck_name,
const char *mpu_ck_name);

extern u8 cpu_mask;
extern u16 cpu_mask;

extern const struct clkops clkops_omap2_dflt_wait;
extern const struct clkops clkops_dummy;
Expand Down
6 changes: 5 additions & 1 deletion arch/arm/mach-omap2/clock3xxx_data.c
Original file line number Diff line number Diff line change
Expand Up @@ -3517,6 +3517,10 @@ int __init omap3xxx_clk_init(void)
} else if (cpu_is_ti816x()) {
cpu_mask = RATE_IN_TI816X;
cpu_clkflg = CK_TI816X;
} else if (cpu_is_am33xx()) {
cpu_mask = RATE_IN_AM33XX;
} else if (cpu_is_ti814x()) {
cpu_mask = RATE_IN_TI814X;
} else if (cpu_is_omap34xx()) {
if (omap_rev() == OMAP3430_REV_ES1_0) {
cpu_mask = RATE_IN_3430ES1;
Expand Down Expand Up @@ -3600,7 +3604,7 @@ int __init omap3xxx_clk_init(void)
* Lock DPLL5 -- here only until other device init code can
* handle this
*/
if (!cpu_is_ti816x() && (omap_rev() >= OMAP3430_REV_ES2_0))
if (!cpu_is_ti81xx() && (omap_rev() >= OMAP3430_REV_ES2_0))
omap3_clk_lock_dpll5();

/* Avoid sleeping during omap3_core_dpll_m2_set_rate() */
Expand Down
Loading

0 comments on commit f4eb64d

Please sign in to comment.