You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ra...@apache.org on 2020/08/29 07:04:01 UTC

[incubator-nuttx] 02/06: nrf52_radio.h: condition various definitions depending on specific chip

This is an automated email from the ASF dual-hosted git repository.

raiden00 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git

commit 84cdde1a8603533bb45c8d68b50836d16a7d45e3
Author: Matias N <ma...@protobits.dev>
AuthorDate: Sat Aug 22 17:09:46 2020 -0300

    nrf52_radio.h: condition various definitions depending on specific chip
---
 arch/arm/src/nrf52/hardware/nrf52_radio.h | 26 +++++++++++++++++++++++---
 1 file changed, 23 insertions(+), 3 deletions(-)

diff --git a/arch/arm/src/nrf52/hardware/nrf52_radio.h b/arch/arm/src/nrf52/hardware/nrf52_radio.h
index b28d00f..12b7b6f 100644
--- a/arch/arm/src/nrf52/hardware/nrf52_radio.h
+++ b/arch/arm/src/nrf52/hardware/nrf52_radio.h
@@ -103,7 +103,7 @@
 #define NRF52_RADIO_PREFIX0_OFFSET           0x0524 /* Prefixes bytes for logical addresses 0-3 */
 #define NRF52_RADIO_PREFIX1_OFFSET           0x0528 /* Prefixes bytes for logical addresses 4-7 */
 #define NRF52_RADIO_TXADDRESS_OFFSET         0x052c /* Transmit address select */
-#define NRF52_RADIO_RXADDRESS_OFFSET         0x0530 /* Receive address select */
+#define NRF52_RADIO_RXADDRESSES_OFFSET       0x0530 /* Receive address select */
 #define NRF52_RADIO_CRCCNF_OFFSET            0x0534 /* CRC configuration */
 #define NRF52_RADIO_CRCPOLY_OFFSET           0x0538 /* CRC polynomial */
 #define NRF52_RADIO_CRCINIT_OFFSET           0x053c /* CRC initial value */
@@ -180,7 +180,7 @@
 #define NRF52_RADIO_PREFIX0           (NRF52_RADIO_BASE + NRF52_RADIO_PREFIX0_OFFSET)
 #define NRF52_RADIO_PREFIX1           (NRF52_RADIO_BASE + NRF52_RADIO_PREFIX1_OFFSET)
 #define NRF52_RADIO_TXADDRESS         (NRF52_RADIO_BASE + NRF52_RADIO_TXADDRESS_OFFSET)
-#define NRF52_RADIO_RXADDRESS         (NRF52_RADIO_BASE + NRF52_RADIO_RXADDRESS_OFFSET)
+#define NRF52_RADIO_RXADDRESSES       (NRF52_RADIO_BASE + NRF52_RADIO_RXADDRESSES_OFFSET)
 #define NRF52_RADIO_CRCCNF            (NRF52_RADIO_BASE + NRF52_RADIO_CRCCNF_OFFSET)
 #define NRF52_RADIO_CRCPOLY           (NRF52_RADIO_BASE + NRF52_RADIO_CRCPOLY_OFFSET)
 #define NRF52_RADIO_CRCINIT           (NRF52_RADIO_BASE + NRF52_RADIO_CRCINIT_OFFSET)
@@ -436,11 +436,18 @@
 #define RADIO_MODE_MASK                   (0xf << RADIO_MODE_SHIFT)
 #define RADIO_MODE_NRF1MBIT               (0x00 << RADIO_MODE_SHIFT) /* 0: 1 Mbit/s Nordic proprietary radio mode */
 #define RADIO_MODE_NRF2MBIT               (0x01 << RADIO_MODE_SHIFT) /* 1: 2 Mbit/s Nordic proprietary radio mode */
+
+#if defined(CONFIG_ARCH_CHIP_NRF52832)
+#define RADIO_MODE_NRF250KBIT             (0x02 << RADIO_MODE_SHIFT) /* 2: 250 kbit/s Nordic proprietary radio mode (deprecated) */
+#define RADIO_MODE_BLE1MBIT               (0x03 << RADIO_MODE_SHIFT) /* 3: 1 Mbit/s BLE */
+#define RADIO_MODE_BLE2MBIT               (0x04 << RADIO_MODE_SHIFT) /* 4: 2 Mbit/s BLE */
+#elif defined(CONFIG_ARCH_CHIP_NRF52840)
 #define RADIO_MODE_BLE1MBIT               (0x03 << RADIO_MODE_SHIFT) /* 3: 1 Mbit/s BLE */
 #define RADIO_MODE_BLE2MBIT               (0x04 << RADIO_MODE_SHIFT) /* 4: 2 Mbit/s BLE */
 #define RADIO_MODE_BLELR125KBIT           (0x05 << RADIO_MODE_SHIFT) /* 5: Long range 125 kbit/s TX, 125 kbit/s and 500 kbit/s RX */
 #define RADIO_MODE_BLELR500KBIT           (0x06 << RADIO_MODE_SHIFT) /* 6: Long range 500 kbit/s TX, 125 kbit/s and 500 kbit/s RX */
 #define RADIO_MODE_IEEE802154             (0x0f << RADIO_MODE_SHIFT) /* 15: IEEE 802.15.4-2006 250 kbit/s */
