⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pmic_tcled.cpp

📁 i.mx27 soc for wince 6.0
💻 CPP
📖 第 1 页 / 共 5 页
字号:
//
// Parameters:
//      bank
//           [in] bank.
//      channel
//           [in] the channel to stop ramp
//
// Returns:
//      PMIC_STATUS.
//
//-----------------------------------------------------------------------------
PMIC_STATUS PmicTCLEDFunLightRampOff(FUNLIGHT_BANK bank, FUNLIGHT_CHANNEL channel)
{
    PMIC_PARAM_LLA_WRITE_REG param;
    
    DEBUGMSG(ZONE_FUNC, (TEXT("+%s()\r\n"), __WFUNCTION__));

    param.addr = MC13783_LED_CTL1_ADDR;

    switch(bank)
    {
        case TCLED_FUN_BANK1:
            switch(channel)
            {
                case TCLED_FUN_CHANNEL1:
                    param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDR1RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_DISABLE)|
                                 CSP_BITFVAL(MC13783_LED_CTL1_LEDR1RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_DISABLE);
                    param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDR1RAMPUP)|
                                 CSP_BITFMASK(MC13783_LED_CTL1_LEDR1RAMPDOWN);
                    break;
        
                case TCLED_FUN_CHANNEL2:
                    param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDG1RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_DISABLE)|
                                 CSP_BITFVAL(MC13783_LED_CTL1_LEDG1RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_DISABLE);
                    param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDG1RAMPUP)|
                                 CSP_BITFMASK(MC13783_LED_CTL1_LEDG1RAMPDOWN);
                    break;
            
                case TCLED_FUN_CHANNEL3:
                    param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDB1RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_DISABLE)|
                                 CSP_BITFVAL(MC13783_LED_CTL1_LEDB1RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_DISABLE);
                    param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDB1RAMPUP)|
                                 CSP_BITFMASK(MC13783_LED_CTL1_LEDB1RAMPDOWN);
                    break;
            
            }
            break;

        case TCLED_FUN_BANK2:
            switch(channel)
            {
                case TCLED_FUN_CHANNEL1:
                    param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDR2RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_DISABLE)|
                                 CSP_BITFVAL(MC13783_LED_CTL1_LEDR2RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_DISABLE);
                    param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDR2RAMPUP)|
                                 CSP_BITFMASK(MC13783_LED_CTL1_LEDR2RAMPDOWN);
                    break;
        
                case TCLED_FUN_CHANNEL2:
                    param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDG2RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_DISABLE)|
                                 CSP_BITFVAL(MC13783_LED_CTL1_LEDG2RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_DISABLE);
                    param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDG2RAMPUP)|
                                 CSP_BITFMASK(MC13783_LED_CTL1_LEDG2RAMPDOWN);
                    break;
            
                case TCLED_FUN_CHANNEL3:
                    param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDB2RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_DISABLE)|
                                 CSP_BITFVAL(MC13783_LED_CTL1_LEDB2RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_DISABLE);
                    param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDB2RAMPUP)|
                                 CSP_BITFMASK(MC13783_LED_CTL1_LEDB2RAMPDOWN);
                    break;
            
            }
            break;

        case TCLED_FUN_BANK3:
            switch(channel)
            {
                case TCLED_FUN_CHANNEL1:
                    param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDR3RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_DISABLE)|
                                 CSP_BITFVAL(MC13783_LED_CTL1_LEDR3RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_DISABLE);
                    param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDR3RAMPUP)|
                                 CSP_BITFMASK(MC13783_LED_CTL1_LEDR3RAMPDOWN);
                    break;
        
                case TCLED_FUN_CHANNEL2:
                    param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDG3RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_DISABLE)|
                                 CSP_BITFVAL(MC13783_LED_CTL1_LEDG3RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_DISABLE);
                    param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDG3RAMPUP)|
                                 CSP_BITFMASK(MC13783_LED_CTL1_LEDG3RAMPDOWN);
                    break;
            
                case TCLED_FUN_CHANNEL3:
                    param.data = CSP_BITFVAL(MC13783_LED_CTL1_LEDB3RAMPUP, MC13783_LED_CTL1_LEDRAMPUP_DISABLE)|
                                 CSP_BITFVAL(MC13783_LED_CTL1_LEDB3RAMPDOWN, MC13783_LED_CTL1_LEDRAMPDOWN_DISABLE);
                    param.mask = CSP_BITFMASK(MC13783_LED_CTL1_LEDB3RAMPUP)|
                                 CSP_BITFMASK(MC13783_LED_CTL1_LEDB3RAMPDOWN);
                    break;
            
            }
            break;

    }
    
    if(! DeviceIoControl(hPMI, PMIC_IOCTL_LLA_WRITE_REG, &param,
              sizeof(param), NULL, 0, NULL, NULL))
        return PMIC_ERROR;
    
    DEBUGMSG(ZONE_FUNC, (TEXT("-%s()\r\n"), __WFUNCTION__));

    return PMIC_SUCCESS;
   
}

