int shinano_wifi_set_power(int on)
{
	int gpio = qpnp_pin_map("pm8941-gpio", WIFI_POWER_PMIC_GPIO);
	if (!wifi_batfet) {
		wifi_batfet = regulator_get(NULL, "batfet");
		if (IS_ERR_OR_NULL(wifi_batfet)) {
			printk(KERN_ERR "unable to get batfet reg. rc=%d\n",
				PTR_RET(wifi_batfet));
			wifi_batfet = NULL;
		}
	}
	if (on) {
		if (!batfet_ena && wifi_batfet) {
			regulator_enable(wifi_batfet);
			batfet_ena = 1;
		}
	}
	gpio_set_value(gpio, on);
	if (!on) {
		if (batfet_ena && wifi_batfet) {
			regulator_disable(wifi_batfet);
			batfet_ena = 0;
		}
	}
	return 0;
}
Exemplo n.º 2
0
/*
 * snfc_init
 */
static __init int snfc_init(void)
{
	int ret;

	snfc_class = class_create(THIS_MODULE, "snfc");
	if (IS_ERR(snfc_class)) {
		return PTR_ERR(snfc_class);
	}

	g_snfc_hsel_gpio_no = qpnp_pin_map("pm8941-gpio", 7);
	g_snfc_intu_gpio_no = qpnp_pin_map("pm8941-gpio", 6);
	g_snfc_vfel_gpio_no = qpnp_pin_map("pm8941-mpp", 8);

	ret = rfs_init();
	if (ret < 0) {
		return ret;
	}

	ret = cen_init();
	if (ret < 0) {
		return ret;
	}

	ret = intu_poll_init();
	if (ret < 0) {
		return ret;
	}

	ret = succ_init();
	if (ret < 0) {
		return ret;
	}

	ret = available_init();
	if (ret < 0) {
		return ret;
	}

	return 0;
}