void TchalPowerOnDevice(void) { #ifdef INCLUDE_LGE_SRC_EAR_ANT_SEL /* Internel antenna:ON, Ear antenna: OFF, GPIO11: HIGH (Default: Use Internel Antenna )*/ gpio_set_value_cansleep(ONESEG_EAR_ANT_SEL_P, 1); /* PMIC Extended GPIO */ #endif #ifndef _MODEL_F9J_ gpio_direction_output(ISDB_EN, false); /* output low */ #endif gpio_direction_output(ISDB_RESET_N, false); /* output low */ #ifdef _MODEL_F9J_ power_set_for_pm8921_s4(1); power_set_for_pm8921_l10(1); power_set_for_pm8921_l29(1); #else gpio_set_value(ISDB_EN, 1); /* high ISDB_EN */ #endif TcpalmSleep(10); TchalResetDevice(); TchalIrqSetup(); TcpalPrintStatus((I08S *)"[%s:%d]\n", __func__, __LINE__); }
void TchalPowerOnDevice(void) { gpio_direction_output(ISDB_EN, false); /* output low */ gpio_direction_output(ISDB_RESET_N, false); /* output low */ gpio_set_value(ISDB_EN, 1); /* high ISDB_EN */ TcpalmSleep(10); TchalResetDevice(); TchalIrqSetup(); TcpalPrintStatus((I08S *)"[%s:%d]\n", __func__, __LINE__); }
void TchalPowerDownDevice(void) { TcbdDebug(DEBUG_TCHAL, "\n"); gpio_set_value(DMB_EN, 0); gpio_set_value(DMB_RESET_N, 0); gpio_direction_output(DMB_INT_N, false); gpio_set_value(DMB_INT_N, 0); TchalIrqSetup(); printk("######### TchalPowerDownDevice\n"); }
void TchalPowerOnDevice(void) { TcbdDebug(DEBUG_TCHAL, "TchalPowerOnDevice\n"); gpio_direction_output(DMB_EN, false); gpio_direction_output(DMB_INT_N, false); gpio_set_value(DMB_INT_N, 0); gpio_set_value(DMB_EN, 0); msleep(1); gpio_set_value(DMB_EN, 1); msleep(1); TchalResetDevice(); TchalIrqSetup(); printk("######### TchalPowerOnDevice\n"); }
I32S TcpalRegisterIrqHandler(TcbdDevice_t *_device) { #else I32S TcpalRegisterIrqHandler(void) { extern TcbdDevice_t *GetTcbdDevice(void); TcbdDevice_t *_device = GetTcbdDevice(); #endif struct spi_device *spi = TCC_GET_SPI_DRIVER(); TcbdIrqData.isIrqEnable = 0; #if defined(__WORKQUEUE__) TcbdIrqData.workQueue = create_singlethread_workqueue("TcbdStreamParsingWork"); TcbdIrqData.device = _device; TcbdIrqData.tcbd_irq = spi->irq; TcpalCreateSemaphore(&TcbdIrqData.lock, "IRQ", 1); INIT_WORK(&TcbdIrqData.work, TcbdStreamParsingWork); #endif //__WORKQUEUE__ TcbdInitParser(TcbdStreamCallback); TchalIrqSetup(); TcbdDebug(DEBUG_ERROR,"irq:%d\n", TcbdIrqData.tcbd_irq); return request_irq(TcbdIrqData.tcbd_irq, TcbdIrqHandler, IRQF_DISABLED | IRQF_TRIGGER_FALLING, "tc317x_stream", &TcbdIrqData); } I32S TcpalUnRegisterIrqHandler(void) { disable_irq(TcbdIrqData.tcbd_irq); flush_workqueue(TcbdIrqData.workQueue); destroy_workqueue(TcbdIrqData.workQueue); TcpalDeleteSemaphore(&TcbdIrqData.lock); return 0; }