aboutsummaryrefslogtreecommitdiff
path: root/drivers/ccm-10xx/src/ral/ccm_analog.rs
blob: 958c7c1e668557269edcbcafe712829aa8fde99b (plain)
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
use ral_registers::{Instance, register};

#[repr(C)]
#[allow(non_snake_case)]
pub struct RegisterBlock {
    pub PLL_ARM: u32,
    pub PLL_ARM_SET: u32,
    pub PLL_ARM_CLR: u32,
    pub PLL_ARM_TOG: u32,
    pub PLL_USB1: u32,
    pub PLL_USB1_SET: u32,
    pub PLL_USB1_CLR: u32,
    pub PLL_USB1_TOG: u32,
    pub PLL_USB2: u32,
    pub PLL_USB2_SET: u32,
    pub PLL_USB2_CLR: u32,
    pub PLL_USB2_TOG: u32,
    pub PLL_SYS: u32,
    pub PLL_SYS_SET: u32,
    pub PLL_SYS_CLR: u32,
    pub PLL_SYS_TOG: u32,
    pub PLL_SYS_SS: u32,
    _reserved0: [u8; 12],
    pub PLL_SYS_NUM: u32,
    _reserved1: [u8; 12],
    pub PLL_SYS_DENOM: u32,
    _reserved2: [u8; 12],
    pub PLL_AUDIO: u32,
    pub PLL_AUDIO_SET: u32,
    pub PLL_AUDIO_CLR: u32,
    pub PLL_AUDIO_TOG: u32,
    pub PLL_AUDIO_NUM: u32,
    _reserved3: [u8; 12],
    pub PLL_AUDIO_DENOM: u32,
    _reserved4: [u8; 12],
    pub PLL_VIDEO: u32,
    pub PLL_VIDEO_SET: u32,
    pub PLL_VIDEO_CLR: u32,
    pub PLL_VIDEO_TOG: u32,
    pub PLL_VIDEO_NUM: u32,
    _reserved5: [u8; 12],
    pub PLL_VIDEO_DENOM: u32,
    _reserved6: [u8; 28],
    pub PLL_ENET: u32,
    pub PLL_ENET_SET: u32,
    pub PLL_ENET_CLR: u32,
    pub PLL_ENET_TOG: u32,
    pub PFD_480: u32,
    pub PFD_480_SET: u32,
    pub PFD_480_CLR: u32,
    pub PFD_480_TOG: u32,
    pub PFD_528: u32,
    pub PFD_528_SET: u32,
    pub PFD_528_CLR: u32,
    pub PFD_528_TOG: u32,
    _reserved7: [u8; 64],
    pub MISC0: u32,
    pub MISC0_SET: u32,
    pub MISC0_CLR: u32,
    pub MISC0_TOG: u32,
    pub MISC1: u32,
    pub MISC1_SET: u32,
    pub MISC1_CLR: u32,
    pub MISC1_TOG: u32,
    pub MISC2: u32,
    pub MISC2_SET: u32,
    pub MISC2_CLR: u32,
    pub MISC2_TOG: u32,
}

/// A CCM\_ANALOG instance.
#[allow(non_camel_case_types)]
pub type CCM_ANALOG = Instance<RegisterBlock>;

register!(pub PLL_USB1<u32> RW [
    LOCK            start(31) width(1) RW {}
    BYPASS          start(16) width(1) RW {}
    ENABLE          start(13) width(1) RW {}
    POWER           start(12) width(1) RW {}
    EN_USB_CLKS     start(6) width(1) RW {}
]);
pub use PLL_USB1 as PLL_USB1_SET;
pub use PLL_USB1 as PLL_USB1_CLR;

pub use PLL_USB1 as PLL_USB2;
pub use PLL_USB2 as PLL_USB2_SET;
pub use PLL_USB2 as PLL_USB2_CLR;

register!(pub PLL_ARM<u32> RW [
    LOCK            start(31) width(1) RW {}
    ENABLE          start(13) width(1) RW {}
    POWERDOWN       start(12) width(1) RW {}
    DIV_SELECT      start(0) width(7) RW {}
]);
pub use PLL_ARM as PLL_ARM_SET;

register!(pub PLL_ENET<u32> RW [
    LOCK                start(31) width(1) RW {}
    ENET_500M_REF_EN    start(22) width(1) RW {}
    POWERDOWN           start(12) width(1) RW {}
    BYPASS              start(16) width(1) RW {}
    BYPASS_CLK_SRC      start(14) width(2) RW {}
    ENABLE              start(13) width(1) RW {}
    DIV_SELECT          start(0)  width(2) RW {
        DIV_25MHZ = 0,
        DIV_50MHZ = 1,
        DIV_100MHZ = 2,
        DIV_125MHZ = 3,
    }
]);

register!(pub PLL_SYS<u32> RW [
    LOCK            start(31) width(1) RW {}
    BYPASS          start(16) width(1) RW {}
    ENABLE          start(13) width(1) RW {}
    POWERDOWN       start(12) width(1) RW {}
]);

pub use PLL_SYS as PLL_SYS_SET;
pub use PLL_SYS as PLL_SYS_CLR;

register!(pub PFD_480<u32> RW [
    PFD3_FRAC      start(24) width(6) RW {}
    PFD2_FRAC      start(16) width(6) RW {}
    PFD1_FRAC      start(8)  width(6) RW {}
    PFD0_FRAC      start(0)  width(6) RW {}
]);

pub use PFD_480 as PFD_528;