//-----------------------------------------------------------------------------
//
// Function: PmicTCLEDFunLightTriodeOn
//
// This function enable triode mode of the channel.
//
// Parameters:
//      bank
//           [in] bank.
//      channel
//           [in] the channel to enable triode mode.
//
// Returns:
//      PMIC_STATUS.
//
//-----------------------------------------------------------------------------
PMIC_STATUS PmicTCLEDFunLightTriodeOn(FUNLIGHT_BANK bank, FUNLIGHT_CHANNEL channel)
{
    PMIC_PARAM_LLA_WRITE_REG param;

    DEBUGMSG(ZONE_FUNC, (TEXT("+%s()\r\n"), __WFUNCTION__));

    switch(bank)
    {
        case TCLED_FUN_BANK1:
            param.data = CSP_BITFVAL(MC13783_LED_CTL3_TC1TRIODE, MC13783_LED_CTL3_TC1TRIODE_ENABLE);
            param.mask = CSP_BITFMASK(MC13783_LED_CTL3_TC1TRIODE);
            param.addr = MC13783_LED_CTL3_ADDR;
            break;

        case TCLED_FUN_BANK2:
            param.data = CSP_BITFVAL(MC13783_LED_CTL4_TC2TRIODE, MC13783_LED_CTL4_TC2TRIODE_ENABLE);
            param.mask = CSP_BITFMASK(MC13783_LED_CTL4_TC2TRIODE);
            param.addr = MC13783_LED_CTL4_ADDR;
            break;

        case TCLED_FUN_BANK3:
            param.data = CSP_BITFVAL(MC13783_LED_CTL5_TC3TRIODE, MC13783_LED_CTL5_TC3TRIODE_ENABLE);
            param.mask = CSP_BITFMASK(MC13783_LED_CTL5_TC3TRIODE);
            param.addr = MC13783_LED_CTL5_ADDR;
            break;

    }

    if(! DeviceIoControl(hPMI, PMIC_IOCTL_LLA_WRITE_REG, &param,
              sizeof(param), NULL, 0, NULL, NULL))
        return PMIC_ERROR;

    DEBUGMSG(ZONE_FUNC, (TEXT("-%s()\r\n"), __WFUNCTION__));

    return PMIC_SUCCESS;
}

