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__);
}
Exemplo n.º 3
0
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");
}
Exemplo n.º 4
0
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;
}