diff options
| author | Dario Nieuwenhuis <[email protected]> | 2023-01-23 01:48:35 +0100 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2023-02-20 01:28:45 +0100 |
| commit | 3f88bf6f9b998e209c6bfe860930fc82516f3f9c (patch) | |
| tree | 7fb3b3adb3353e0c609796086eea6fdd32ca2ca5 /embassy-nrf/src/chips | |
| parent | e3f8020c3bdf726dfa451b5b190f27191507a18f (diff) | |
nrf: add support for UICR configuration.
- APPROTECT enable/disable. Notably this fixes issues with nrf52-rev3 and nrf53 from locking itself at reset.
- Use NFC pins as GPIO.
- Use RESET pin as GPIO.
NFC and RESET pins singletons are made available only when usable as GPIO,
for compile-time checking.
Diffstat (limited to 'embassy-nrf/src/chips')
| -rw-r--r-- | embassy-nrf/src/chips/nrf52805.rs | 4 | ||||
| -rw-r--r-- | embassy-nrf/src/chips/nrf52810.rs | 4 | ||||
| -rw-r--r-- | embassy-nrf/src/chips/nrf52811.rs | 4 | ||||
| -rw-r--r-- | embassy-nrf/src/chips/nrf52820.rs | 4 | ||||
| -rw-r--r-- | embassy-nrf/src/chips/nrf52832.rs | 8 | ||||
| -rw-r--r-- | embassy-nrf/src/chips/nrf52833.rs | 8 | ||||
| -rw-r--r-- | embassy-nrf/src/chips/nrf52840.rs | 8 | ||||
| -rw-r--r-- | embassy-nrf/src/chips/nrf5340_app.rs | 4 |
8 files changed, 44 insertions, 0 deletions
diff --git a/embassy-nrf/src/chips/nrf52805.rs b/embassy-nrf/src/chips/nrf52805.rs index bf4019c13..3c74a2a63 100644 --- a/embassy-nrf/src/chips/nrf52805.rs +++ b/embassy-nrf/src/chips/nrf52805.rs | |||
| @@ -6,6 +6,8 @@ pub const FORCE_COPY_BUFFER_SIZE: usize = 256; | |||
| 6 | 6 | ||
| 7 | pub const FLASH_SIZE: usize = 192 * 1024; | 7 | pub const FLASH_SIZE: usize = 192 * 1024; |
| 8 | 8 | ||
| 9 | pub const RESET_PIN: u32 = 21; | ||
| 10 | |||
| 9 | embassy_hal_common::peripherals! { | 11 | embassy_hal_common::peripherals! { |
| 10 | // RTC | 12 | // RTC |
| 11 | RTC0, | 13 | RTC0, |
| @@ -108,6 +110,7 @@ embassy_hal_common::peripherals! { | |||
| 108 | P0_18, | 110 | P0_18, |
| 109 | P0_19, | 111 | P0_19, |
| 110 | P0_20, | 112 | P0_20, |
| 113 | #[cfg(feature="reset-pin-as-gpio")] | ||
| 111 | P0_21, | 114 | P0_21, |
| 112 | P0_22, | 115 | P0_22, |
| 113 | P0_23, | 116 | P0_23, |
| @@ -162,6 +165,7 @@ impl_pin!(P0_17, 0, 17); | |||
| 162 | impl_pin!(P0_18, 0, 18); | 165 | impl_pin!(P0_18, 0, 18); |
| 163 | impl_pin!(P0_19, 0, 19); | 166 | impl_pin!(P0_19, 0, 19); |
| 164 | impl_pin!(P0_20, 0, 20); | 167 | impl_pin!(P0_20, 0, 20); |
| 168 | #[cfg(feature = "reset-pin-as-gpio")] | ||
| 165 | impl_pin!(P0_21, 0, 21); | 169 | impl_pin!(P0_21, 0, 21); |
| 166 | impl_pin!(P0_22, 0, 22); | 170 | impl_pin!(P0_22, 0, 22); |
| 167 | impl_pin!(P0_23, 0, 23); | 171 | impl_pin!(P0_23, 0, 23); |
diff --git a/embassy-nrf/src/chips/nrf52810.rs b/embassy-nrf/src/chips/nrf52810.rs index 6c28a3bea..6b5c134b8 100644 --- a/embassy-nrf/src/chips/nrf52810.rs +++ b/embassy-nrf/src/chips/nrf52810.rs | |||
| @@ -6,6 +6,8 @@ pub const FORCE_COPY_BUFFER_SIZE: usize = 256; | |||
| 6 | 6 | ||
| 7 | pub const FLASH_SIZE: usize = 192 * 1024; | 7 | pub const FLASH_SIZE: usize = 192 * 1024; |
| 8 | 8 | ||
| 9 | pub const RESET_PIN: u32 = 21; | ||
| 10 | |||
| 9 | embassy_hal_common::peripherals! { | 11 | embassy_hal_common::peripherals! { |
| 10 | // RTC | 12 | // RTC |
| 11 | RTC0, | 13 | RTC0, |
| @@ -111,6 +113,7 @@ embassy_hal_common::peripherals! { | |||
| 111 | P0_18, | 113 | P0_18, |
| 112 | P0_19, | 114 | P0_19, |
| 113 | P0_20, | 115 | P0_20, |
| 116 | #[cfg(feature="reset-pin-as-gpio")] | ||
| 114 | P0_21, | 117 | P0_21, |
| 115 | P0_22, | 118 | P0_22, |
| 116 | P0_23, | 119 | P0_23, |
| @@ -170,6 +173,7 @@ impl_pin!(P0_17, 0, 17); | |||
| 170 | impl_pin!(P0_18, 0, 18); | 173 | impl_pin!(P0_18, 0, 18); |
| 171 | impl_pin!(P0_19, 0, 19); | 174 | impl_pin!(P0_19, 0, 19); |
| 172 | impl_pin!(P0_20, 0, 20); | 175 | impl_pin!(P0_20, 0, 20); |
| 176 | #[cfg(feature = "reset-pin-as-gpio")] | ||
| 173 | impl_pin!(P0_21, 0, 21); | 177 | impl_pin!(P0_21, 0, 21); |
| 174 | impl_pin!(P0_22, 0, 22); | 178 | impl_pin!(P0_22, 0, 22); |
| 175 | impl_pin!(P0_23, 0, 23); | 179 | impl_pin!(P0_23, 0, 23); |
diff --git a/embassy-nrf/src/chips/nrf52811.rs b/embassy-nrf/src/chips/nrf52811.rs index e7214cf5c..c5de9a447 100644 --- a/embassy-nrf/src/chips/nrf52811.rs +++ b/embassy-nrf/src/chips/nrf52811.rs | |||
| @@ -6,6 +6,8 @@ pub const FORCE_COPY_BUFFER_SIZE: usize = 256; | |||
| 6 | 6 | ||
| 7 | pub const FLASH_SIZE: usize = 192 * 1024; | 7 | pub const FLASH_SIZE: usize = 192 * 1024; |
| 8 | 8 | ||
| 9 | pub const RESET_PIN: u32 = 21; | ||
| 10 | |||
| 9 | embassy_hal_common::peripherals! { | 11 | embassy_hal_common::peripherals! { |
| 10 | // RTC | 12 | // RTC |
| 11 | RTC0, | 13 | RTC0, |
| @@ -111,6 +113,7 @@ embassy_hal_common::peripherals! { | |||
| 111 | P0_18, | 113 | P0_18, |
| 112 | P0_19, | 114 | P0_19, |
| 113 | P0_20, | 115 | P0_20, |
| 116 | #[cfg(feature="reset-pin-as-gpio")] | ||
| 114 | P0_21, | 117 | P0_21, |
| 115 | P0_22, | 118 | P0_22, |
| 116 | P0_23, | 119 | P0_23, |
| @@ -172,6 +175,7 @@ impl_pin!(P0_17, 0, 17); | |||
| 172 | impl_pin!(P0_18, 0, 18); | 175 | impl_pin!(P0_18, 0, 18); |
| 173 | impl_pin!(P0_19, 0, 19); | 176 | impl_pin!(P0_19, 0, 19); |
| 174 | impl_pin!(P0_20, 0, 20); | 177 | impl_pin!(P0_20, 0, 20); |
| 178 | #[cfg(feature = "reset-pin-as-gpio")] | ||
| 175 | impl_pin!(P0_21, 0, 21); | 179 | impl_pin!(P0_21, 0, 21); |
| 176 | impl_pin!(P0_22, 0, 22); | 180 | impl_pin!(P0_22, 0, 22); |
| 177 | impl_pin!(P0_23, 0, 23); | 181 | impl_pin!(P0_23, 0, 23); |
diff --git a/embassy-nrf/src/chips/nrf52820.rs b/embassy-nrf/src/chips/nrf52820.rs index 21d1d16cc..81b07f32c 100644 --- a/embassy-nrf/src/chips/nrf52820.rs +++ b/embassy-nrf/src/chips/nrf52820.rs | |||
| @@ -6,6 +6,8 @@ pub const FORCE_COPY_BUFFER_SIZE: usize = 512; | |||
| 6 | 6 | ||
| 7 | pub const FLASH_SIZE: usize = 256 * 1024; | 7 | pub const FLASH_SIZE: usize = 256 * 1024; |
| 8 | 8 | ||
| 9 | pub const RESET_PIN: u32 = 18; | ||
| 10 | |||
| 9 | embassy_hal_common::peripherals! { | 11 | embassy_hal_common::peripherals! { |
| 10 | // USB | 12 | // USB |
| 11 | USBD, | 13 | USBD, |
| @@ -106,6 +108,7 @@ embassy_hal_common::peripherals! { | |||
| 106 | P0_15, | 108 | P0_15, |
| 107 | P0_16, | 109 | P0_16, |
| 108 | P0_17, | 110 | P0_17, |
| 111 | #[cfg(feature="reset-pin-as-gpio")] | ||
| 109 | P0_18, | 112 | P0_18, |
| 110 | P0_19, | 113 | P0_19, |
| 111 | P0_20, | 114 | P0_20, |
| @@ -168,6 +171,7 @@ impl_pin!(P0_14, 0, 14); | |||
| 168 | impl_pin!(P0_15, 0, 15); | 171 | impl_pin!(P0_15, 0, 15); |
| 169 | impl_pin!(P0_16, 0, 16); | 172 | impl_pin!(P0_16, 0, 16); |
| 170 | impl_pin!(P0_17, 0, 17); | 173 | impl_pin!(P0_17, 0, 17); |
| 174 | #[cfg(feature = "reset-pin-as-gpio")] | ||
| 171 | impl_pin!(P0_18, 0, 18); | 175 | impl_pin!(P0_18, 0, 18); |
| 172 | impl_pin!(P0_19, 0, 19); | 176 | impl_pin!(P0_19, 0, 19); |
| 173 | impl_pin!(P0_20, 0, 20); | 177 | impl_pin!(P0_20, 0, 20); |
diff --git a/embassy-nrf/src/chips/nrf52832.rs b/embassy-nrf/src/chips/nrf52832.rs index 152dad4e3..c2b23fc5b 100644 --- a/embassy-nrf/src/chips/nrf52832.rs +++ b/embassy-nrf/src/chips/nrf52832.rs | |||
| @@ -10,6 +10,8 @@ pub const FORCE_COPY_BUFFER_SIZE: usize = 255; | |||
| 10 | // nrf52832xxAB = 256kb | 10 | // nrf52832xxAB = 256kb |
| 11 | pub const FLASH_SIZE: usize = 512 * 1024; | 11 | pub const FLASH_SIZE: usize = 512 * 1024; |
| 12 | 12 | ||
| 13 | pub const RESET_PIN: u32 = 21; | ||
| 14 | |||
| 13 | embassy_hal_common::peripherals! { | 15 | embassy_hal_common::peripherals! { |
| 14 | // RTC | 16 | // RTC |
| 15 | RTC0, | 17 | RTC0, |
| @@ -109,7 +111,9 @@ embassy_hal_common::peripherals! { | |||
| 109 | P0_06, | 111 | P0_06, |
| 110 | P0_07, | 112 | P0_07, |
| 111 | P0_08, | 113 | P0_08, |
| 114 | #[cfg(feature = "nfc-pins-as-gpio")] | ||
| 112 | P0_09, | 115 | P0_09, |
| 116 | #[cfg(feature = "nfc-pins-as-gpio")] | ||
| 113 | P0_10, | 117 | P0_10, |
| 114 | P0_11, | 118 | P0_11, |
| 115 | P0_12, | 119 | P0_12, |
| @@ -121,6 +125,7 @@ embassy_hal_common::peripherals! { | |||
| 121 | P0_18, | 125 | P0_18, |
| 122 | P0_19, | 126 | P0_19, |
| 123 | P0_20, | 127 | P0_20, |
| 128 | #[cfg(feature="reset-pin-as-gpio")] | ||
| 124 | P0_21, | 129 | P0_21, |
| 125 | P0_22, | 130 | P0_22, |
| 126 | P0_23, | 131 | P0_23, |
| @@ -178,7 +183,9 @@ impl_pin!(P0_05, 0, 5); | |||
| 178 | impl_pin!(P0_06, 0, 6); | 183 | impl_pin!(P0_06, 0, 6); |
| 179 | impl_pin!(P0_07, 0, 7); | 184 | impl_pin!(P0_07, 0, 7); |
| 180 | impl_pin!(P0_08, 0, 8); | 185 | impl_pin!(P0_08, 0, 8); |
| 186 | #[cfg(feature = "nfc-pins-as-gpio")] | ||
| 181 | impl_pin!(P0_09, 0, 9); | 187 | impl_pin!(P0_09, 0, 9); |
| 188 | #[cfg(feature = "nfc-pins-as-gpio")] | ||
| 182 | impl_pin!(P0_10, 0, 10); | 189 | impl_pin!(P0_10, 0, 10); |
| 183 | impl_pin!(P0_11, 0, 11); | 190 | impl_pin!(P0_11, 0, 11); |
| 184 | impl_pin!(P0_12, 0, 12); | 191 | impl_pin!(P0_12, 0, 12); |
| @@ -190,6 +197,7 @@ impl_pin!(P0_17, 0, 17); | |||
| 190 | impl_pin!(P0_18, 0, 18); | 197 | impl_pin!(P0_18, 0, 18); |
| 191 | impl_pin!(P0_19, 0, 19); | 198 | impl_pin!(P0_19, 0, 19); |
| 192 | impl_pin!(P0_20, 0, 20); | 199 | impl_pin!(P0_20, 0, 20); |
| 200 | #[cfg(feature = "reset-pin-as-gpio")] | ||
| 193 | impl_pin!(P0_21, 0, 21); | 201 | impl_pin!(P0_21, 0, 21); |
| 194 | impl_pin!(P0_22, 0, 22); | 202 | impl_pin!(P0_22, 0, 22); |
| 195 | impl_pin!(P0_23, 0, 23); | 203 | impl_pin!(P0_23, 0, 23); |
diff --git a/embassy-nrf/src/chips/nrf52833.rs b/embassy-nrf/src/chips/nrf52833.rs index a99ca6343..95f71ade7 100644 --- a/embassy-nrf/src/chips/nrf52833.rs +++ b/embassy-nrf/src/chips/nrf52833.rs | |||
| @@ -6,6 +6,8 @@ pub const FORCE_COPY_BUFFER_SIZE: usize = 512; | |||
| 6 | 6 | ||
| 7 | pub const FLASH_SIZE: usize = 512 * 1024; | 7 | pub const FLASH_SIZE: usize = 512 * 1024; |
| 8 | 8 | ||
| 9 | pub const RESET_PIN: u32 = 18; | ||
| 10 | |||
| 9 | embassy_hal_common::peripherals! { | 11 | embassy_hal_common::peripherals! { |
| 10 | // USB | 12 | // USB |
| 11 | USBD, | 13 | USBD, |
| @@ -111,7 +113,9 @@ embassy_hal_common::peripherals! { | |||
| 111 | P0_06, | 113 | P0_06, |
| 112 | P0_07, | 114 | P0_07, |
| 113 | P0_08, | 115 | P0_08, |
| 116 | #[cfg(feature = "nfc-pins-as-gpio")] | ||
| 114 | P0_09, | 117 | P0_09, |
| 118 | #[cfg(feature = "nfc-pins-as-gpio")] | ||
| 115 | P0_10, | 119 | P0_10, |
| 116 | P0_11, | 120 | P0_11, |
| 117 | P0_12, | 121 | P0_12, |
| @@ -120,6 +124,7 @@ embassy_hal_common::peripherals! { | |||
| 120 | P0_15, | 124 | P0_15, |
| 121 | P0_16, | 125 | P0_16, |
| 122 | P0_17, | 126 | P0_17, |
| 127 | #[cfg(feature="reset-pin-as-gpio")] | ||
| 123 | P0_18, | 128 | P0_18, |
| 124 | P0_19, | 129 | P0_19, |
| 125 | P0_20, | 130 | P0_20, |
| @@ -207,7 +212,9 @@ impl_pin!(P0_05, 0, 5); | |||
| 207 | impl_pin!(P0_06, 0, 6); | 212 | impl_pin!(P0_06, 0, 6); |
| 208 | impl_pin!(P0_07, 0, 7); | 213 | impl_pin!(P0_07, 0, 7); |
| 209 | impl_pin!(P0_08, 0, 8); | 214 | impl_pin!(P0_08, 0, 8); |
| 215 | #[cfg(feature = "nfc-pins-as-gpio")] | ||
| 210 | impl_pin!(P0_09, 0, 9); | 216 | impl_pin!(P0_09, 0, 9); |
| 217 | #[cfg(feature = "nfc-pins-as-gpio")] | ||
| 211 | impl_pin!(P0_10, 0, 10); | 218 | impl_pin!(P0_10, 0, 10); |
| 212 | impl_pin!(P0_11, 0, 11); | 219 | impl_pin!(P0_11, 0, 11); |
| 213 | impl_pin!(P0_12, 0, 12); | 220 | impl_pin!(P0_12, 0, 12); |
| @@ -216,6 +223,7 @@ impl_pin!(P0_14, 0, 14); | |||
| 216 | impl_pin!(P0_15, 0, 15); | 223 | impl_pin!(P0_15, 0, 15); |
| 217 | impl_pin!(P0_16, 0, 16); | 224 | impl_pin!(P0_16, 0, 16); |
| 218 | impl_pin!(P0_17, 0, 17); | 225 | impl_pin!(P0_17, 0, 17); |
| 226 | #[cfg(feature = "reset-pin-as-gpio")] | ||
| 219 | impl_pin!(P0_18, 0, 18); | 227 | impl_pin!(P0_18, 0, 18); |
| 220 | impl_pin!(P0_19, 0, 19); | 228 | impl_pin!(P0_19, 0, 19); |
| 221 | impl_pin!(P0_20, 0, 20); | 229 | impl_pin!(P0_20, 0, 20); |
diff --git a/embassy-nrf/src/chips/nrf52840.rs b/embassy-nrf/src/chips/nrf52840.rs index 4f7463be2..5e7479e88 100644 --- a/embassy-nrf/src/chips/nrf52840.rs +++ b/embassy-nrf/src/chips/nrf52840.rs | |||
| @@ -6,6 +6,8 @@ pub const FORCE_COPY_BUFFER_SIZE: usize = 512; | |||
| 6 | 6 | ||
| 7 | pub const FLASH_SIZE: usize = 1024 * 1024; | 7 | pub const FLASH_SIZE: usize = 1024 * 1024; |
| 8 | 8 | ||
| 9 | pub const RESET_PIN: u32 = 18; | ||
| 10 | |||
| 9 | embassy_hal_common::peripherals! { | 11 | embassy_hal_common::peripherals! { |
| 10 | // USB | 12 | // USB |
| 11 | USBD, | 13 | USBD, |
| @@ -117,7 +119,9 @@ embassy_hal_common::peripherals! { | |||
| 117 | P0_06, | 119 | P0_06, |
| 118 | P0_07, | 120 | P0_07, |
| 119 | P0_08, | 121 | P0_08, |
| 122 | #[cfg(feature = "nfc-pins-as-gpio")] | ||
| 120 | P0_09, | 123 | P0_09, |
| 124 | #[cfg(feature = "nfc-pins-as-gpio")] | ||
| 121 | P0_10, | 125 | P0_10, |
| 122 | P0_11, | 126 | P0_11, |
| 123 | P0_12, | 127 | P0_12, |
| @@ -126,6 +130,7 @@ embassy_hal_common::peripherals! { | |||
| 126 | P0_15, | 130 | P0_15, |
| 127 | P0_16, | 131 | P0_16, |
| 128 | P0_17, | 132 | P0_17, |
| 133 | #[cfg(feature="reset-pin-as-gpio")] | ||
| 129 | P0_18, | 134 | P0_18, |
| 130 | P0_19, | 135 | P0_19, |
| 131 | P0_20, | 136 | P0_20, |
| @@ -212,7 +217,9 @@ impl_pin!(P0_05, 0, 5); | |||
| 212 | impl_pin!(P0_06, 0, 6); | 217 | impl_pin!(P0_06, 0, 6); |
| 213 | impl_pin!(P0_07, 0, 7); | 218 | impl_pin!(P0_07, 0, 7); |
| 214 | impl_pin!(P0_08, 0, 8); | 219 | impl_pin!(P0_08, 0, 8); |
| 220 | #[cfg(feature = "nfc-pins-as-gpio")] | ||
| 215 | impl_pin!(P0_09, 0, 9); | 221 | impl_pin!(P0_09, 0, 9); |
| 222 | #[cfg(feature = "nfc-pins-as-gpio")] | ||
| 216 | impl_pin!(P0_10, 0, 10); | 223 | impl_pin!(P0_10, 0, 10); |
| 217 | impl_pin!(P0_11, 0, 11); | 224 | impl_pin!(P0_11, 0, 11); |
| 218 | impl_pin!(P0_12, 0, 12); | 225 | impl_pin!(P0_12, 0, 12); |
| @@ -221,6 +228,7 @@ impl_pin!(P0_14, 0, 14); | |||
| 221 | impl_pin!(P0_15, 0, 15); | 228 | impl_pin!(P0_15, 0, 15); |
| 222 | impl_pin!(P0_16, 0, 16); | 229 | impl_pin!(P0_16, 0, 16); |
| 223 | impl_pin!(P0_17, 0, 17); | 230 | impl_pin!(P0_17, 0, 17); |
| 231 | #[cfg(feature = "reset-pin-as-gpio")] | ||
| 224 | impl_pin!(P0_18, 0, 18); | 232 | impl_pin!(P0_18, 0, 18); |
| 225 | impl_pin!(P0_19, 0, 19); | 233 | impl_pin!(P0_19, 0, 19); |
| 226 | impl_pin!(P0_20, 0, 20); | 234 | impl_pin!(P0_20, 0, 20); |
diff --git a/embassy-nrf/src/chips/nrf5340_app.rs b/embassy-nrf/src/chips/nrf5340_app.rs index c600fcbf6..2b8b55e77 100644 --- a/embassy-nrf/src/chips/nrf5340_app.rs +++ b/embassy-nrf/src/chips/nrf5340_app.rs | |||
| @@ -304,7 +304,9 @@ embassy_hal_common::peripherals! { | |||
| 304 | // GPIO port 0 | 304 | // GPIO port 0 |
| 305 | P0_00, | 305 | P0_00, |
| 306 | P0_01, | 306 | P0_01, |
| 307 | #[cfg(feature = "nfc-pins-as-gpio")] | ||
| 307 | P0_02, | 308 | P0_02, |
| 309 | #[cfg(feature = "nfc-pins-as-gpio")] | ||
| 308 | P0_03, | 310 | P0_03, |
| 309 | P0_04, | 311 | P0_04, |
| 310 | P0_05, | 312 | P0_05, |
| @@ -393,7 +395,9 @@ impl_timer!(TIMER2, TIMER2, TIMER2); | |||
| 393 | 395 | ||
| 394 | impl_pin!(P0_00, 0, 0); | 396 | impl_pin!(P0_00, 0, 0); |
| 395 | impl_pin!(P0_01, 0, 1); | 397 | impl_pin!(P0_01, 0, 1); |
| 398 | #[cfg(feature = "nfc-pins-as-gpio")] | ||
| 396 | impl_pin!(P0_02, 0, 2); | 399 | impl_pin!(P0_02, 0, 2); |
| 400 | #[cfg(feature = "nfc-pins-as-gpio")] | ||
| 397 | impl_pin!(P0_03, 0, 3); | 401 | impl_pin!(P0_03, 0, 3); |
| 398 | impl_pin!(P0_04, 0, 4); | 402 | impl_pin!(P0_04, 0, 4); |
| 399 | impl_pin!(P0_05, 0, 5); | 403 | impl_pin!(P0_05, 0, 5); |