//-----------------------------------------------------------------------------
//
// Function: PmicTCLEDFunLightTriodeOff
//
// This function disable triode mode of the channel.
//
// Parameters:
//      bank
//           [in] bank.
//      channel
//           [in] the channel to disable triode mode.
//
// Returns:
//      PMIC_STATUS.
//
//-----------------------------------------------------------------------------
PMIC_STATUS PmicTCLEDFunLightTriodeOff(FUNLIGHT_BANK bank, FUNLIGHT_CHANNEL channel)
{
    PMIC_PARAM_LLA_WRITE_REG param;

    DEBUGMSG(ZONE_FUNC, (TEXT("+%s()\r\n"), __WFUNCTION__));

    switch(bank)
    {
        case TCLED_FUN_BANK1:
            param.data = CSP_BITFVAL(MC13783_LED_CTL3_TC1TRIODE, MC13783_LED_CTL3_TC1TRIODE_DISABLE);
            param.mask = CSP_BITFMASK(MC13783_LED_CTL3_TC1TRIODE);
            param.addr = MC13783_LED_CTL3_ADDR;
            break;

        case TCLED_FUN_BANK2:
            param.data = CSP_BITFVAL(MC13783_LED_CTL4_TC2TRIODE, MC13783_LED_CTL4_TC2TRIODE_DISABLE);
            param.mask = CSP_BITFMASK(MC13783_LED_CTL4_TC2TRIODE);
            param.addr = MC13783_LED_CTL4_ADDR;
            break;

        case TCLED_FUN_BANK3:
            param.data = CSP_BITFVAL(MC13783_LED_CTL5_TC3TRIODE, MC13783_LED_CTL5_TC3TRIODE_DISABLE);
            param.mask = CSP_BITFMASK(MC13783_LED_CTL5_TC3TRIODE);
            param.addr = MC13783_LED_CTL5_ADDR;
            break;

    }

    if(! DeviceIoControl(hPMI, PMIC_IOCTL_LLA_WRITE_REG, &param,
              sizeof(param), NULL, 0, NULL, NULL))
        return PMIC_ERROR;

    DEBUGMSG(ZONE_FUNC, (TEXT("-%s()\r\n"), __WFUNCTION__));

    return PMIC_SUCCESS;
}

//-----------------------------------------------------------------------------
//
// Function: PmicTCLEDEnableEdgeSlow
//
// This function enable Analog Edge Slowing.
//
// Parameters:
//      None.
//
// Returns:
//      PMIC_STATUS.
//
//-----------------------------------------------------------------------------
PMIC_STATUS PmicTCLEDEnableEdgeSlow(void)
{
    PMIC_PARAM_LLA_WRITE_REG param;

    DEBUGMSG(ZONE_FUNC, (TEXT("+%s()\r\n"), __WFUNCTION__));

    param.data = CSP_BITFVAL(MC13783_LED_CTL1_SLEWLIMTC, MC13783_LED_CTL1_SLEWLIMTC_ENABLE);
    param.mask = CSP_BITFMASK(MC13783_LED_CTL1_SLEWLIMTC);
    param.addr = MC13783_LED_CTL1_ADDR;

    if(! DeviceIoControl(hPMI, PMIC_IOCTL_LLA_WRITE_REG, &param,
              sizeof(param), NULL, 0, NULL, NULL))
        return PMIC_ERROR;

    DEBUGMSG(ZONE_FUNC, (TEXT("-%s()\r\n"), __WFUNCTION__));
    return PMIC_SUCCESS;
}

//-----------------------------------------------------------------------------
//
// Function: PmicTCLEDDisableEdgeSlow
//
// This function disable Analog Edge Slowing.
//
// Parameters:
//      None.
//
// Returns:
//      PMIC_STATUS.
//
//-----------------------------------------------------------------------------
PMIC_STATUS PmicTCLEDDisableEdgeSlow(void)
{
    PMIC_PARAM_LLA_WRITE_REG param;

    DEBUGMSG(ZONE_FUNC, (TEXT("+%s()\r\n"), __WFUNCTION__));

    param.data = CSP_BITFVAL(MC13783_LED_CTL1_SLEWLIMTC, MC13783_LED_CTL1_SLEWLIMTC_DISABLE);
    param.mask = CSP_BITFMASK(MC13783_LED_CTL1_SLEWLIMTC);
    param.addr = MC13783_LED_CTL1_ADDR;

    if(! DeviceIoControl(hPMI, PMIC_IOCTL_LLA_WRITE_REG, &param,
              sizeof(param), NULL, 0, NULL, NULL))
        return PMIC_ERROR;

    DEBUGMSG(ZONE_FUNC, (TEXT("-%s()\r\n"), __WFUNCTION__));
    return PMIC_SUCCESS;
}

