File tree 6 files changed +735
-0
lines changed
6 files changed +735
-0
lines changed Original file line number Diff line number Diff line change
1
+ /*
2
+ * SPDX-License-Identifier: MIT
3
+ * SPDX-FileCopyrightText: 2021 Rafael Silva <perigoso@riseup.net>
4
+ */
5
+
6
+ #include <sam.h>
7
+
8
+ #include "platform/sam3u/eefc.h"
9
+
10
+ void eefc_config_waitstates (const u32 frequency )
11
+ {
12
+ if (frequency <= 27000000UL )
13
+ EFC0 -> EEFC_FMR = (EFC0 -> EEFC_FMR & ~EEFC_FMR_FWS_Msk ) | (0 << EEFC_FMR_FWS_Pos );
14
+ else if (frequency <= 47000000UL )
15
+ EFC0 -> EEFC_FMR = (EFC0 -> EEFC_FMR & ~EEFC_FMR_FWS_Msk ) | (1 << EEFC_FMR_FWS_Pos );
16
+ else if (frequency <= 84000000UL )
17
+ EFC0 -> EEFC_FMR = (EFC0 -> EEFC_FMR & ~EEFC_FMR_FWS_Msk ) | (2 << EEFC_FMR_FWS_Pos );
18
+ else
19
+ EFC0 -> EEFC_FMR = (EFC0 -> EEFC_FMR & ~EEFC_FMR_FWS_Msk ) | (3 << EEFC_FMR_FWS_Pos );
20
+
21
+ #if 0
22
+ if (frequency <= 27000000UL )
23
+ EFC1 -> EEFC_FMR = (EFC0 -> EEFC_FMR & ~EEFC_FMR_FWS_Msk ) | (0 << EEFC_FMR_FWS_Pos );
24
+ else if (frequency <= 47000000UL )
25
+ EFC1 -> EEFC_FMR = (EFC0 -> EEFC_FMR & ~EEFC_FMR_FWS_Msk ) | (1 << EEFC_FMR_FWS_Pos );
26
+ else if (frequency <= 84000000UL )
27
+ EFC1 -> EEFC_FMR = (EFC0 -> EEFC_FMR & ~EEFC_FMR_FWS_Msk ) | (2 << EEFC_FMR_FWS_Pos );
28
+ else
29
+ EFC1 -> EEFC_FMR = (EFC0 -> EEFC_FMR & ~EEFC_FMR_FWS_Msk ) | (3 << EEFC_FMR_FWS_Pos );
30
+ #endif
31
+ }
Original file line number Diff line number Diff line change
1
+ /*
2
+ * SPDX-License-Identifier: MIT
3
+ * SPDX-FileCopyrightText: 2021 Rafael Silva <perigoso@riseup.net>
4
+ */
5
+
6
+ #pragma once
7
+
8
+ #include <sam.h>
9
+
10
+ #include "util/types.h"
11
+
12
+ void eefc_config_waitstates (const u32 frequency );
You can’t perform that action at this time.
0 commit comments