Example #1
0
void LPC17xx_40xx_Timer3_Require(const T_LPC17xx_40xx_Timer_Settings *aSettings)
{
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsCAP0[] = {
            {GPIO_P1_10, IOCON_D_DEFAULT(3)}, // T3_CAP0
            {GPIO_P2_22, IOCON_D_DEFAULT(3)}, // T3_CAP0
            {GPIO_P0_23, IOCON_W_DEFAULT(3)}, // T3_CAP0
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsCAP1[] = {
            {GPIO_P1_0,  IOCON_D_DEFAULT(3)}, // T3_CAP1
            {GPIO_P2_23, IOCON_D_DEFAULT(3)}, // T3_CAP1
            {GPIO_P0_24, IOCON_W_DEFAULT(3)}, // T3_CAP1
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsMAT0[] = {
            {GPIO_P0_10, IOCON_D_DEFAULT(3)}, // T3_MAT0
            {GPIO_P1_9,  IOCON_D_DEFAULT(3)}, // T3_MAT0
            {GPIO_P2_26, IOCON_D_DEFAULT(3)}, // T3_MAT0
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsMAT1[] = {
            {GPIO_P0_11, IOCON_D_DEFAULT(3)}, // T3_MAT1
            {GPIO_P1_8,  IOCON_D_DEFAULT(3)}, // T3_MAT1
            {GPIO_P2_27, IOCON_D_DEFAULT(3)}, // T3_MAT1
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsMAT2[] = {
            {GPIO_P1_4,  IOCON_D_DEFAULT(3)}, // T3_MAT2
            {GPIO_P2_30, IOCON_D_DEFAULT(3)}, // T3_MAT2
            {GPIO_P5_2,  IOCON_I_DEFAULT(3)}, // T3_MAT2
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsMAT3[] = {
            {GPIO_P1_1,  IOCON_D_DEFAULT(3)}, // T3_MAT3
            {GPIO_P2_31, IOCON_D_DEFAULT(3)}, // T3_MAT3
            {GPIO_P5_4,  IOCON_D_DEFAULT(3)}, // T3_MAT3
    };
    HAL_DEVICE_REQUIRE_ONCE();
    // Register Timer3
    HALInterfaceRegister("Timer3", (T_halInterface *)&LPC17xx_40xx_Timer3_Interface,
            0, 0);
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iCAP[0], pinsCAP0,
            ARRAY_COUNT(pinsCAP0));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iCAP[1], pinsCAP1,
            ARRAY_COUNT(pinsCAP1));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iMAT[0], pinsMAT0,
            ARRAY_COUNT(pinsMAT0));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iMAT[1], pinsMAT1,
            ARRAY_COUNT(pinsMAT1));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iMAT[2], pinsMAT2,
            ARRAY_COUNT(pinsMAT2));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iMAT[2], pinsMAT3,
            ARRAY_COUNT(pinsMAT3));
}
//void LPC17xx_40xx_USBHost_VBUS_Require(T_uezGPIOPortPin aPin)
//{
//    static const T_LPC17xx_40xx_IOCON_ConfigList pins[] = {
//            {GPIO_P1_30, IOCON_A_DEFAULT(2)}, // USB_VBUS
//    };
//    HAL_DEVICE_REQUIRE_ONCE();
//    LPC17xx_40xx_IOCON_ConfigPinOrNone(aPin, pins, ARRAY_COUNT(pins));
//
//}
void LPC17xx_40xx_USBHost_PortA_Require(const T_LPC17xx_40xx_USBHost_Settings *aSettings)
{
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsDP1[] = {
            {GPIO_P0_29, IOCON_U_DEFAULT(1)}, // USB_D+1
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsDM1[] = {
            {GPIO_P0_30, IOCON_U_DEFAULT(1)}, // USB_D-1
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsCONNECT1[] = {
            {GPIO_P2_9,  IOCON_D_DEFAULT(1)}, // USB_CONNECT1
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsUP_LED1[] = {
            {GPIO_P1_18, IOCON_D_DEFAULT(1)}, // USB_UP_LED1
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsINT1[] = {
            {GPIO_P1_27, IOCON_D_DEFAULT(1)}, // USB_INT1n
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsSCL1[] = {
            {GPIO_P1_28, IOCON_D_DEFAULT(1)}, // USB_SCL1
            {GPIO_P0_28, IOCON_I_DEFAULT(2)}, // USB_SCL1
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsSDA1[] = {
            {GPIO_P1_29, IOCON_D_DEFAULT(1)}, // USB_SDA1
            {GPIO_P0_27, IOCON_I_DEFAULT(2)}, // USB_SDA1
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsTX_E1[] = {
            {GPIO_P1_19, IOCON_D_DEFAULT(1)}, // USB_TX_E1
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsTX_DP1[] = {
            {GPIO_P1_20, IOCON_D_DEFAULT(1)}, // USB_TX_DP1
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsTX_DM1[] = {
            {GPIO_P1_21, IOCON_D_DEFAULT(1)}, // USB_TX_DM1
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsRCV1[] = {
            {GPIO_P1_22, IOCON_D_DEFAULT(1)}, // USB_RCV1
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsRX_DP1[] = {
            {GPIO_P1_23, IOCON_D_DEFAULT(1)}, // USB_RX_DP1
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsRX_DM1[] = {
            {GPIO_P1_24, IOCON_D_DEFAULT(1)}, // USB_RX_DM1
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsRX_LS1[] = {
            {GPIO_P1_25, IOCON_D_DEFAULT(1)}, // USB_LS1n
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsSSPND1[] = {
            {GPIO_P1_26, IOCON_D_DEFAULT(1)}, // USB_SSPND1n
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsPPWR1[] = {
            {GPIO_P1_19, IOCON_D_DEFAULT(2)}, // USB_PPWR1n
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsPWRD1[] = {
            {GPIO_P1_22, IOCON_D_DEFAULT(2)}, // USB_PWRD1
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsOVRCR1[] = {
            {GPIO_P1_22, IOCON_D_DEFAULT(2)}, // USB_OVRCR1n
            {GPIO_P1_27, IOCON_D_DEFAULT(2)}, // USB_OVRCR1n
    };
    static const T_LPC17xx_40xx_IOCON_ConfigList pinsHSTEN1[] = {
            {GPIO_P1_25, IOCON_D_DEFAULT(2)}, // USB_HSTEN1n
    };

    HAL_DEVICE_REQUIRE_ONCE();
    // Register USB Host driver ports for LPC24xx
    HALInterfaceRegister("USBHost:PortA",
            (T_halInterface *)&G_LPC17xx_40xx_USBHost_Interface_PortA, 0, 0);
//    LPC17xx_40xx_USBHost_VBUS_Require(aSettings->iVBUS);
    LPC17xx_40xx_IOCON_ConfigPin(aSettings->iDP, pinsDP1, ARRAY_COUNT(pinsDP1));
    LPC17xx_40xx_IOCON_ConfigPin(aSettings->iDM, pinsDM1, ARRAY_COUNT(pinsDM1));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iCONNECT, pinsCONNECT1,
            ARRAY_COUNT(pinsCONNECT1));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iUP_LED, pinsUP_LED1,
            ARRAY_COUNT(pinsUP_LED1));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iINTn, pinsINT1,
            ARRAY_COUNT(pinsINT1));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iSCL, pinsSCL1,
            ARRAY_COUNT(pinsSCL1));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iSDA, pinsSDA1,
            ARRAY_COUNT(pinsSDA1));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iTX_E, pinsTX_E1,
            ARRAY_COUNT(pinsTX_E1));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iTX_DP, pinsTX_DP1,
            ARRAY_COUNT(pinsTX_DP1));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iTX_DM, pinsTX_DM1,
            ARRAY_COUNT(pinsTX_DM1));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iRCV, pinsRCV1,
            ARRAY_COUNT(pinsRCV1));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iRX_DP, pinsRX_DP1,
            ARRAY_COUNT(pinsRX_DP1));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iRX_DM, pinsRX_DM1,
            ARRAY_COUNT(pinsRX_DM1));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iLSn, pinsRX_LS1,
            ARRAY_COUNT(pinsRX_LS1));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iSSPNDn, pinsSSPND1,
            ARRAY_COUNT(pinsSSPND1));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iPPWRn, pinsPPWR1,
            ARRAY_COUNT(pinsPPWR1));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iPWRDn, pinsPWRD1,
            ARRAY_COUNT(pinsPWRD1));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iOVRCRn, pinsOVRCR1,
            ARRAY_COUNT(pinsOVRCR1));
    LPC17xx_40xx_IOCON_ConfigPinOrNone(aSettings->iHSTENn, pinsHSTEN1,
            ARRAY_COUNT(pinsHSTEN1));
}