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; }
/* * 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; }