Smart Remote 3 nRF52 v1.2
sr3_config.h
1 /*$$$LICENCE_NORDIC_STANDARD<2016>$$$*/
2 
3 #ifndef _SR3_CONFIG_H
4 #define _SR3_CONFIG_H
5 
6 #include "nordic_common.h"
7 
8 // SoC configuration:
9 #define APP_TIMER_PRESCALER 0
10 #define IS_IO_VALID(io) (((io) & ~0x1F) == 0)
11 
12 // Audio codecs:
13 #define CONFIG_AUDIO_CODEC_ADPCM 1
14 #define CONFIG_AUDIO_CODEC_BV32FP 2
15 #define CONFIG_AUDIO_CODEC_OPUS 3
16 #define CONFIG_AUDIO_CODEC_SBC 4
17 
18 // OPUS modes:
19 #define CONFIG_OPUS_MODE_CELT (1 << 0)
20 #define CONFIG_OPUS_MODE_SILK (1 << 1)
21 #define CONFIG_OPUS_MODE_HYBRID (CONFIG_OPUS_MODE_CELT | CONFIG_OPUS_MODE_SILK)
22 
23 // SBC modes:
24 #define CONFIG_SBC_MODE_MSBC 0
25 #define CONFIG_SBC_MODE_CUSTOM 1
26 
27 // PDM microphones:
28 #define CONFIG_PDM_MIC_LEFT 1
29 #define CONFIG_PDM_MIC_RIGHT 2
30 
31 // Keyboard drivers:
32 #define CONFIG_KBD_DRIVER_GPIO 1
33 #define CONFIG_KBD_DRIVER_SX1509 2
34 
35 // IR TX protocols:
36 #define CONFIG_IR_TX_PROTOCOL_SIRC 1
37 #define CONFIG_IR_TX_PROTOCOL_NEC 2
38 
39 // CLI Logger interface:
40 #define CONFIG_CL_INTERFACE_LOGGER 1
41 #define CONFIG_CL_INTERFACE_CLI 2
42 
43 // Connection bandwidth tag:
44 #define CONFIG_CONN_CFG_HIGH_BW_TAG 1
45 
46 // Fetch board configuration:
47 #if defined(CONFIG_BOARD_NRF52832_PCA20023)
48 # define CONFIG_BOARD "PCA20023 (Smart Remote 3 nRF52832 Product Example)"
49 # include "sr3_config_nrf52832_pca20023.h"
50 #elif defined(CONFIG_BOARD_NRF52832_PCA63519)
51 # define CONFIG_BOARD "PCA63519 (Smart Remote 3 nRF52832 Shield)"
52 # include "sr3_config_nrf52832_pca63519.h"
53 #elif defined(CONFIG_BOARD_NRF52832_CUSTOM)
54 # define CONFIG_BOARD "CUSTOM (Smart Remote 3 nRF52832 Custom version)"
55 # include "sr3_config_nrf52832_custom.h"
56 #elif defined(CONFIG_BOARD_NRF52810_PCA20031)
57 # define CONFIG_BOARD "PCA20031 (Smart Remote 3 nRF52810 Product Example)"
58 # include "sr3_config_nrf52810_pca20031.h"
59 #elif defined(CONFIG_BOARD_NRF52810_CUSTOM)
60 # define CONFIG_BOARD "CUSTOM (Smart Remote 3 nRF52810 Custom version)"
61 # include "sr3_config_nrf52810_custom.h"
62 #else
63 # define CONFIG_BOARD "UNKNOWN"
64 # error "CONFIG_BOARD_xxx is not defined!"
65 #endif
66 
67 // Fetch audio configuration:
68 #include "sr3_config_audio.h"
69 
70 // Obtain Logger configuration.
71 #define CONFIG_LOG_RTT_ENABLED (CONFIG_CL_RTT_ENABLED && \
72  ((CONFIG_CL_RTT_INTERFACE == CONFIG_CL_INTERFACE_LOGGER) || \
73  ((CONFIG_CL_RTT_INTERFACE == CONFIG_CL_INTERFACE_CLI) && CONFIG_CLI_RTT_LOG_BACKEND_ENABLED)))
74 
75 #define CONFIG_LOG_UART_ENABLED (CONFIG_CL_UART_ENABLED && \
76  ((CONFIG_CL_UART_INTERFACE == CONFIG_CL_INTERFACE_LOGGER) || \
77  ((CONFIG_CL_UART_INTERFACE == CONFIG_CL_INTERFACE_CLI) && CONFIG_CLI_UART_LOG_BACKEND_ENABLED)))
78 
79 #define CONFIG_LOG_CLI_ENABLED ((((CONFIG_CL_RTT_INTERFACE == CONFIG_CL_INTERFACE_CLI) && CONFIG_CLI_RTT_LOG_BACKEND_ENABLED) && CONFIG_CL_RTT_ENABLED) || \
80  (((CONFIG_CL_UART_INTERFACE == CONFIG_CL_INTERFACE_CLI) && CONFIG_CLI_UART_LOG_BACKEND_ENABLED) && CONFIG_CL_UART_ENABLED) || \
81  (CONFIG_CLI_BLE_LOG_BACKEND_ENABLED && CONFIG_CLI_BLE_ENABLED))
82 
83 #define CONFIG_LOG_ENABLED (CONFIG_LOG_RTT_ENABLED || CONFIG_LOG_UART_ENABLED || CONFIG_LOG_CLI_ENABLED)
84 
85 #if CONFIG_LOG_CLI_ENABLED
86 # define CONFIG_LOG_COMPILED_IN_LEVEL CONFIG_LOG_LEVEL_CAP
87 #elif (CONFIG_LOG_RTT_ENABLED && CONFIG_LOG_UART_ENABLED)
88 # define CONFIG_LOG_COMPILED_IN_LEVEL MIN(CONFIG_LOG_LEVEL_CAP, MAX(CONFIG_LOG_RTT_SEVERITY, CONFIG_LOG_UART_SEVERITY))
89 #elif CONFIG_LOG_RTT_ENABLED
90 # define CONFIG_LOG_COMPILED_IN_LEVEL MIN(CONFIG_LOG_LEVEL_CAP, CONFIG_LOG_RTT_SEVERITY)
91 #elif CONFIG_LOG_UART_ENABLED
92 # define CONFIG_LOG_COMPILED_IN_LEVEL MIN(CONFIG_LOG_LEVEL_CAP, CONFIG_LOG_UART_SEVERITY)
93 #else
94 # define CONFIG_LOG_COMPILED_IN_LEVEL 0
95 #endif
96 
97 // Obtain CLI configuration.
98 #define CONFIG_CLI_RTT_ENABLED ((CONFIG_CL_RTT_INTERFACE == CONFIG_CL_INTERFACE_CLI) && CONFIG_CL_RTT_ENABLED)
99 #define CONFIG_CLI_UART_ENABLED ((CONFIG_CL_UART_INTERFACE == CONFIG_CL_INTERFACE_CLI) && CONFIG_CL_UART_ENABLED)
100 
101 #define CONFIG_CLI_ENABLED (CONFIG_CLI_BLE_ENABLED || CONFIG_CLI_RTT_ENABLED || CONFIG_CLI_UART_ENABLED)
102 
103 // Obtain PWM configuration.
104 #define CONFIG_PWM_INSTANCES_NEEDED (CONFIG_IR_TX_ENABLED + CONFIG_BUZZER_ENABLED)
105 #define CONFIG_PWM0_ENABLED (CONFIG_PWM_INSTANCES_NEEDED > 0)
106 #define CONFIG_PWM1_ENABLED (CONFIG_PWM_INSTANCES_NEEDED > 1)
107 
108 #if CONFIG_IR_TX_ENABLED && CONFIG_BUZZER_ENABLED
109 # ifdef NRF52810_XXAA
110 # error "The nRF52810 does not have enough PWM instances for the selected configuration!"
111 # endif
112 # define CONFIG_IR_TX_PWM_INSTANCE NRF_DRV_PWM_INSTANCE(0)
113 # define CONFIG_BUZZER_PWM_INSTANCE NRF_DRV_PWM_INSTANCE(1)
114 #elif CONFIG_BUZZER_ENABLED
115 # define CONFIG_BUZZER_PWM_INSTANCE NRF_DRV_PWM_INSTANCE(0)
116 #else
117 # define CONFIG_IR_TX_PWM_INSTANCE NRF_DRV_PWM_INSTANCE(0)
118 #endif
119 
120 // Obtain TWI configuration.
121 #define CONFIG_TWI0_ENABLED ((CONFIG_ACC_ENABLED && (CONFIG_ACC_TWI_BUS == 0)) || \
122  (CONFIG_GYRO_ENABLED && (CONFIG_GYRO_TWI_BUS == 0)) || \
123  (CONFIG_KBD_ENABLED && (CONFIG_KBD_DRIVER == CONFIG_KBD_DRIVER_SX1509) && (CONFIG_KBD_TWI_BUS == 0)) || \
124  (CONFIG_TOUCHPAD_ENABLED && (CONFIG_TOUCHPAD_TWI_BUS == 0)))
125 
126 #define CONFIG_TWI1_ENABLED ((CONFIG_ACC_ENABLED && (CONFIG_ACC_TWI_BUS == 1)) || \
127  (CONFIG_GYRO_ENABLED && (CONFIG_GYRO_TWI_BUS == 1)) || \
128  (CONFIG_KBD_ENABLED && (CONFIG_KBD_DRIVER == CONFIG_KBD_DRIVER_SX1509) && (CONFIG_KBD_TWI_BUS == 1)) || \
129  (CONFIG_TOUCHPAD_ENABLED && (CONFIG_TOUCHPAD_TWI_BUS == 1)))
130 
131 // Obtain stack guard configuration.
132 #if CONFIG_STACK_GUARD_ENABLED
133 # define CONFIG_STACK_SIZE_GUARD (1 << CONFIG_STACK_GUARD_CONFIG_SIZE)
134 #else /* !NRF_STACK_GUARD_ENABLED */
135 # define CONFIG_STACK_SIZE_GUARD 0
136 #endif /* NRF_STACK_GUARD_ENABLED */
137 
138 #define CONFIG_STACK_SIZE (CONFIG_STACK_SIZE_BASE + CONFIG_STACK_SIZE_AUDIO + CONFIG_STACK_SIZE_GUARD)
139 
140 // Check if dynamic BLE address management is needed.
141 #define CONFIG_BLE_DYNAMIC_ADDR_ENABLED (CONFIG_SEC_BOND && (CONFIG_MAX_BONDS > 1) && CONFIG_CHANGE_ADDRESS)
142 
143 // Check if peer rank management is needed.
144 #define CONFIG_BLE_PEER_RANK_ENABLED (CONFIG_SEC_BOND && (CONFIG_MAX_BONDS > 1))
145 
146 // Check if RNG monitor is needed.
147 #define CONFIG_RNG_MONITOR_ENABLED (CONFIG_SEC_LESC_PAIRING || CONFIG_NFC_ENABLED)
148 
149 // Fetch HID configuration:
150 #include "sr3_config_hid.h"
151 
152 // Fetch IR configuration:
153 #include "sr3_config_ir.h"
154 
155 // Fetch buzzer configuration:
156 #include "sr3_config_buzzer.h"
157 
158 #endif /* _SR3_CONFIG_H */

Documentation feedback | Developer Zone | Subscribe | Updated