示例#1
0
/**
  \fn          int32_t LED_Uninitialize (void)
  \brief       De-initialize LEDs
  \returns
   - \b  0: function succeeded
   - \b -1: function failed
*/
int32_t LED_Uninitialize (void) {
  uint32_t n;

  /* Unconfigure pins: turn off Pull-up/down resistors */
  for (n = 0; n < LED_COUNT; n++) {
    SCU_PinConfigure (LED_PIN[n].port,  LED_PIN[n].num,  0);
  }
  return 0;
}
/**
  \fn          void USB0_PinsConfigure (void)
  \brief       Configure USB pins
*/
void USB0_PinsConfigure (void) {

  // Common (Device and Host) Pins
#if (RTE_USB0_IND0_PIN_EN)
  SCU_PinConfigure(RTE_USB0_IND0_PORT, RTE_USB0_IND0_BIT, RTE_USB0_IND0_FUNC);
#endif
#if (RTE_USB0_IND1_PIN_EN)
  SCU_PinConfigure(RTE_USB0_IND1_PORT, RTE_USB0_IND1_BIT, RTE_USB0_IND1_FUNC);
#endif

  // Host Pins
  if (USB0_role == ARM_USB_ROLE_HOST) {
#if (RTE_USB0_PPWR_PIN_EN)
    SCU_PinConfigure(RTE_USB0_PPWR_PORT,      RTE_USB0_PPWR_BIT,      RTE_USB0_PPWR_FUNC);
#endif
#if (RTE_USB0_PWR_FAULT_PIN_EN)
    SCU_PinConfigure(RTE_USB0_PWR_FAULT_PORT, RTE_USB0_PWR_FAULT_BIT, RTE_USB0_PWR_FAULT_FUNC);
#endif
  }
}
示例#3
0
/**
  \fn          int32_t LED_Initialize (void)
  \brief       Initialize LEDs
  \returns
   - \b  0: function succeeded
   - \b -1: function failed
*/
int32_t LED_Initialize (void) {
  uint32_t n;

  /* Enable GPIO clock */
  GPIO_PortClock     (1);

  /* Configure pins: Output Mode with Pull-down resistors */
  for (n = 0; n < LED_COUNT; n++) {
    SCU_PinConfigure (LED_PIN[n].port,  LED_PIN[n].num,  LED_PIN[n].config_val);
    GPIO_SetDir      (LED_GPIO[n].port, LED_GPIO[n].num, GPIO_DIR_OUTPUT);
    GPIO_PinWrite    (LED_GPIO[n].port, LED_GPIO[n].num, 0);
  }
  return 0;
}
示例#4
0
文件: MCI_LPC18xx.c 项目: L3YZ/f427
/**
  \fn            int32_t Uninitialize (void)
  \brief         De-initialize Memory Card Interface.
  \return        \ref execution_status
*/
static int32_t Uninitialize (void) {

  /* Change SDIO base clock from PLL1 to IRC */
  LPC_CGU->BASE_SDIO_CLK  = (0x01 << 11) | (0x01 << 24);

  /* Unconfigure SD_CLK and SD_CMD and SD_DAT0 */
  if (RTE_SD_CLK_PORT == 0x10) {
    SCU_CLK_PinConfigure (RTE_SD_CLK_PIN, 0);
  }
  else {
    SCU_PinConfigure(RTE_SD_CLK_PORT,  RTE_SD_CLK_PIN,  0);
  }
  SCU_PinConfigure(RTE_SD_CMD_PORT,  RTE_SD_CMD_PIN,  0);
  SCU_PinConfigure(RTE_SD_DAT0_PORT, RTE_SD_DAT0_PIN, 0);
  
  #if (RTE_SDMMC_BUS_WIDTH_4)
  /* SD_DAT[3..1] */
  SCU_PinConfigure(RTE_SD_DAT1_PORT, RTE_SD_DAT1_PIN, 0);
  SCU_PinConfigure(RTE_SD_DAT2_PORT, RTE_SD_DAT2_PIN, 0);
  SCU_PinConfigure(RTE_SD_DAT3_PORT, RTE_SD_DAT3_PIN, 0);
  
    #if (RTE_SDMMC_BUS_WIDTH_8)
    /* SD_DAT[7..4] */
    SCU_PinConfigure(RTE_SD_DAT4_PORT, RTE_SD_DAT4_PIN, 0);
    SCU_PinConfigure(RTE_SD_DAT5_PORT, RTE_SD_DAT5_PIN, 0);
    SCU_PinConfigure(RTE_SD_DAT6_PORT, RTE_SD_DAT6_PIN, 0);
    SCU_PinConfigure(RTE_SD_DAT7_PORT, RTE_SD_DAT7_PIN, 0);
    #endif /* RTE_SDMMC_BUS_WIDTH_8 */
  
  #endif /* RTE_SDMMC_BUS_WIDTH_4 */

  /* Unconfigure SD_CD (Card Detect) Pin */
  #if (RTE_SD_CD_PIN_EN)
    SCU_PinConfigure(RTE_SD_CD_PORT, RTE_SD_CD_PIN, 0);
  #endif

  /* Unconfigure SD_WP (Write Protect) Pin */
  #if (RTE_SD_WP_PIN_EN)
    SCU_PinConfigure(RTE_SD_WP_PORT, RTE_SD_WP_PIN, 0);
  #endif
  
  /* Unconfigure SD_POW Pin */
  #if (RTE_SD_POW_PIN_EN)
    SCU_PinConfigure(RTE_SD_POW_PORT, RTE_SD_POW_PIN, 0);
  #endif

  /* Unconfigure SD_RST Pin */
  #if (RTE_SD_RST_PIN_EN)
    SCU_PinConfigure(RTE_SD_RST_PORT, RTE_SD_RST_PIN, 0);
  #endif

  MCI.flags = 0;

  return ARM_DRIVER_OK;
}
示例#5
0
文件: MCI_LPC18xx.c 项目: L3YZ/f427
/**
  \fn            int32_t Initialize (ARM_MCI_SignalEvent_t cb_event)
  \brief         Initialize the Memory Card Interface
  \param[in]     cb_event  Pointer to \ref ARM_MCI_SignalEvent
  \return        \ref execution_status
*/
static int32_t Initialize (ARM_MCI_SignalEvent_t cb_event) {

  if (MCI.flags & MCI_INIT)  { return ARM_DRIVER_OK; }

  /* Enable GPIO register interface clock */
  LPC_CCU1->CLK_M3_GPIO_CFG |= CCU_CLK_CFG_AUTO | CCU_CLK_CFG_RUN;
  while (!(LPC_CCU1->CLK_M3_GPIO_STAT & CCU_CLK_STAT_RUN));

  /* Configure SD_CLK, SD_CMD and SD_DAT0 */
  if (RTE_SD_CLK_PORT == 0x10) {
    SCU_CLK_PinConfigure (RTE_SD_CLK_PIN, RTE_SD_CLK_FUNC              |
                                          SCU_PIN_CFG_PULLUP_DIS       |
                                          SCU_PIN_CFG_INPUT_BUFFER_EN  |
                                          SCU_PIN_CFG_INPUT_FILTER_DIS);
  }
  else {
    SCU_PinConfigure(RTE_SD_CLK_PORT, RTE_SD_CLK_PIN, RTE_SD_CLK_FUNC              |
                                                      SCU_PIN_CFG_PULLUP_DIS       |
                                                      SCU_PIN_CFG_INPUT_BUFFER_EN  |
                                                      SCU_PIN_CFG_INPUT_FILTER_DIS);
  }
                                                    
  SCU_PinConfigure(RTE_SD_CMD_PORT, RTE_SD_CMD_PIN, RTE_SD_CMD_FUNC              |
                                                    SCU_PIN_CFG_PULLUP_DIS       |
                                                    SCU_PIN_CFG_INPUT_BUFFER_EN  |
                                                    SCU_PIN_CFG_INPUT_FILTER_DIS);
  SCU_PinConfigure(RTE_SD_DAT0_PORT, RTE_SD_DAT0_PIN, RTE_SD_DAT0_FUNC             |
                                                      SCU_PIN_CFG_PULLUP_DIS       |
                                                      SCU_PIN_CFG_INPUT_BUFFER_EN  |
                                                      SCU_PIN_CFG_INPUT_FILTER_DIS);
  #if (RTE_SDMMC_BUS_WIDTH_4)
  /* SD_DAT[3..1] */
  SCU_PinConfigure(RTE_SD_DAT3_PORT, RTE_SD_DAT3_PIN, RTE_SD_DAT3_FUNC             |
                                                      SCU_PIN_CFG_PULLUP_DIS       |
                                                      SCU_PIN_CFG_INPUT_BUFFER_EN  |
                                                      SCU_PIN_CFG_INPUT_FILTER_DIS);
  SCU_PinConfigure(RTE_SD_DAT2_PORT, RTE_SD_DAT2_PIN, RTE_SD_DAT2_FUNC             |
                                                      SCU_PIN_CFG_PULLUP_DIS       |
                                                      SCU_PIN_CFG_INPUT_BUFFER_EN  |
                                                      SCU_PIN_CFG_INPUT_FILTER_DIS);
  SCU_PinConfigure(RTE_SD_DAT1_PORT, RTE_SD_DAT1_PIN, RTE_SD_DAT1_FUNC             |
                                                      SCU_PIN_CFG_PULLUP_DIS       |
                                                      SCU_PIN_CFG_INPUT_BUFFER_EN  |
                                                      SCU_PIN_CFG_INPUT_FILTER_DIS);

    #if (RTE_SDMMC_BUS_WIDTH_8)
    /* SD_DAT[7..4] */
    SCU_PinConfigure(RTE_SD_DAT4_PORT, RTE_SD_DAT4_PIN, RTE_SD_DAT4_FUNC             |
                                                        SCU_PIN_CFG_PULLUP_DIS       |
                                                        SCU_PIN_CFG_INPUT_BUFFER_EN  |
                                                        SCU_PIN_CFG_INPUT_FILTER_DIS);
    SCU_PinConfigure(RTE_SD_DAT5_PORT, RTE_SD_DAT5_PIN, RTE_SD_DAT5_FUNC             |
                                                        SCU_PIN_CFG_PULLUP_DIS       |
                                                        SCU_PIN_CFG_INPUT_BUFFER_EN  |
                                                        SCU_PIN_CFG_INPUT_FILTER_DIS);
    SCU_PinConfigure(RTE_SD_DAT6_PORT, RTE_SD_DAT6_PIN, RTE_SD_DAT6_FUNC             |
                                                        SCU_PIN_CFG_PULLUP_DIS       |
                                                        SCU_PIN_CFG_INPUT_BUFFER_EN  |
                                                        SCU_PIN_CFG_INPUT_FILTER_DIS);
    SCU_PinConfigure(RTE_SD_DAT7_PORT, RTE_SD_DAT7_PIN, RTE_SD_DAT7_FUNC             |
                                                        SCU_PIN_CFG_PULLUP_DIS       |
                                                        SCU_PIN_CFG_INPUT_BUFFER_EN  |
                                                        SCU_PIN_CFG_INPUT_FILTER_DIS);
    #endif /* RTE_SDMMC_BUS_WIDTH_8 */

  #endif /* RTE_SDMMC_BUS_WIDTH_4 */

  #if (RTE_SD_CD_PIN_EN)
  /* Configure SD_CD (Card Detect) Pin */
  SCU_PinConfigure(RTE_SD_CD_PORT, RTE_SD_CD_PIN, RTE_SD_CD_FUNC               |
                                                  SCU_PIN_CFG_PULLUP_DIS       |
                                                  SCU_PIN_CFG_INPUT_BUFFER_EN  |
                                                  SCU_PIN_CFG_INPUT_FILTER_DIS);
  #endif

  #if (RTE_SDIO_WP_PIN_EN)
  /* Configure SD_WP (Write Protect) Pin */
  SCU_PinConfigure(RTE_SD_WP_PORT, RTE_SD_WP_PIN, RTE_SD_WP_FUNC               |
                                                  SCU_PIN_CFG_PULLUP_DIS       |
                                                  SCU_PIN_CFG_INPUT_BUFFER_EN  |
                                                  SCU_PIN_CFG_INPUT_FILTER_DIS);
  #endif

  /* Configure SD_POW Pin */
  #if (RTE_SD_POW_PIN_EN)
    SCU_PinConfigure(RTE_SD_POW_PORT, RTE_SD_POW_PIN, RTE_SD_POW_FUNC              |
                                                      SCU_PIN_CFG_PULLUP_DIS       |
                                                      SCU_PIN_CFG_INPUT_BUFFER_EN  |
                                                      SCU_PIN_CFG_INPUT_FILTER_DIS);
  #endif

  /* Configure SD_RST Pin */
  #if (RTE_SD_RST_PIN_EN)
    SCU_PinConfigure(RTE_SD_RST_PORT, RTE_SD_RST_PIN, RTE_SD_RST_FUNC              |
                                                      SCU_PIN_CFG_PULLUP_DIS       |
                                                      SCU_PIN_CFG_INPUT_BUFFER_EN  |
                                                      SCU_PIN_CFG_INPUT_FILTER_DIS);
  #endif

  /* Connect SDIO base clock to PLL1 */
  LPC_CGU->BASE_SDIO_CLK  = (0x01 << 11) | (SDIO_CLK_SEL_PLL1 << 24);

  /* Clear control structure */
  memset (&MCI, 0, sizeof (MCI_INFO));

  MCI.cb_event = cb_event;
  MCI.flags    = MCI_INIT;

  return ARM_DRIVER_OK;
}
示例#6
0
/**
  \fn          void USB1_PinsConfigure (void)
  \brief       Configure USB pins
*/
void USB1_PinsConfigure (void) {

  // Common (Device and Host) Pins
#if (RTE_USB1_IND0_PIN_EN)
  SCU_PinConfigure(RTE_USB1_IND0_PORT, RTE_USB1_IND0_BIT, RTE_USB1_IND0_FUNC);
#endif
#if (RTE_USB1_IND1_PIN_EN)
  SCU_PinConfigure(RTE_USB1_IND1_PORT, RTE_USB1_IND1_BIT, RTE_USB1_IND1_FUNC);
#endif

#if (RTE_USB_USB1_FS_PHY_EN)
#if (RTE_USB1_VBUS_PIN_EN)
  // Device Pin
  if (USB1_role == ARM_USB_ROLE_DEVICE) {
    SCU_PinConfigure(RTE_USB1_VBUS_PORT, RTE_USB1_VBUS_BIT, RTE_USB1_VBUS_FUNC | SCU_SFS_EPD | SCU_SFS_EZI);
  }
#endif
#endif

  // Host Pins
  if (USB1_role == ARM_USB_ROLE_HOST) {
#if (RTE_USB1_PPWR_PIN_EN)
    SCU_PinConfigure(RTE_USB1_PPWR_PORT,      RTE_USB1_PPWR_BIT,      RTE_USB1_PPWR_FUNC);
#endif
#if (RTE_USB1_PWR_FAULT_PIN_EN)
    SCU_PinConfigure(RTE_USB1_PWR_FAULT_PORT, RTE_USB1_PWR_FAULT_BIT, RTE_USB1_PWR_FAULT_FUNC);
#endif
  }

  // ULPI Pins
#if (RTE_USB_USB1_HS_PHY_EN)
  SCU_PinConfigure(RTE_USB1_ULPI_CLK_PORT, RTE_USB1_ULPI_CLK_BIT,  RTE_USB1_ULPI_CLK_FUNC);
  SCU_PinConfigure(RTE_USB1_ULPI_DIR_PORT, RTE_USB1_ULPI_DIR_BIT,  RTE_USB1_ULPI_DIR_FUNC);
  SCU_PinConfigure(RTE_USB1_ULPI_STP_PORT, RTE_USB1_ULPI_STP_BIT,  RTE_USB1_ULPI_STP_FUNC);
  SCU_PinConfigure(RTE_USB1_ULPI_NXT_PORT, RTE_USB1_ULPI_NXT_BIT,  RTE_USB1_ULPI_NXT_FUNC);
  SCU_PinConfigure(RTE_USB1_ULPI_D0_PORT,  RTE_USB1_ULPI_D0_BIT,   RTE_USB1_ULPI_D0_FUNC );
  SCU_PinConfigure(RTE_USB1_ULPI_D1_PORT,  RTE_USB1_ULPI_D1_BIT,   RTE_USB1_ULPI_D1_FUNC );
  SCU_PinConfigure(RTE_USB1_ULPI_D2_PORT,  RTE_USB1_ULPI_D2_BIT,   RTE_USB1_ULPI_D2_FUNC );
  SCU_PinConfigure(RTE_USB1_ULPI_D3_PORT,  RTE_USB1_ULPI_D3_BIT,   RTE_USB1_ULPI_D3_FUNC );
  SCU_PinConfigure(RTE_USB1_ULPI_D4_PORT,  RTE_USB1_ULPI_D4_BIT,   RTE_USB1_ULPI_D4_FUNC );
  SCU_PinConfigure(RTE_USB1_ULPI_D5_PORT,  RTE_USB1_ULPI_D5_BIT,   RTE_USB1_ULPI_D5_FUNC );
  SCU_PinConfigure(RTE_USB1_ULPI_D6_PORT,  RTE_USB1_ULPI_D6_BIT,   RTE_USB1_ULPI_D6_FUNC );
  SCU_PinConfigure(RTE_USB1_ULPI_D7_PORT,  RTE_USB1_ULPI_D7_BIT,   RTE_USB1_ULPI_D7_FUNC );
#endif
}