+#endif
 
 /* PCNF0 Register */
 
@@ -454,20 +461,27 @@
 #define RADIO_PCNF0_S1LEN_MASK            (0xf << RADIO_PCNF0_S1LEN_SHIFT)
 #define RADIO_PCNF0_S1LEN_MAX             (0xf)
 #define RADIO_PCNF0_S1INCL                (1 << 20) /* Bit 20: Include or exclude S1 field in RAM */
+
+#ifdef CONFIG_ARCH_CHIP_NRF52840
 #define RADIO_PCNF0_CILEN_SHIFT           (22)      /* Bits 22-23: Length of code indicator - long range */
 #define RADIO_PCNF0_CILEN_MASK            (0x3 << RADIO_PCNF0_CILEN_SHIFT)
 #define RADIO_PCNF0_CILEN_MAX             (0x3)
+#endif
+
 #define RADIO_PCNF0_PLEN_SHIFT            (24)      /* Bits 24-25: Length of preamble on air */
 #define RADIO_PCNF0_PLEN_MASK             (0x3 << RADIO_PCNF0_PLEN_SHIFT)
 #  define RADIO_PCNF0_PLEN_8BIT           (0 << RADIO_PCNF0_PLEN_SHIFT)
 #  define RADIO_PCNF0_PLEN_16BIT          (1 << RADIO_PCNF0_PLEN_SHIFT)
 #  define RADIO_PCNF0_PLEN_32BITZ         (2 << RADIO_PCNF0_PLEN_SHIFT)
 #  define RADIO_PCNF0_PLEN_LONGRANGE      (3 << RADIO_PCNF0_PLEN_SHIFT)
+
+#ifdef CONFIG_ARCH_CHIP_NRF52840
 #define RADIO_PCNF0_CRCINC_SHIFT          (26)      /* Bit 26: Indicates if LENGTH field contains CRC */
 #define RADIO_PCNF0_CRCINC                (1 << RADIO_PCNF0_CRCINC_SHIFT)
 #define RADIO_PCNF0_TERMLEN_SHIFT         (29)      /* Bits 29-30: Length of TERM field in Long Range operation */
 #define RADIO_PCNF0_TERMLEN_MASK          (0x3 << RADIO_PCNF0_TERMLEN_SHIFT)
 #define RADIO_PCNF0_TERMLEN_MAX           (0x3)
+#endif
 
 /* PCNF1 Register */
 
@@ -506,10 +520,16 @@
 #  define RADIO_CRCCNF_LEN_2              (2 << RADIO_CRCCNF_LEN_SHIFT)
 #  define RADIO_CRCCNF_LEN_3              (3 << RADIO_CRCCNF_LEN_SHIFT)
 #define RADIO_CRCCNF_SKIPADDR_SHIFT       (8)       /* Bit 8-9: Include or exclude packet address field out of CRC calculation */
-#define RADIO_CRCCNF_SKIPADDR_MASK        (0 << RADIO_CRCCNF_SKIPADDR_SHIFT)
+#if defined(CONFIG_ARCH_CHIP_NRF52832)
+#  define RADIO_CRCCNF_SKIPADDR_MASK      (0x1 << RADIO_CRCCNF_SKIPADDR_SHIFT)
+#  define RADIO_CRCCNF_SKIPADDR_INCL      (0 << RADIO_CRCCNF_SKIPADDR_SHIFT)
+#  define RADIO_CRCCNF_SKIPADDR_SKIP      (1 << RADIO_CRCCNF_SKIPADDR_SHIFT)
+#elif defined(CONFIG_ARCH_CHIP_NRF52840)
+#  define RADIO_CRCCNF_SKIPADDR_MASK      (0x3 << RADIO_CRCCNF_SKIPADDR_SHIFT)
 #  define RADIO_CRCCNF_SKIPADDR_INCL      (1 << RADIO_CRCCNF_SKIPADDR_SHIFT)
 #  define RADIO_CRCCNF_SKIPADDR_SKIP      (2 << RADIO_CRCCNF_SKIPADDR_SHIFT)
 #  define RADIO_CRCCNF_SKIPADDR_IEEE      (3 << RADIO_CRCCNF_SKIPADDR_SHIFT)
+#endif
 
 /* CRCPOLY Register */