예제 #1
0
파일: serial_lld.c 프로젝트: 0x00f/ChibiOS
/**
 * @brief   Low level serial driver stop.
 *
 * @param[in] sdp       pointer to a @p SerialDriver object
 *
 * @notapi
 */
void sd_lld_stop(SerialDriver *sdp) {

  if (sdp->state == SD_READY) {
    spc5_linflex_deinit(sdp->linflexp);

#if SPC5_SERIAL_USE_LINFLEX0
    if (&SD1 == sdp) {
      halSPCSetPeripheralClockMode(SPC5_LINFLEX0_PCTL,
                                   SPC5_SERIAL_LINFLEX0_STOP_PCTL);
      return;
    }
#endif
#if SPC5_SERIAL_USE_LINFLEX1
    if (&SD2 == sdp) {
      halSPCSetPeripheralClockMode(SPC5_LINFLEX1_PCTL,
                                   SPC5_SERIAL_LINFLEX1_STOP_PCTL);
      return;
    }
#endif
#if SPC5_SERIAL_USE_LINFLEX2
    if (&SD3 == sdp) {
      halSPCSetPeripheralClockMode(SPC5_LINFLEX2_PCTL,
                                   SPC5_SERIAL_LINFLEX2_STOP_PCTL);
      return;
    }
#endif
#if SPC5_SERIAL_USE_LINFLEX3
    if (&SD4 == sdp) {
      halSPCSetPeripheralClockMode(SPC5_LINFLEX3_PCTL,
                                   SPC5_SERIAL_LINFLEX3_STOP_PCTL);
      return;
    }
#endif
  }
}
예제 #2
0
/**
 * @brief   Low level serial driver stop.
 *
 * @param[in] sdp       pointer to a @p SerialDriver object
 *
 * @notapi
 */
void sd_lld_stop(SerialDriver *sdp) {

  if (sdp->state == SD_READY) {
    spc5_linflex_deinit(sdp->linflexp);

#if SPC5_SERIAL_USE_LINFLEX0
    if (&SD1 == sdp) {
      halSPCSetPeripheralClockMode(SPC5_LINFLEX0_PCTL,
                                   SPC5_SERIAL_LINFLEX0_STOP_PCTL);
      return;
    }
#endif
#if SPC5_SERIAL_USE_LINFLEX1
    if (&SD2 == sdp) {
      halSPCSetPeripheralClockMode(SPC5_LINFLEX1_PCTL,
                                   SPC5_SERIAL_LINFLEX1_STOP_PCTL);
      return;
    }
#endif
#if SPC5_SERIAL_USE_LINFLEX2
    if (&SD3 == sdp) {
      halSPCSetPeripheralClockMode(SPC5_LINFLEX2_PCTL,
                                   SPC5_SERIAL_LINFLEX2_STOP_PCTL);
      return;
    }
#endif
#if SPC5_SERIAL_USE_LINFLEX3
    if (&SD4 == sdp) {
      halSPCSetPeripheralClockMode(SPC5_LINFLEX3_PCTL,
                                   SPC5_SERIAL_LINFLEX3_STOP_PCTL);
      return;
    }
#endif
#if SPC5_SERIAL_USE_LINFLEX4
    if (&SD5 == sdp) {
      halSPCSetPeripheralClockMode(SPC5_LINFLEX4_PCTL,
                                   SPC5_SERIAL_LINFLEX4_STOP_PCTL);
      return;
    }
#endif
#if SPC5_SERIAL_USE_LINFLEX5
    if (&SD6 == sdp) {
      halSPCSetPeripheralClockMode(SPC5_LINFLEX5_PCTL,
                                   SPC5_SERIAL_LINFLEX5_STOP_PCTL);
      return;
    }
#endif
#if SPC5_SERIAL_USE_LINFLEX6
    if (&SD7 == sdp) {
      halSPCSetPeripheralClockMode(SPC5_LINFLEX6_PCTL,
                                   SPC5_SERIAL_LINFLEX6_STOP_PCTL);
      return;
    }
#endif
#if SPC5_SERIAL_USE_LINFLEX7
    if (&SD8 == sdp) {
      halSPCSetPeripheralClockMode(SPC5_LINFLEX7_PCTL,
                                   SPC5_SERIAL_LINFLEX7_STOP_PCTL);
      return;
    }
#endif
#if SPC5_SERIAL_USE_LINFLEX8
    if (&SD9 == sdp) {
      halSPCSetPeripheralClockMode(SPC5_LINFLEX8_PCTL,
                                   SPC5_SERIAL_LINFLEX8_STOP_PCTL);
      return;
    }
#endif
#if SPC5_SERIAL_USE_LINFLEX9
    if (&SD10 == sdp) {
      halSPCSetPeripheralClockMode(SPC5_LINFLEX9_PCTL,
                                   SPC5_SERIAL_LINFLEX9_STOP_PCTL);
      return;
    }
#endif
  }
}