//-----------------------------------------------------------------------------
//
// Function: PmicTCLEDEnableHalfCurrent
//
// This function enable Half Current Mode for Tri-color 1 Driver channel.
//
// Parameters:
//      None.
//
// Returns:
//      PMIC_STATUS.
//
//-----------------------------------------------------------------------------
PMIC_STATUS PmicTCLEDEnableHalfCurrent(void)
{
    PMIC_PARAM_LLA_WRITE_REG param;

    DEBUGMSG(ZONE_FUNC, (TEXT("+%s()\r\n"), __WFUNCTION__));

    param.data = CSP_BITFVAL(MC13783_LED_CTL1_TC1HALF, MC13783_LED_CTL1_T1HALF_ENABLE);
    param.mask = CSP_BITFMASK(MC13783_LED_CTL1_TC1HALF);
    param.addr = MC13783_LED_CTL1_ADDR;

    if(! DeviceIoControl(hPMI, PMIC_IOCTL_LLA_WRITE_REG, &param,
              sizeof(param), NULL, 0, NULL, NULL))
        return PMIC_ERROR;

    DEBUGMSG(ZONE_FUNC, (TEXT("-%s()\r\n"), __WFUNCTION__));
    return PMIC_SUCCESS;
}

//-----------------------------------------------------------------------------
//
// Function: PmicTCLEDDisableHalfCurrent
//
// This function disable Half Current Mode for Tri-color 1 Driver channel.
//
// Parameters:
//      None.
//
// Returns:
//      PMIC_STATUS.
//
//-----------------------------------------------------------------------------
PMIC_STATUS PmicTCLEDDisableHalfCurrent(void)
{
    PMIC_PARAM_LLA_WRITE_REG param;

    DEBUGMSG(ZONE_FUNC, (TEXT("+%s()\r\n"), __WFUNCTION__));

    param.data = CSP_BITFVAL(MC13783_LED_CTL1_TC1HALF, MC13783_LED_CTL1_T1HALF_DISABLE);
    param.mask = CSP_BITFMASK(MC13783_LED_CTL1_TC1HALF);
    param.addr = MC13783_LED_CTL1_ADDR;

    if(! DeviceIoControl(hPMI, PMIC_IOCTL_LLA_WRITE_REG, &param,
              sizeof(param), NULL, 0, NULL, NULL))
        return PMIC_ERROR;

    DEBUGMSG(ZONE_FUNC, (TEXT("-%s()\r\n"), __WFUNCTION__));
    return PMIC_SUCCESS;
}


PMIC_STATUS PmicTCLEDIndicatorSetCurrentLevel(IND_CHANNEL channel, TCLED_CUR_LEVEL level){return PMIC_SUCCESS;};
PMIC_STATUS PmicTCLEDIndicatorGetCurrentLevel(IND_CHANNEL channel, TCLED_CUR_LEVEL* level){return PMIC_SUCCESS;};
PMIC_STATUS PmicTCLEDIndicatorSetBlinkPattern(IND_CHANNEL channel, TCLED_IND_BLINK_MODE mode, BOOL skip){return PMIC_SUCCESS;};
PMIC_STATUS PmicTCLEDIndicatorGetBlinkPattern(IND_CHANNEL channel, TCLED_IND_BLINK_MODE* mode, BOOL* skip){return PMIC_SUCCESS;};
PMIC_STATUS PmicTCLEDFunLightStrobe(FUNLIGHT_CHANNEL channel, TCLED_FUN_STROBE_SPEED speed){return PMIC_NOT_SUPPORTED;};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -