void __init omap4_kona_audio_init(void)
{
	unsigned int gpio_ear_send_end;
	unsigned int gpio_ear_bias_discharge;

	platform_device_register(&vbatt_device);

	wm1811_pdata.ldo[0].enable =
		omap_muxtbl_get_gpio_by_name("CODEC_LDO_EN");

	gpio_ear_send_end =
		omap_muxtbl_get_gpio_by_name("EAR_SEND_END");
	gpio_request(gpio_ear_send_end, "EAR_SEND_END");
	kona_audio_i2c1_board_info[0].irq = gpio_to_irq(gpio_ear_send_end);

	/* board rev 2,3,4 only use ear-bias-discharge */
	if ((1 < system_rev) && (system_rev < 5)) {
		gpio_ear_bias_discharge =
		omap_muxtbl_get_gpio_by_name("EAR_BIAS_DISCHARGE");
		gpio_request(gpio_ear_bias_discharge, "EAR_BIAS_DISCHARGE");
		gpio_direction_output(gpio_ear_bias_discharge, 0);
	}

	i2c_register_board_info(1, kona_audio_i2c1_board_info,
				ARRAY_SIZE(kona_audio_i2c1_board_info));
}
int __init omap4_espresso10_irled_init(void)
{
	int ret = 0;
	int i;
	unsigned int boardtype = omap4_espresso10_get_board_type();

	if (system_rev > 6 && boardtype != SEC_MACHINE_ESPRESSO10_USA_BBY) {
		for (i = 0; i < ARRAY_SIZE(irled_gpios); i++) {
			irled_gpios[i].gpio =
			omap_muxtbl_get_gpio_by_name(irled_gpios[i].label);
			omap_mux_set_gpio(
				OMAP_PIN_INPUT_PULLDOWN | OMAP_MUX_MODE7,
				irled_gpios[i].gpio);
		}

		return 0;
	}

	for (i = 0; i < ARRAY_SIZE(irled_gpios); i++)
		irled_gpios[i].gpio =
		    omap_muxtbl_get_gpio_by_name(irled_gpios[i].label);
	gpio_request_array(irled_gpios, ARRAY_SIZE(irled_gpios));

	ret = irled_init();
	if (ret < 0) {
		pr_err("irled: irled_init failed\n");
		for (i = 0; i < ARRAY_SIZE(irled_gpios); i++)
			gpio_free(irled_gpios[i].gpio);
	}

	return ret;
}
static void __init espresso_gpio_i2c_init(void)
{
	/* gpio-i2c 6 */
	espresso_gpio_i2c6_pdata.sda_pin =
		omap_muxtbl_get_gpio_by_name("ADC_I2C_SDA_1.8V");
	espresso_gpio_i2c6_pdata.scl_pin =
		omap_muxtbl_get_gpio_by_name("ADC_I2C_SCL_1.8V");
}
Пример #4
0
static void __init gokey_gpio_i2c_init(void)
{
	/* gpio-i2c 6 */
	gokey_gpio_i2c6_pdata.sda_pin =
	    omap_muxtbl_get_gpio_by_name("MHL_SDA_1.8V");
	gokey_gpio_i2c6_pdata.scl_pin =
	    omap_muxtbl_get_gpio_by_name("MHL_SCL_1.8V");
}
static void __init gokey_gpio_i2c_init(void)
{
	/*Fuel gauge I2C : gpio-i2c 7*/
	gokey_gpio_i2c7_pdata.sda_pin =
		omap_muxtbl_get_gpio_by_name("FUEL_SDA_1.8V");
	gokey_gpio_i2c7_pdata.scl_pin =
		omap_muxtbl_get_gpio_by_name("FUEL_SCL_1.8V");
}
void __init omap4_gokey_charger_init(void)
{
	int ret;
	charger_gpio_init();

	gokey_gpio_i2c_init();

	battery_manager_pdata.ta_gpio =
			omap_muxtbl_get_gpio_by_name("TA_nCHG");

	bq24157_pdata.ta_gpio =
				omap_muxtbl_get_gpio_by_name("TA_nCHG");

	bq24157_pdata.ta_irq =
				gpio_to_irq(bq24157_pdata.ta_gpio);

	bq24157_pdata.ta_enable_gpio =
				omap_muxtbl_get_gpio_by_name("TA_nCONNECTED");

	battery_manager_pdata.bat_removal =
				omap_muxtbl_get_gpio_by_name("BAT_REMOVAL");

	if (system_rev < 2)
		omap_mux_set_gpio(OMAP_PIN_INPUT_PULLUP |
			OMAP_MUX_MODE3, battery_manager_pdata.bat_removal);

	bq24157_pdata.vf_gpio = battery_manager_pdata.bat_removal;
	bq24157_pdata.vf_irq = gpio_to_irq(bq24157_pdata.vf_gpio);

	battery_manager_pdata.jig_on =
				omap_muxtbl_get_gpio_by_name("JIG_ON_18");

	battery_manager_pdata.bootmode = sec_bootmode;

	pr_info("%s: bootmode is %d\n",
		__func__, battery_manager_pdata.bootmode);

/*
	ret = platform_device_register(&gokey_gpio_i2c5_device);
	if (ret < 0)
		pr_err("%s: gpio_i2c5 device register fail\n", __func__);
*/
	ret = platform_device_register(&gokey_gpio_i2c7_device);
	if (ret < 0)
		pr_err("%s: gpio_i2c7 device register fail\n", __func__);

	i2c_register_board_info(4, bq24157_i2c, ARRAY_SIZE(bq24157_i2c));
	i2c_register_board_info(7, beagle_i2c2_boardinfo,
		ARRAY_SIZE(beagle_i2c2_boardinfo));
	ret = platform_device_register(&battery_manager_device);
	if (ret < 0)
		pr_err("%s: battery monitor device register fail\n", __func__);
}
Пример #7
0
static void __init gokey_gpio_keypad_gpio_init(void)
{
	int i;

	for (i = 0; i < ARRAY_SIZE(keys_map_high_gpios); i++)
		gokey_gpio_keypad_keys_map_high[i].gpio =
		    omap_muxtbl_get_gpio_by_name(keys_map_high_gpios[i].label);

	for (i = 0; i < ARRAY_SIZE(keys_map_low_gpios); i++)
		gokey_gpio_keypad_keys_map_low[i].gpio =
		    omap_muxtbl_get_gpio_by_name(keys_map_low_gpios[i].label);
}
static void __init espresso10_audio_init(void)
{
#ifdef CONFIG_TWL6040_CODEC
	espresso10_codec.audpwron_gpio =
		omap_muxtbl_get_gpio_by_name("AUD_PWRON");
#endif

#ifdef CONFIG_SND_SOC_WM8994
	platform_device_register(&vbatt_device);

	wm1811_pdata.ldo[0].enable =
		omap_muxtbl_get_gpio_by_name("CODEC_LDO_EN");
#endif
}
void __init omap4_superior_display_init(void)
{
	struct panel_s6e8aa0a01_data *panel;
	int oled_det_gpio;

	/* Removed ENABLE_ON_INIT flag for dss_sys_clk(functional clock)
	 * in arch/arm/mach-omap2/clock44xx_data.c, manually
	 * enabling the functional clock by getting dss_sys_fclk.
	 * NOTE: It will be disabled, during disable path.
	 */
#ifdef CONFIG_FB_OMAP_BOOTLOADER_INIT
	dss_ick = clk_get(NULL, "ick");
	if (IS_ERR(dss_ick)) {
		pr_err("Could not get dss interface clock\n");
		/* return -ENOENT; */
	}
	dss_sys_fclk = omap_clk_get_by_name("dss_sys_clk");
	if (IS_ERR(dss_sys_fclk)) {
		pr_err("Could not get dss system clock\n");
		/* return -ENOENT; */
	}
	clk_enable(dss_sys_fclk);
	dss_dss_fclk = omap_clk_get_by_name("dss_dss_clk");
	if (IS_ERR(dss_dss_fclk)) {
		pr_err("Could not get dss functional clock\n");
		/* return -ENOENT; */
	}
#endif

	panel = &superior_oled_data;

	superior_oled_device.data = panel;

	omap4_ctrl_pad_writel(0x1FF80000,
			OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_DSIPHY);

	panel->reset_gpio =
	    omap_muxtbl_get_gpio_by_name("MLCD_RST");
	panel->oled_id_gpio =
		omap_muxtbl_get_gpio_by_name("OLED_ID");

	oled_det_gpio = omap_muxtbl_get_gpio_by_name("OLED_DET");
	gpio_request(oled_det_gpio, "OLED_DET");
	gpio_direction_input(oled_det_gpio);
	panel->oled_det_irq = gpio_to_irq(oled_det_gpio);

	get_panel_data(panel_data, panel);

	omap_display_init(&superior_dss_data);
}
Пример #10
0
void __init omap4_kona_pmic_init(void)
{
	unsigned int gpio_sys_drm_msec =
		omap_muxtbl_get_gpio_by_name("SYS_DRM_MSEC");

	/* Update oscillator information */
	omap_pm_set_osc_lp_time(15000, 1);

	/*
	 * This will allow unused regulator to be shutdown. This flag
	 * should be set in the board file. Before regulators are registered.
	 */
	regulator_has_full_constraints();

	platform_add_devices(kona_pmic_devices,
			     ARRAY_SIZE(kona_pmic_devices));

	i2c_register_board_info(1, kona_twl6034_i2c1_board_info,
				ARRAY_SIZE(kona_twl6034_i2c1_board_info));

	/*
	 * Drive MSECURE high for TWL6034 write access.
	 */
	gpio_request(gpio_sys_drm_msec, "SYS_DRM_MSEC");
	gpio_direction_output(gpio_sys_drm_msec, 1);

	if (enable_sr)
		omap_enable_smartreflex_on_init();

	/*enable off-mode*/
	omap_pm_enable_off_mode();
}
static void kona_display_gpio_init(void)
{
	int i;

	for (i = 0; i < ARRAY_SIZE(display_gpios); i++)
		display_gpios[i].gpio =
			omap_muxtbl_get_gpio_by_name(display_gpios[i].label);

	gpio_request_array(display_gpios, ARRAY_SIZE(display_gpios));

#ifdef CONFIG_OMAP4_DSS_HDMI
	kona_hdmi_device.hpd_gpio =
		omap_muxtbl_get_gpio_by_name("HDMI_HPD");
	kona_hdmi_mux_init();
#endif
}
static void __init espresso_ts_panel_setup(void)
{
	int i, panel_id = 0;

	for (i = 0; i < ARRAY_SIZE(ts_panel_gpios); i++)
		ts_panel_gpios[i].gpio =
			omap_muxtbl_get_gpio_by_name(ts_panel_gpios[i].label);
	gpio_request_array(ts_panel_gpios, ARRAY_SIZE(ts_panel_gpios));

	for (i = 0; i < ARRAY_SIZE(ts_panel_gpios); i++)
		panel_id |= gpio_get_value(ts_panel_gpios[i].gpio) << i;

	if (board_is_espresso10()) {
		espresso_ts_pdata.fw_name = "synaptics/p5100.fw";
		espresso_ts_pdata.fw_info = &espresso10_tsp_fw_info,
		espresso_ts_pdata.rx_channel_no	= 42,
		espresso_ts_pdata.tx_channel_no	= 27,
		espresso_ts_pdata.x_pixel_size	= 1279,
		espresso_ts_pdata.y_pixel_size	= 799,
		espresso_ts_pdata.pivot		= false,
		espresso_ts_pdata.ta_state	= CABLE_NONE,
		panel_id += 2;
	}

	espresso_ts_pdata.panel_name = panel_name[clamp(panel_id, 0, 7)];
}
static void __init espresso_tsp_gpio_init(void)
{
	int i;

	for (i = 0; i < ARRAY_SIZE(tsp_gpios); i++)
		tsp_gpios[i].gpio =
			omap_muxtbl_get_gpio_by_name(tsp_gpios[i].label);
                        
	if (board_is_espresso10())
		tsp_gpios[GPIO_TOUCH_EN].flags = GPIOF_DIR_OUT;
                        
	gpio_request_array(tsp_gpios, ARRAY_SIZE(tsp_gpios));

	espresso_i2c3_boardinfo[0].irq =
				gpio_to_irq(tsp_gpios[GPIO_TOUCH_nINT].gpio);
                                
	if (board_is_espresso10()) {
		espresso_ts_pdata.gpio_en = tsp_gpios[GPIO_TOUCH_EN].gpio;
		espresso10_i2c3_boardinfo[0].irq =
				gpio_to_irq(tsp_gpios[GPIO_TOUCH_nINT].gpio);
	}

	espresso_ts_pdata.gpio_irq = tsp_gpios[GPIO_TOUCH_nINT].gpio;
	espresso_ts_pdata.gpio_scl = tsp_gpios[GPIO_TOUCH_SCL].gpio;
	espresso_ts_pdata.gpio_sda = tsp_gpios[GPIO_TOUCH_SDA].gpio;
}
Пример #14
0
static void __init kona_input_tsp_init(void)
{
	SYNA_platformdata.attn_gpio = SYNA_gpiodata.gpio_number =
			omap_muxtbl_get_gpio_by_name(SYNA_gpiodata.gpio_name);

	i2c_register_board_info(3, synaptics_i2c_devices,
				ARRAY_SIZE(synaptics_i2c_devices));
}
Пример #15
0
void __init omap4_superior_audio_init(void)
{
	unsigned int gpio_ear_send_end;

	platform_device_register(&vbatt_device);

	wm1811_pdata.ldo[0].enable =
		omap_muxtbl_get_gpio_by_name("CODEC_LDO_EN");

	gpio_ear_send_end =
		omap_muxtbl_get_gpio_by_name("EAR_SEND_END");
	gpio_request(gpio_ear_send_end, "EAR_SEND_END");
	superior_audio_i2c1_board_info[0].irq = gpio_to_irq(gpio_ear_send_end);

	i2c_register_board_info(1, superior_audio_i2c1_board_info,
				ARRAY_SIZE(superior_audio_i2c1_board_info));
}
Пример #16
0
static void __init espresso_audio_init(void)
{
#ifdef CONFIG_TWL6040_CODEC
	espresso_codec.audpwron_gpio =
		omap_muxtbl_get_gpio_by_name("AUD_PWRON");
#endif

#ifdef CONFIG_SND_SOC_WM8994
	platform_device_register(&vbatt_device);

	wm1811_pdata.mclk_pin =
		omap_muxtbl_get_gpio_by_name("26M_EN");
	gpio_request(wm1811_pdata.mclk_pin, "26M_EN");
	gpio_direction_output(wm1811_pdata.mclk_pin, 1);

	wm1811_pdata.ldo[0].enable =
		omap_muxtbl_get_gpio_by_name("CODEC_LDO_EN");
#endif
}
static void __init sprd_modem_cfg_gpio(void)
{
	int i;

	for (i = 0; i < ARRAY_SIZE(modem_gpios); i++)
		modem_gpios[i].gpio =
			omap_muxtbl_get_gpio_by_name(modem_gpios[i].label);
	gpio_request_array(modem_gpios, ARRAY_SIZE(modem_gpios));

	mdmctl_data.gpio_phone_on = modem_gpios[GPIO_PHONE_ON].gpio;
	mdmctl_data.gpio_phone_active = modem_gpios[GPIO_PHONE_ACTIVE].gpio;
	mdmctl_data.gpio_pda_active = modem_gpios[GPIO_PDA_ACTIVE].gpio;
	mdmctl_data.gpio_cp_dump_int = modem_gpios[GPIO_CP_DUMP_INT].gpio;
	mdmctl_data.gpio_ap_cp_int2 = modem_gpios[GPIO_AP_CP_INT2].gpio;

	uart_sel = omap_muxtbl_get_gpio_by_name("UART_SEL");

	pr_debug("[MODEM_IF] %s done\n", __func__);
}
static void charger_gpio_init(void)
{
	int i;

	for (i = 0; i < ARRAY_SIZE(charger_gpios); i++) {
		charger_gpios[i].gpio =
			omap_muxtbl_get_gpio_by_name(charger_gpios[i].label);
	}

	gpio_request_array(charger_gpios, ARRAY_SIZE(charger_gpios));
}
static void __init espresso10_ts_panel_setup(void)
{
	int i, panel_id = 0;

	for (i = 0; i < ARRAY_SIZE(ts_panel_gpios); i++)
		ts_panel_gpios[i].gpio =
			omap_muxtbl_get_gpio_by_name(ts_panel_gpios[i].label);
	gpio_request_array(ts_panel_gpios, ARRAY_SIZE(ts_panel_gpios));

	for (i = 0; i < ARRAY_SIZE(ts_panel_gpios); i++)
		panel_id |= gpio_get_value(ts_panel_gpios[i].gpio) << i;

	espresso10_ts_pdata.panel_name = panel_name[panel_id];
}
static void palau_power_gpio_init(void)
{
	int i;

	palau_max77693_pdata.irq_gpio =
			omap_muxtbl_get_gpio_by_name("JACK_nINT");
	palau_max77693_pdata.irq_gpio_label = "JACK_nINT";
	palau_pmic_i2c_boardinfo[0].platform_data = &palau_max77693_pdata;

	for (i = 0; i < ARRAY_SIZE(battery_gpios); i++)
		battery_gpios[i].gpio =
			omap_muxtbl_get_gpio_by_name(battery_gpios[i].label);

	gpio_request_array(battery_gpios, ARRAY_SIZE(battery_gpios));

	sec_battery_pdata.bat_irq =
		OMAP_MAX77693_IRQ_BASE + MAX77693_CHG_IRQ_CHGIN_I;

	sec_battery_pdata.fg_irq =
		gpio_to_irq(battery_gpios[FUEL_ALERT].gpio);

	sec_battery_pdata.chg_irq =
		OMAP_MAX77693_IRQ_BASE + MAX77693_CHG_IRQ_CHG_I;
}
static void __init umts_modem_cfg_gpio(void)
{
	int i;
	for (i = 0; i < ARRAY_SIZE(modem_gpios); i++)
		modem_gpios[i].gpio =
			omap_muxtbl_get_gpio_by_name(modem_gpios[i].label);
	gpio_request_array(modem_gpios, ARRAY_SIZE(modem_gpios));

	umts_modem_data.gpio_cp_on = modem_gpios[GPIO_CP_ON].gpio;
	umts_modem_data.gpio_reset_req_n = modem_gpios[GPIO_RESET_REQ].gpio;
	umts_modem_data.gpio_cp_reset = modem_gpios[GPIO_CP_RST].gpio;
	umts_modem_data.gpio_pda_active = modem_gpios[GPIO_PDA_ACTIVE].gpio;
	umts_modem_data.gpio_phone_active = modem_gpios[GPIO_PHONE_ACTIVE].gpio;
	umts_modem_data.gpio_cp_dump_int = modem_gpios[GPIO_CP_DUMP_INT].gpio;

	pr_debug("umts_modem_cfg_gpio done\n");
}
static void __init spi_modem_cfg_gpio(void)
{
	int i;

	for (i = 0; i < ARRAY_SIZE(spi_gpios); i++)
		spi_gpios[i].gpio =
			omap_muxtbl_get_gpio_by_name(spi_gpios[i].label);
	gpio_request_array(spi_gpios, ARRAY_SIZE(spi_gpios));

	spi_modem_data.gpio_ipc_mrdy = spi_gpios[GPIO_AP_CP_MRDY].gpio;
	spi_modem_data.gpio_ipc_srdy = spi_gpios[GPIO_AP_CP_SRDY].gpio;
	spi_modem_data.gpio_ipc_sub_mrdy = spi_gpios[GPIO_AP_CP_SUB_MRDY].gpio;
	spi_modem_data.gpio_ipc_sub_srdy = spi_gpios[GPIO_AP_CP_SUB_SRDY].gpio;

	pr_info("[SPI] %s done\n", __func__);

}
static void __init palau_tsp_gpio_init(void)
{
	int i, n = ARRAY_SIZE(tsp_gpios);

	/* To do not request a TOUCH_EN gpio at above rev.1 boards */
	n = (system_rev < 1) ? n : n - 1;

	for (i = 0; i < n; i++)
		tsp_gpios[i].gpio =
			omap_muxtbl_get_gpio_by_name(tsp_gpios[i].label);

	if (gpio_request_array(tsp_gpios, n) < 0)
		pr_err("tsp: gpio_request failed.");

	palau_i2c3_boardinfo[0].irq =
				gpio_to_irq(tsp_gpios[GPIO_TOUCH_nINT].gpio);
}
Пример #24
0
static void __init kona_tsp_gpio_init(void)
{
	int i, n = ARRAY_SIZE(tsp_gpios);

	for (i = 0; i < n; i++)
		tsp_gpios[i].gpio =
			omap_muxtbl_get_gpio_by_name(tsp_gpios[i].label);

	if (gpio_request_array(tsp_gpios, n) < 0)
		pr_err("tsp: gpio_request failed.");

	kona_i2c3_boardinfo[0].irq =
				gpio_to_irq(tsp_gpios[GPIO_TOUCH_nINT].gpio);

	kona_ts_pdata.gpio_irq = tsp_gpios[GPIO_TOUCH_nINT].gpio;
	kona_ts_pdata.gpio_scl = tsp_gpios[GPIO_TOUCH_SCL].gpio;
	kona_ts_pdata.gpio_sda = tsp_gpios[GPIO_TOUCH_SDA].gpio;
}
static int __init espresso_hsmmc_init(struct omap2_hsmmc_info *controllers)
{
	struct omap2_hsmmc_info *c;

	/* Board specific GPIO pin for External LDO control */
	for (c = controllers; c->mmc; c++) {
		if ((c->mmc == 2) && (c->external_ldo == true))
			c->gpio_for_ldo =
				omap_muxtbl_get_gpio_by_name("eMMC_EN");
	}

	omap2_hsmmc_init(controllers);

	for (c = controllers; c->mmc; c++)
		espresso_hsmmc_set_late_init(c->dev);

	return 0;
}
Пример #26
0
static void __init gokey_tsp_gpio_init(void)
{
	int i;
	u32 r;

	for (i = 0; i < ARRAY_SIZE(tsp_gpios); i++)
		tsp_gpios[i].gpio =
			omap_muxtbl_get_gpio_by_name(tsp_gpios[i].label);
	gpio_request_array(tsp_gpios, ARRAY_SIZE(tsp_gpios));

	gokey_i2c3_boardinfo[0].irq =
		gpio_to_irq(tsp_gpios[GPIO_TOUCH_nINT].gpio);
	/* i2c3 line using external pullup */
	r = omap4_ctrl_pad_readl(OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_I2C_0);
	r |= (1 << OMAP4_I2C3_SDA_PULLUPRESX_SHIFT);
	r |= (1 << OMAP4_I2C3_SCL_PULLUPRESX_SHIFT);
	omap4_ctrl_pad_writel(r, OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_I2C_0);
	omap_mux_set_gpio(OMAP_PIN_INPUT | OMAP_PIN_OFF_WAKEUPENABLE
			| OMAP_MUX_MODE3, tsp_gpios[GPIO_TOUCH_nINT].gpio);
}
void __init omap4_espresso10_sensors_init(void)
{
	int i;
	for (i = 0; i < ARRAY_SIZE(sensors_gpios); i++)
		sensors_gpios[i].gpio =
			omap_muxtbl_get_gpio_by_name(sensors_gpios[i].label);

	gpio_request_array(sensors_gpios, ARRAY_SIZE(sensors_gpios));

	omap_mux_init_gpio(sensors_gpios[GPIO_MSENSE_IRQ].gpio,
		OMAP_PIN_OUTPUT);

	gpio_free(sensors_gpios[GPIO_MSENSE_IRQ].gpio);

	gpio_request(sensors_gpios[GPIO_MSENSE_IRQ].gpio, "MSENSE_IRQ");

	gpio_direction_output(sensors_gpios[GPIO_MSENSE_IRQ].gpio, 1);

	i2c_register_board_info(4, espresso10_sensors_i2c4_boardinfo,
				ARRAY_SIZE(espresso10_sensors_i2c4_boardinfo));

}
Пример #28
0
static void __init kona_wacom_gpio_init(void)
{
	int i, n = ARRAY_SIZE(wacom_gpios);

	for (i = 0; i < n; i++)
		wacom_gpios[i].gpio =
			omap_muxtbl_get_gpio_by_name(wacom_gpios[i].label);

	if (system_rev  < 5)
		n--;
	else if (system_rev  < 4)
		n -= 2;

	if (gpio_request_array(wacom_gpios, n) < 0)
		pr_err("wacom: gpio_request failed.");

	kona_i2c10_boardinfo[0].irq =
				gpio_to_irq(wacom_gpios[GPIO_PEN_IRQ].gpio);

	wacom_pdata.gpio_pendct = wacom_gpios[GPIO_PEN_PDCT].gpio;
	wacom_pdata.gpio_pen_insert = wacom_gpios[GPIO_PEN_DETECT].gpio;
	wacom_pdata.gpio_pen_fwe1 = wacom_gpios[GPIO_PEN_FWE1].gpio;
}
Пример #29
0
int __init omap4_espresso_irled_init(void)
{
	int ret = 0;
	int i;
	unsigned int boardtype = omap4_espresso_get_board_type();

	if (system_rev > 6 && boardtype != SEC_MACHINE_ESPRESSO_USA_BBY)
		return 0;

	for (i = 0; i < ARRAY_SIZE(irled_gpios); i++)
		irled_gpios[i].gpio =
		    omap_muxtbl_get_gpio_by_name(irled_gpios[i].label);
	gpio_request_array(irled_gpios, ARRAY_SIZE(irled_gpios));

	ret = irled_init();
	if (ret < 0) {
		pr_err("irled: irled_init failed\n");
		for (i = 0; i < ARRAY_SIZE(irled_gpios); i++)
			gpio_free(irled_gpios[i].gpio);
	}

	return ret;
}
Пример #30
0
void __init omap4_t1_pmic_init(void)
{
	unsigned int gpio_sys_drm_msec =
		omap_muxtbl_get_gpio_by_name("SYS_DRM_MSEC");

	/*
	 * This will allow unused regulator to be shutdown. This flag
	 * should be set in the board file. Before regulators are registered.
	 */
	regulator_has_full_constraints();

	t1_audio_init();

	platform_add_devices(t1_pmic_devices, ARRAY_SIZE(t1_pmic_devices));

	i2c_register_board_info(1, t1_pmic_i2c1_board_info,
				ARRAY_SIZE(t1_pmic_i2c1_board_info));

	/*
	 * Drive MSECURE high for TWL6030 write access.
	 */
	gpio_request(gpio_sys_drm_msec, "SYS_DRM_MSEC");
	gpio_direction_output(gpio_sys_drm_msec, 1);
}