void ril_request_proxi(int state) { #ifdef CONFIG_PROX //should call proximity function RIL_INFO("state = %d\n", state); if (state) { prox_lds6202_enable(); } else { prox_lds6202_disable(); } #else RIL_INFO("proximity is not configured\n"); #endif }
static void sim_irq_work(void) { sim_state = gpio_get_value(GPIO_SIM_PIN); RIL_INFO("sim state = %d\n", sim_state); switch_set_state(&sim_sdev, sim_state); }
static void store_gpio(const char *buf, int gpio, char *name) { int state = 0; sscanf(buf, "%d", &state); gpio_set_value(gpio, state); RIL_INFO("Set %s state to %d\n", name, state); }
static void ril_shutdown(struct platform_device *pdev) { RIL_INFO("RIL Shutdown\n"); gpio_set_value(GPIO_3G_Reset_PIN, 0); mdelay(10); gpio_set_value(GPIO_3G_Power_PIN, 0); }
int init_sim_hot_plug(void) { int rc = 0; int sim_irq = gpio_to_irq(GPIO_SIM_PIN); sim_state = gpio_get_value(GPIO_SIM_PIN); RIL_INFO("GPIO = %d , irq = %d, state = %d\n", GPIO_SIM_PIN, sim_irq, sim_state); rc = request_irq(sim_irq, sim_interrupt_handler, IRQF_TRIGGER_FALLING|IRQF_TRIGGER_RISING, NAME_SIM, NULL); if (rc < 0) { RIL_ERR("Could not register for %s interrupt, irq = %d, rc = %d\n", NAME_SIM, sim_irq, rc); rc = -EIO; goto failed; } /* init work queue */ INIT_DELAYED_WORK(&workq, sim_irq_work); /* register switch class*/ sim_sdev.name = NAME_SIM; sim_sdev.print_name = print_sim_name; sim_sdev.print_state = print_sim_state; rc = switch_dev_register(&sim_sdev); /* * Because switch_dev_register will initiate sdev.state to 0, * sdev.state will be initiated after switch_dev_register. */ sim_sdev.state = sim_state; if (rc < 0) { RIL_ERR("Could not register switch device, rc = %d\n", rc); goto failed; } RIL_INFO("request irq and switch class successfully\n"); return 0; failed: gpio_free(GPIO_SIM_PIN); return rc; }
void proxi_request_ril(int state) { //be called by proximity RIL_INFO("state = %d\n", state); if (state != 0) state = 1; proxi_in = state; switch_set_state(&proxi_sdev, proxi_in); }
//**** sysfs callback functions static int store_gpio(size_t count, const char *buf, int gpio, char *gpio_name) { int enable; if (sscanf(buf, "%u", &enable) != 1) return -EINVAL; if ((enable != 1) && (enable != 0)) return -EINVAL; gpio_set_value(gpio, enable); RIL_INFO("Set %s to %d\n", gpio_name, enable); return count; }
int init_proximity(void) { int rc = 0; /* register switch class*/ proxi_sdev.name = "proximity"; proxi_sdev.print_name = print_proxi_name; proxi_sdev.print_state = print_proxi_state; rc = switch_dev_register(&proxi_sdev); if (rc < 0) { RIL_ERR("Could not register switch device, rc = %d\n", rc); goto failed; } RIL_INFO("register switch class successfully\n"); return 0; failed: return rc; }
static int ril_probe(struct platform_device *pdev) { RIL_INFO("RIL Probe\n"); return 0; }