Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f4eb64da authored by Olof Johansson's avatar Olof Johansson
Browse files

Merge branch 'omap/board' into next/boards

* 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
parents b94ee062 b46ad442
Loading
Loading
Loading
Loading
+13 −3
Original line number Original line Diff line number Diff line
@@ -76,8 +76,13 @@ config SOC_OMAP3430
	default y
	default y
	select ARCH_OMAP_OTG
	select ARCH_OMAP_OTG


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

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


@@ -314,7 +319,12 @@ config MACH_OMAP_3630SDP


config MACH_TI8168EVM
config MACH_TI8168EVM
	bool "TI8168 Evaluation Module"
	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
	default y


config MACH_OMAP_4430SDP
config MACH_OMAP_4430SDP
+1 −0
Original line number Original line Diff line number Diff line
@@ -232,6 +232,7 @@ obj-$(CONFIG_MACH_CRANEBOARD) += board-am3517crane.o


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


# Platform specific device init code
# Platform specific device init code


+6 −0
Original line number Original line Diff line number Diff line
@@ -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 = {
static struct platform_device *sdp4430_devices[] __initdata = {
	&sdp4430_gpio_keys_device,
	&sdp4430_gpio_keys_device,
	&sdp4430_leds_gpio,
	&sdp4430_leds_gpio,
	&sdp4430_leds_pwm,
	&sdp4430_leds_pwm,
	&sdp4430_vbat,
	&sdp4430_vbat,
	&sdp4430_dmic_codec,
};
};


static struct omap_musb_board_data musb_board_data = {
static struct omap_musb_board_data musb_board_data = {
+58 −24
Original line number Original line Diff line number Diff line
@@ -54,6 +54,7 @@
#include "common-board-devices.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_CS	5
#define CM_T35_SMSC911X_GPIO	163
#define CM_T35_SMSC911X_GPIO	163
@@ -339,8 +340,10 @@ static struct regulator_consumer_supply cm_t35_vsim_supply[] = {
	REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.0"),
	REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.0"),
};
};


static struct regulator_consumer_supply cm_t35_vdvi_supply[] = {
static struct regulator_consumer_supply cm_t35_vio_supplies[] = {
	REGULATOR_SUPPLY("vdvi", "omapdss"),
	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) */
/* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max 220 mA) */
@@ -373,6 +376,19 @@ static struct regulator_init_data cm_t35_vsim = {
	.consumer_supplies	= cm_t35_vsim_supply,
	.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[] = {
static uint32_t cm_t35_keymap[] = {
	KEY(0, 0, KEY_A),	KEY(0, 1, KEY_B),	KEY(0, 2, KEY_LEFT),
	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),
	KEY(1, 0, KEY_UP),	KEY(1, 1, KEY_ENTER),	KEY(1, 2, KEY_DOWN),
@@ -421,6 +437,23 @@ static struct usbhs_omap_board_data usbhs_bdata __initdata = {
	.reset_gpio_port[2]  = -EINVAL
	.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,
static int cm_t35_twl_gpio_setup(struct device *dev, unsigned gpio,
				 unsigned ngpio)
				 unsigned ngpio)
{
{
@@ -456,17 +489,14 @@ static struct twl4030_platform_data cm_t35_twldata = {
	.gpio		= &cm_t35_gpio_data,
	.gpio		= &cm_t35_gpio_data,
	.vmmc1		= &cm_t35_vmmc1,
	.vmmc1		= &cm_t35_vmmc1,
	.vsim		= &cm_t35_vsim,
	.vsim		= &cm_t35_vsim,
	.vio		= &cm_t35_vio,
};
};


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

			      TWL_COMMON_PDATA_AUDIO);
	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;


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


static void __init cm_t35_init_mux(void)
static void __init cm_t35_init_mux(void)
{
{
	omap_mux_init_signal("gpio_70", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT);
	int mux_mode = 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("dss_data0.dss_data0", mux_mode);
	omap_mux_init_signal("gpio_73", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT);
	omap_mux_init_signal("dss_data1.dss_data1", mux_mode);
	omap_mux_init_signal("gpio_74", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT);
	omap_mux_init_signal("dss_data2.dss_data2", mux_mode);
	omap_mux_init_signal("gpio_75", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT);
	omap_mux_init_signal("dss_data3.dss_data3", mux_mode);
	cm_t3x_common_dss_mux_init(OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT);
	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)
static void __init cm_t3730_init_mux(void)
{
{
	omap_mux_init_signal("sys_boot0", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT);
	int mux_mode = 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_boot0", mux_mode);
	omap_mux_init_signal("sys_boot4", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT);
	omap_mux_init_signal("sys_boot1", mux_mode);
	omap_mux_init_signal("sys_boot5", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT);
	omap_mux_init_signal("sys_boot3", mux_mode);
	omap_mux_init_signal("sys_boot6", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT);
	omap_mux_init_signal("sys_boot4", mux_mode);
	cm_t3x_common_dss_mux_init(OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT);
	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
#else
static inline void cm_t35_init_mux(void) {}
static inline void cm_t35_init_mux(void) {}
@@ -612,7 +646,7 @@ static void __init cm_t3x_common_init(void)
	cm_t35_init_display();
	cm_t35_init_display();


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


static void __init cm_t35_init(void)
static void __init cm_t35_init(void)
+44 −2
Original line number Original line Diff line number Diff line
@@ -15,6 +15,7 @@
#include <linux/input/matrix_keypad.h>
#include <linux/input/matrix_keypad.h>
#include <linux/spi/spi.h>
#include <linux/spi/spi.h>
#include <linux/wl12xx.h>
#include <linux/wl12xx.h>
#include <linux/spi/tsc2005.h>
#include <linux/i2c.h>
#include <linux/i2c.h>
#include <linux/i2c/twl.h>
#include <linux/i2c/twl.h>
#include <linux/clk.h>
#include <linux/clk.h>
@@ -58,6 +59,9 @@


#define RX51_USB_TRANSCEIVER_RST_GPIO	67
#define RX51_USB_TRANSCEIVER_RST_GPIO	67


#define RX51_TSC2005_RESET_GPIO         104
#define RX51_TSC2005_IRQ_GPIO           100

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


static struct wl12xx_platform_data wl1251_pdata;
static struct wl12xx_platform_data wl1251_pdata;
static struct tsc2005_platform_data tsc2005_pdata;


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


@@ -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)
void __init rx51_peripherals_init(void)
{
{
	rx51_i2c_init();
	rx51_i2c_init();
@@ -1094,6 +1135,7 @@ void __init rx51_peripherals_init(void)
	board_smc91x_init();
	board_smc91x_init();
	rx51_add_gpio_keys();
	rx51_add_gpio_keys();
	rx51_init_wl1251();
	rx51_init_wl1251();
	rx51_init_tsc2005();
	rx51_init_si4713();
	rx51_init_si4713();
	spi_register_board_info(rx51_peripherals_spi_board_info,
	spi_register_board_info(rx51_peripherals_spi_board_info,
				ARRAY_SIZE(rx51_peripherals_spi_board_info));
				ARRAY_SIZE(rx51_peripherals_spi_board_info));
Loading