aboutsummaryrefslogtreecommitdiff
path: root/embassy-nrf/src/chips
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2023-01-23 01:48:35 +0100
committerDario Nieuwenhuis <[email protected]>2023-02-20 01:28:45 +0100
commit3f88bf6f9b998e209c6bfe860930fc82516f3f9c (patch)
tree7fb3b3adb3353e0c609796086eea6fdd32ca2ca5 /embassy-nrf/src/chips
parente3f8020c3bdf726dfa451b5b190f27191507a18f (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.rs4
-rw-r--r--embassy-nrf/src/chips/nrf52810.rs4
-rw-r--r--embassy-nrf/src/chips/nrf52811.rs4
-rw-r--r--embassy-nrf/src/chips/nrf52820.rs4
-rw-r--r--embassy-nrf/src/chips/nrf52832.rs8
-rw-r--r--embassy-nrf/src/chips/nrf52833.rs8
-rw-r--r--embassy-nrf/src/chips/nrf52840.rs8
-rw-r--r--embassy-nrf/src/chips/nrf5340_app.rs4
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
7pub const FLASH_SIZE: usize = 192 * 1024; 7pub const FLASH_SIZE: usize = 192 * 1024;
8 8
9pub const RESET_PIN: u32 = 21;
10
9embassy_hal_common::peripherals! { 11embassy_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);
162impl_pin!(P0_18, 0, 18); 165impl_pin!(P0_18, 0, 18);
163impl_pin!(P0_19, 0, 19); 166impl_pin!(P0_19, 0, 19);
164impl_pin!(P0_20, 0, 20); 167impl_pin!(P0_20, 0, 20);
168#[cfg(feature = "reset-pin-as-gpio")]
165impl_pin!(P0_21, 0, 21); 169impl_pin!(P0_21, 0, 21);
166impl_pin!(P0_22, 0, 22); 170impl_pin!(P0_22, 0, 22);
167impl_pin!(P0_23, 0, 23); 171impl_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
7pub const FLASH_SIZE: usize = 192 * 1024; 7pub const FLASH_SIZE: usize = 192 * 1024;
8 8
9pub const RESET_PIN: u32 = 21;
10
9embassy_hal_common::peripherals! { 11embassy_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);
170impl_pin!(P0_18, 0, 18); 173impl_pin!(P0_18, 0, 18);
171impl_pin!(P0_19, 0, 19); 174impl_pin!(P0_19, 0, 19);
172impl_pin!(P0_20, 0, 20); 175impl_pin!(P0_20, 0, 20);
176#[cfg(feature = "reset-pin-as-gpio")]
173impl_pin!(P0_21, 0, 21); 177impl_pin!(P0_21, 0, 21);
174impl_pin!(P0_22, 0, 22); 178impl_pin!(P0_22, 0, 22);
175impl_pin!(P0_23, 0, 23); 179impl_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
7pub const FLASH_SIZE: usize = 192 * 1024; 7pub const FLASH_SIZE: usize = 192 * 1024;
8 8
9pub const RESET_PIN: u32 = 21;
10
9embassy_hal_common::peripherals! { 11embassy_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);
172impl_pin!(P0_18, 0, 18); 175impl_pin!(P0_18, 0, 18);
173impl_pin!(P0_19, 0, 19); 176impl_pin!(P0_19, 0, 19);
174impl_pin!(P0_20, 0, 20); 177impl_pin!(P0_20, 0, 20);
178#[cfg(feature = "reset-pin-as-gpio")]
175impl_pin!(P0_21, 0, 21); 179impl_pin!(P0_21, 0, 21);
176impl_pin!(P0_22, 0, 22); 180impl_pin!(P0_22, 0, 22);
177impl_pin!(P0_23, 0, 23); 181impl_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
7pub const FLASH_SIZE: usize = 256 * 1024; 7pub const FLASH_SIZE: usize = 256 * 1024;
8 8
9pub const RESET_PIN: u32 = 18;
10
9embassy_hal_common::peripherals! { 11embassy_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);
168impl_pin!(P0_15, 0, 15); 171impl_pin!(P0_15, 0, 15);
169impl_pin!(P0_16, 0, 16); 172impl_pin!(P0_16, 0, 16);
170impl_pin!(P0_17, 0, 17); 173impl_pin!(P0_17, 0, 17);
174#[cfg(feature = "reset-pin-as-gpio")]
171impl_pin!(P0_18, 0, 18); 175impl_pin!(P0_18, 0, 18);
172impl_pin!(P0_19, 0, 19); 176impl_pin!(P0_19, 0, 19);
173impl_pin!(P0_20, 0, 20); 177impl_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
11pub const FLASH_SIZE: usize = 512 * 1024; 11pub const FLASH_SIZE: usize = 512 * 1024;
12 12
13pub const RESET_PIN: u32 = 21;
14
13embassy_hal_common::peripherals! { 15embassy_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);
178impl_pin!(P0_06, 0, 6); 183impl_pin!(P0_06, 0, 6);
179impl_pin!(P0_07, 0, 7); 184impl_pin!(P0_07, 0, 7);
180impl_pin!(P0_08, 0, 8); 185impl_pin!(P0_08, 0, 8);
186#[cfg(feature = "nfc-pins-as-gpio")]
181impl_pin!(P0_09, 0, 9); 187impl_pin!(P0_09, 0, 9);
188#[cfg(feature = "nfc-pins-as-gpio")]
182impl_pin!(P0_10, 0, 10); 189impl_pin!(P0_10, 0, 10);
183impl_pin!(P0_11, 0, 11); 190impl_pin!(P0_11, 0, 11);
184impl_pin!(P0_12, 0, 12); 191impl_pin!(P0_12, 0, 12);
@@ -190,6 +197,7 @@ impl_pin!(P0_17, 0, 17);
190impl_pin!(P0_18, 0, 18); 197impl_pin!(P0_18, 0, 18);
191impl_pin!(P0_19, 0, 19); 198impl_pin!(P0_19, 0, 19);
192impl_pin!(P0_20, 0, 20); 199impl_pin!(P0_20, 0, 20);
200#[cfg(feature = "reset-pin-as-gpio")]
193impl_pin!(P0_21, 0, 21); 201impl_pin!(P0_21, 0, 21);
194impl_pin!(P0_22, 0, 22); 202impl_pin!(P0_22, 0, 22);
195impl_pin!(P0_23, 0, 23); 203impl_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
7pub const FLASH_SIZE: usize = 512 * 1024; 7pub const FLASH_SIZE: usize = 512 * 1024;
8 8
9pub const RESET_PIN: u32 = 18;
10
9embassy_hal_common::peripherals! { 11embassy_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);
207impl_pin!(P0_06, 0, 6); 212impl_pin!(P0_06, 0, 6);
208impl_pin!(P0_07, 0, 7); 213impl_pin!(P0_07, 0, 7);
209impl_pin!(P0_08, 0, 8); 214impl_pin!(P0_08, 0, 8);
215#[cfg(feature = "nfc-pins-as-gpio")]
210impl_pin!(P0_09, 0, 9); 216impl_pin!(P0_09, 0, 9);
217#[cfg(feature = "nfc-pins-as-gpio")]
211impl_pin!(P0_10, 0, 10); 218impl_pin!(P0_10, 0, 10);
212impl_pin!(P0_11, 0, 11); 219impl_pin!(P0_11, 0, 11);
213impl_pin!(P0_12, 0, 12); 220impl_pin!(P0_12, 0, 12);
@@ -216,6 +223,7 @@ impl_pin!(P0_14, 0, 14);
216impl_pin!(P0_15, 0, 15); 223impl_pin!(P0_15, 0, 15);
217impl_pin!(P0_16, 0, 16); 224impl_pin!(P0_16, 0, 16);
218impl_pin!(P0_17, 0, 17); 225impl_pin!(P0_17, 0, 17);
226#[cfg(feature = "reset-pin-as-gpio")]
219impl_pin!(P0_18, 0, 18); 227impl_pin!(P0_18, 0, 18);
220impl_pin!(P0_19, 0, 19); 228impl_pin!(P0_19, 0, 19);
221impl_pin!(P0_20, 0, 20); 229impl_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
7pub const FLASH_SIZE: usize = 1024 * 1024; 7pub const FLASH_SIZE: usize = 1024 * 1024;
8 8
9pub const RESET_PIN: u32 = 18;
10
9embassy_hal_common::peripherals! { 11embassy_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);
212impl_pin!(P0_06, 0, 6); 217impl_pin!(P0_06, 0, 6);
213impl_pin!(P0_07, 0, 7); 218impl_pin!(P0_07, 0, 7);
214impl_pin!(P0_08, 0, 8); 219impl_pin!(P0_08, 0, 8);
220#[cfg(feature = "nfc-pins-as-gpio")]
215impl_pin!(P0_09, 0, 9); 221impl_pin!(P0_09, 0, 9);
222#[cfg(feature = "nfc-pins-as-gpio")]
216impl_pin!(P0_10, 0, 10); 223impl_pin!(P0_10, 0, 10);
217impl_pin!(P0_11, 0, 11); 224impl_pin!(P0_11, 0, 11);
218impl_pin!(P0_12, 0, 12); 225impl_pin!(P0_12, 0, 12);
@@ -221,6 +228,7 @@ impl_pin!(P0_14, 0, 14);
221impl_pin!(P0_15, 0, 15); 228impl_pin!(P0_15, 0, 15);
222impl_pin!(P0_16, 0, 16); 229impl_pin!(P0_16, 0, 16);
223impl_pin!(P0_17, 0, 17); 230impl_pin!(P0_17, 0, 17);
231#[cfg(feature = "reset-pin-as-gpio")]
224impl_pin!(P0_18, 0, 18); 232impl_pin!(P0_18, 0, 18);
225impl_pin!(P0_19, 0, 19); 233impl_pin!(P0_19, 0, 19);
226impl_pin!(P0_20, 0, 20); 234impl_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
394impl_pin!(P0_00, 0, 0); 396impl_pin!(P0_00, 0, 0);
395impl_pin!(P0_01, 0, 1); 397impl_pin!(P0_01, 0, 1);
398#[cfg(feature = "nfc-pins-as-gpio")]
396impl_pin!(P0_02, 0, 2); 399impl_pin!(P0_02, 0, 2);
400#[cfg(feature = "nfc-pins-as-gpio")]
397impl_pin!(P0_03, 0, 3); 401impl_pin!(P0_03, 0, 3);
398impl_pin!(P0_04, 0, 4); 402impl_pin!(P0_04, 0, 4);
399impl_pin!(P0_05, 0, 5); 403impl_pin!(P0_05, 0, 5);