static int hx8369_cs05_disable(struct pxa168fb_info *fbi) { printk("%s\n", __func__); /* * Sperated lcd off routine multi tasking issue * becasue of share of cpu0 after suspend. */ #if defined(CONFIG_QUICKLOGIC_BRIDGE) /*sleep in*/ Quicklogic_i2cTomipi_write(DTYPE_DCS_WRITE, QL_VX_LCD_VC,\ sizeof(display_off),display_off); msleep(HX8369B_DISP_OFF_DELAY); Quicklogic_i2cTomipi_write(DTYPE_DCS_WRITE, QL_VX_LCD_VC,\ sizeof(sleep_in),sleep_in); msleep(HX8369B_SLEEP_IN_DELAY); #if defined(CONFIG_SPA) || defined(CONFIG_SPA_LPM_MODE) if(!spa_lpm_charging_mode_get()) #else if (!lpcharge) #endif i2c1_pin_changed(1); #endif return 0; }
static irqreturn_t rtc_interrupt_handler(int irq, void *dev_id) { struct rtc_device *rdev = dev_id; pr_debug(" RTC ***** interrupt happen\n"); //rtc_update_irq(rdev, 1, RTC_AF | RTC_IRQF); rtc_aie_update_irq(rdev); CLEAR_RTC_INT(RTC_INT_ALL_MSK); #if defined(CONFIG_RTC_CHN_ALARM_BOOT) && defined(CONFIG_SPA) if(spa_lpm_charging_mode_get()) schedule_work(&reboot_work); #endif return IRQ_HANDLED; }
static int __init cyttsp4_i2c_init(void) { int rc; #if defined(CONFIG_SPA) || defined(CONFIG_SPA_LPM_MODE) if(spa_lpm_charging_mode_get()) #else if (lpcharge) #endif return 0; #if defined(CONFIG_MACH_WILCOX) || defined(CONFIG_MACH_CT01) || defined(CONFIG_MACH_BAFFIN) || defined(CONFIG_MACH_BAFFINQ) if (!panel_id) { printk(KERN_INFO "[TSP] cyttsp4_i2c_init : lcd is not connected!!\n"); return 0; } #endif rc = i2c_add_driver(&cyttsp4_i2c_driver); pr_info("%s: Cypress TTSP I2C Touchscreen Driver (Built %s) rc=%d\n", __func__, CY_DRIVER_DATE, rc); return rc; }
static int sprd_rtc_probe(struct platform_device *plat_dev) { int err = -ENODEV; struct resource *irq; rtc_data = kzalloc(sizeof(*rtc_data), GFP_KERNEL); if(IS_ERR(rtc_data)){ err = PTR_ERR(rtc_data); return err; }; /*ensure the rtc interrupt don't be send to Adie when there's no *rtc alarm int occur. */ sci_adi_raw_write(ANA_RTC_SPG_UPD, SPRD_RTC_LOCK); /* disable all interrupt */ sci_adi_clr(ANA_RTC_INT_EN, RTC_INT_ALL_MSK); /* enable rtc device */ rtc_data->clk = clk_get(&plat_dev->dev, "ext_32k"); if (IS_ERR(rtc_data->clk)) { err = PTR_ERR(rtc_data->clk); goto kfree_data; } err = clk_enable(rtc_data->clk); if (err < 0) goto put_clk; CLEAR_RTC_INT(RTC_INT_ALL_MSK); rtc_data->rtc = rtc_device_register("sprd_rtc", &plat_dev->dev, &sprd_rtc_ops, THIS_MODULE); if (IS_ERR(rtc_data->rtc)) { err = PTR_ERR(rtc_data->rtc); goto disable_clk; } irq = platform_get_resource(plat_dev, IORESOURCE_IRQ, 0); if(unlikely(!irq)) { dev_err(&plat_dev->dev, "no irq resource specified\n"); goto unregister_rtc; } rtc_data->irq_no = irq->start; platform_set_drvdata(plat_dev, rtc_data); err = request_irq(rtc_data->irq_no, rtc_interrupt_handler, 0, "sprd_rtc", rtc_data->rtc); if(err){ printk(KERN_ERR "RTC regist irq error\n"); goto unregister_rtc; } sprd_creat_caliberate_attr(rtc_data->rtc->dev); #if defined(CONFIG_RTC_CHN_ALARM_BOOT) && defined(CONFIG_SPA) if(spa_lpm_charging_mode_get()) { INIT_WORK(&reboot_work, sprd_rtc_reboot_work); sprd_rtc_open(&plat_dev->dev); } #endif sprd_rtc_hwrst_set(1); sprd_rtc_set_bit_spg_counter(SPG_CNT_8SECS_RESET, 1); return 0; unregister_rtc: rtc_device_unregister(rtc_data->rtc); disable_clk: clk_disable(rtc_data->clk); put_clk: clk_put(rtc_data->clk); kfree_data: kfree(rtc_data); return err; }