Module imxrt_iomuxc::sai[][src]

SAI / I2S pad configurations

Examples

Accept a transfer pin in a SAI driver. Change TxDataSignal to RxDataSignal for the inverse operation.

use imxrt_iomuxc::sai::{Pin, TxDataSignal};
use imxrt_iomuxc::consts::{U1, Unsigned};

struct SAI<U> {
    /* Driver details... */
}

type SAI1 = SAI<U1>;

impl<U: Unsigned> SAI<U> {
    fn add_tx_pin<P>(&mut self, pin: P)
    where
        P: Pin<U>,
        <P as Pin<U>>::Signal: TxDataSignal,
    {
        let tx_offset: usize = <P::Signal as TxDataSignal>::Index::to_usize();
        assert_eq!(tx_offset, 1);
        // ...
    }
}

let mut sai1: SAI1 = // Create SAI1 driver...
let sd_b1_02 = // 1060 SAI1 TX_DATA01 pin...


sai1.add_tx_pin(sd_b1_02);

Enums

Mclk

A tag that indicates a SAI MCLK pad

RxBclk

A tag that indicates a SAI RX bit clock pad

RxData

A SAI RX data pin

RxSync

A tag that indicates a SAI RX frame sync pad

TxBclk

A tag that indicates a SAI TX bit clock pad

TxData

A SAI TX data pin

TxSync

A tag that indicates a SAI TX frame sync pad

Traits

Pin

A pin that can be used for a SAI peripheral

RxDataSignal

An SAI RX data signal

Signal

An SAI pin signal

TxDataSignal

An SAI TX data signal

Functions

prepare

Prepare a pad to be used as a SAI pin