sdmmc_core/command/class/
class0.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
use crate::result::Error;
use crate::{command_enum, lib_enum};

pub mod cmd0;
pub mod cmd1;
pub mod cmd2;
pub mod cmd3;
pub mod cmd4;
pub mod cmd7;
pub mod cmd8;
pub mod cmd9;

pub mod cmd10;
pub mod cmd11;
pub mod cmd12;
pub mod cmd13;
pub mod cmd14;
pub mod cmd15;

lib_enum! {
    /// MMC opcodes for Class 0.
    CommandClass0: u32 {
        default: GoIdleState,
        error: Error,
        GoIdleState = 0,
        SendOpCond = 1,
        AllSendCID = 2,
        SetRelativeAddress = 3,
        SetDSR = 4,
        SelectCard = 7,
        SendIFCond = 8,
        SendCSD = 9,
        SendCID = 10,
        VoltageSwitch = 11,
        StopTransmission = 12,
        SendStatus = 13,
        BustestR = 14,
        GoInactiveState = 15,
    }
}

command_enum! {
    /// Represents the variants for Class0 commands.
    Command {
        default: Cmd0(cmd0::Cmd0),
        Cmd0(cmd0::Cmd0),
        Cmd1(cmd1::Cmd1),
        Cmd2(cmd2::Cmd2),
        Cmd3(cmd3::Cmd3),
        Cmd4(cmd4::Cmd4),
        Cmd7(cmd7::Cmd7),
        Cmd8(cmd8::Cmd8),
        Cmd9(cmd9::Cmd9),
        Cmd10(cmd10::Cmd10),
        Cmd11(cmd11::Cmd11),
        Cmd12(cmd12::Cmd12),
        Cmd13(cmd13::Cmd13),
        Cmd14(cmd14::Cmd14),
        Cmd15(cmd15::Cmd15),
    }
}