Smart Remote 3 nRF52 v1.2
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
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 // Accelerometer drivers:
36 #define CONFIG_ACC_DRIVER_LIS3DH 1
37 #define CONFIG_ACC_DRIVER_BMA222E 2
38 
39 // IR TX protocols:
40 #define CONFIG_IR_TX_PROTOCOL_SIRC 1
41 #define CONFIG_IR_TX_PROTOCOL_NEC 2
42 
43 // CLI Logger interface:
44 #define CONFIG_CL_INTERFACE_LOGGER 1
45 #define CONFIG_CL_INTERFACE_CLI 2
46 
47 // Connection bandwidth tag:
48 #define CONFIG_CONN_CFG_HIGH_BW_TAG 1
49 
50 // Fetch board configuration:
51 #if defined(CONFIG_BOARD_NRF52832_PCA20023)
52 # define CONFIG_BOARD "PCA20023 (Smart Remote 3 nRF52832 Product Example)"
53 # include "sr3_config_nrf52832_pca20023.h"
54 #elif defined(CONFIG_BOARD_NRF52832_PCA63519)
55 # define CONFIG_BOARD "PCA63519 (Smart Remote 3 nRF52832 Shield)"
56 # include "sr3_config_nrf52832_pca63519.h"
57 #elif defined(CONFIG_BOARD_NRF52832_CUSTOM)
58 # define CONFIG_BOARD "CUSTOM (Smart Remote 3 nRF52832 Custom version)"
59 # include "sr3_config_nrf52832_custom.h"
60 #elif defined(CONFIG_BOARD_NRF52810_PCA20031)
61 # define CONFIG_BOARD "PCA20031 (Smart Remote 3 nRF52810 Product Example)"
62 # include "sr3_config_nrf52810_pca20031.h"
63 #elif defined(CONFIG_BOARD_NRF52810_CUSTOM)
64 # define CONFIG_BOARD "CUSTOM (Smart Remote 3 nRF52810 Custom version)"
65 # include "sr3_config_nrf52810_custom.h"
66 #else
67 # define CONFIG_BOARD "UNKNOWN"
68 # error "CONFIG_BOARD_xxx is not defined!"
69 #endif
70 
71 // Fetch audio configuration:
72 #include "sr3_config_audio.h"
73 
74 // Obtain Logger configuration.
75 #define CONFIG_LOG_RTT_ENABLED (CONFIG_CL_RTT_ENABLED && \
76  ((CONFIG_CL_RTT_INTERFACE == CONFIG_CL_INTERFACE_LOGGER) || \
77  ((CONFIG_CL_RTT_INTERFACE == CONFIG_CL_INTERFACE_CLI) && CONFIG_CLI_RTT_LOG_BACKEND_ENABLED)))
78 
79 #define CONFIG_LOG_UART_ENABLED (CONFIG_CL_UART_ENABLED && \
80  ((CONFIG_CL_UART_INTERFACE == CONFIG_CL_INTERFACE_LOGGER) || \
81  ((CONFIG_CL_UART_INTERFACE == CONFIG_CL_INTERFACE_CLI) && CONFIG_CLI_UART_LOG_BACKEND_ENABLED)))
82 
83 #define CONFIG_LOG_CLI_ENABLED ((((CONFIG_CL_RTT_INTERFACE == CONFIG_CL_INTERFACE_CLI) && CONFIG_CLI_RTT_LOG_BACKEND_ENABLED) && CONFIG_CL_RTT_ENABLED) || \
84  (((CONFIG_CL_UART_INTERFACE == CONFIG_CL_INTERFACE_CLI) && CONFIG_CLI_UART_LOG_BACKEND_ENABLED) && CONFIG_CL_UART_ENABLED) || \
85  (CONFIG_CLI_BLE_LOG_BACKEND_ENABLED && CONFIG_CLI_BLE_ENABLED))
86 
87 #define CONFIG_LOG_ENABLED (CONFIG_LOG_RTT_ENABLED || CONFIG_LOG_UART_ENABLED || CONFIG_LOG_CLI_ENABLED)
88 
89 #if CONFIG_LOG_CLI_ENABLED
90 # define CONFIG_LOG_COMPILED_IN_LEVEL CONFIG_LOG_LEVEL_CAP
91 #elif (CONFIG_LOG_RTT_ENABLED && CONFIG_LOG_UART_ENABLED)
92 # define CONFIG_LOG_COMPILED_IN_LEVEL MIN(CONFIG_LOG_LEVEL_CAP, MAX(CONFIG_LOG_RTT_SEVERITY, CONFIG_LOG_UART_SEVERITY))
93 #elif CONFIG_LOG_RTT_ENABLED
94 # define CONFIG_LOG_COMPILED_IN_LEVEL MIN(CONFIG_LOG_LEVEL_CAP, CONFIG_LOG_RTT_SEVERITY)
95 #elif CONFIG_LOG_UART_ENABLED
96 # define CONFIG_LOG_COMPILED_IN_LEVEL MIN(CONFIG_LOG_LEVEL_CAP, CONFIG_LOG_UART_SEVERITY)
97 #else
98 # define CONFIG_LOG_COMPILED_IN_LEVEL 0
99 #endif
100 
101 // Obtain CLI configuration.
102 #define CONFIG_CLI_RTT_ENABLED ((CONFIG_CL_RTT_INTERFACE == CONFIG_CL_INTERFACE_CLI) && CONFIG_CL_RTT_ENABLED)
103 #define CONFIG_CLI_UART_ENABLED ((CONFIG_CL_UART_INTERFACE == CONFIG_CL_INTERFACE_CLI) && CONFIG_CL_UART_ENABLED)
104 
105 #define CONFIG_CLI_ENABLED (CONFIG_CLI_BLE_ENABLED || CONFIG_CLI_RTT_ENABLED || CONFIG_CLI_UART_ENABLED)
106 
107 // Obtain PWM configuration.
108 #define CONFIG_PWM_INSTANCES_NEEDED (CONFIG_IR_TX_ENABLED + CONFIG_BUZZER_ENABLED)
109 #define CONFIG_PWM0_ENABLED (CONFIG_PWM_INSTANCES_NEEDED > 0)
110 #define CONFIG_PWM1_ENABLED (CONFIG_PWM_INSTANCES_NEEDED > 1)
111 
112 #if CONFIG_IR_TX_ENABLED && CONFIG_BUZZER_ENABLED
113 # ifdef NRF52810_XXAA
114 # error "The nRF52810 does not have enough PWM instances for the selected configuration!"
115 # endif
116 # define CONFIG_IR_TX_PWM_INSTANCE NRF_DRV_PWM_INSTANCE(0)
117 # define CONFIG_BUZZER_PWM_INSTANCE NRF_DRV_PWM_INSTANCE(1)
118 #elif CONFIG_BUZZER_ENABLED
119 # define CONFIG_BUZZER_PWM_INSTANCE NRF_DRV_PWM_INSTANCE(0)
120 #else
121 # define CONFIG_IR_TX_PWM_INSTANCE NRF_DRV_PWM_INSTANCE(0)
122 #endif
123 
124 // Obtain TWI configuration.
125 #define CONFIG_TWI0_ENABLED ((CONFIG_ACC_ENABLED && (CONFIG_ACC_TWI_BUS == 0)) || \
126  (CONFIG_GYRO_ENABLED && (CONFIG_GYRO_TWI_BUS == 0)) || \
127  (CONFIG_KBD_ENABLED && (CONFIG_KBD_DRIVER == CONFIG_KBD_DRIVER_SX1509) && (CONFIG_KBD_TWI_BUS == 0)) || \
128  (CONFIG_TOUCHPAD_ENABLED && (CONFIG_TOUCHPAD_TWI_BUS == 0)))
129 
130 #define CONFIG_TWI1_ENABLED ((CONFIG_ACC_ENABLED && (CONFIG_ACC_TWI_BUS == 1)) || \
131  (CONFIG_GYRO_ENABLED && (CONFIG_GYRO_TWI_BUS == 1)) || \
132  (CONFIG_KBD_ENABLED && (CONFIG_KBD_DRIVER == CONFIG_KBD_DRIVER_SX1509) && (CONFIG_KBD_TWI_BUS == 1)) || \
133  (CONFIG_TOUCHPAD_ENABLED && (CONFIG_TOUCHPAD_TWI_BUS == 1)))
134 
135 // Obtain stack guard configuration.
136 #if CONFIG_STACK_GUARD_ENABLED
137 # define CONFIG_STACK_SIZE_GUARD (1 << CONFIG_STACK_GUARD_CONFIG_SIZE)
138 #else /* !NRF_STACK_GUARD_ENABLED */
139 # define CONFIG_STACK_SIZE_GUARD 0
140 #endif /* NRF_STACK_GUARD_ENABLED */
141 
142 #define CONFIG_STACK_SIZE (CONFIG_STACK_SIZE_BASE + CONFIG_STACK_SIZE_AUDIO + CONFIG_STACK_SIZE_GUARD)
143 
144 // Check if dynamic BLE address management is needed.
145 #define CONFIG_BLE_DYNAMIC_ADDR_ENABLED (CONFIG_SEC_BOND && (CONFIG_MAX_BONDS > 1) && CONFIG_CHANGE_ADDRESS)
146 
147 // Check if peer rank management is needed.
148 #define CONFIG_BLE_PEER_RANK_ENABLED (CONFIG_SEC_BOND && (CONFIG_MAX_BONDS > 1))
149 
150 // Check if RNG monitor is needed.
151 #define CONFIG_RNG_MONITOR_ENABLED (CONFIG_SEC_LESC_PAIRING || CONFIG_NFC_ENABLED)
152 
153 // Fetch HID configuration:
154 #include "sr3_config_hid.h"
155 
156 // Fetch IR configuration:
157 #include "sr3_config_ir.h"
158 
159 // Fetch buzzer configuration:
160 #include "sr3_config_buzzer.h"
161 
162 #endif /* _SR3_CONFIG_H */