@@ -15,40 +15,26 @@ import {
15
15
} from '@nordicsemiconductor/pc-nrfconnect-shared' ;
16
16
17
17
import BoardControllerConfigDefinition from '../../common/boards/BoardControllerConfigDefinition' ;
18
- import nrf54h20json from '../../common/boards/nrf_PCA10145_54H20.json' ;
19
- import nrf9161v091json from '../../common/boards/nrf_PCA10153_0.9.1_9161.json' ;
20
- import nrf9161v0100json from '../../common/boards/nrf_PCA10153_0.10.0_9161.json' ;
21
- import nrf54l15v020json from '../../common/boards/nrf_PCA10156_0.2.0.json' ;
22
- import nrf54l15v030json from '../../common/boards/nrf_PCA10156_0.3.0.json' ;
23
- import nrf9151v020json from '../../common/boards/nrf_PCA10171_0.2.0_9151.json' ;
24
18
import ConfigSlideSelector from '../ConfigSlideSelector/ConfigSlideSelector' ;
25
19
import ConfigSwitch from '../ConfigSwitch/ConfigSwitch' ;
26
20
import { getBoardRevisionSemver } from '../Device/deviceSlice' ;
27
21
import VCOMConfiguration from '../VCOMConfiguration/VCOMConfiguration' ;
28
22
import VoltageConfiguration from '../VoltageConfiguration/VoltageConfiguration' ;
29
23
import {
24
+ getDefaultConfig ,
30
25
getHardwareConfig ,
31
26
setConfig ,
27
+ setDefaultConfig ,
32
28
setPmicConfig ,
33
29
} from './boardControllerConfigSlice' ;
30
+ import { getBoardDefinition } from './boardDefinitions' ;
34
31
import { BoardConfiguration } from './hardwareConfiguration' ;
35
32
36
33
interface BoardControllerProps {
37
34
active : boolean ;
38
35
}
39
36
40
37
const BoardController = ( { active } : BoardControllerProps ) => {
41
- const typednrf9161json =
42
- nrf9161v0100json as BoardControllerConfigDefinition ;
43
- const typednrf9161v091 = nrf9161v091json as BoardControllerConfigDefinition ;
44
- const typednrf54l15v020json =
45
- nrf54l15v020json as BoardControllerConfigDefinition ;
46
- const typednrf54l15v030json =
47
- nrf54l15v030json as BoardControllerConfigDefinition ;
48
- const typednrf54h20json = nrf54h20json as BoardControllerConfigDefinition ;
49
- const typednrf9151v020json =
50
- nrf9151v020json as BoardControllerConfigDefinition ;
51
-
52
38
const dispatch = useDispatch ( ) ;
53
39
54
40
useEffect ( ( ) => {
@@ -65,74 +51,36 @@ const BoardController = ({ active }: BoardControllerProps) => {
65
51
const device : Device | undefined = useSelector ( selectedDevice ) ;
66
52
const boardRevision = useSelector ( getBoardRevisionSemver ) ;
67
53
const hardwareConfig = useSelector ( getHardwareConfig ) ;
54
+ const defaultConfig = useSelector ( getDefaultConfig ) ;
68
55
69
56
if ( device ) {
70
57
logDeviceVersion ( device , boardRevision ) ;
71
58
72
- switch ( device ?. devkit ?. boardVersion ) {
73
- case 'PCA10156' :
74
- // nRF54L15
75
- if ( boardRevision === '0.3.0' ) {
76
- setInitialConfig (
77
- dispatch ,
78
- hardwareConfig ,
79
- typednrf54l15v030json
80
- ) ;
81
- return BuildGui ( typednrf54l15v030json ) ;
82
- }
59
+ const definition = getBoardDefinition ( device , boardRevision ) ;
83
60
84
- // Default is revision 0.2.0 or 0.2.1
85
- setInitialConfig (
61
+ if ( definition . boardControllerConfigDefinition ) {
62
+ if ( ! defaultConfig . pins && ! defaultConfig . pmicPorts ) {
63
+ loadDefaultConfig (
86
64
dispatch ,
87
- hardwareConfig ,
88
- typednrf54l15v020json
65
+ definition . boardControllerConfigDefinition
89
66
) ;
90
- return BuildGui ( typednrf54l15v020json ) ;
91
-
92
- case 'PCA10153' :
93
- // nRF9161
94
- if ( boardRevision === '0.10.0' ) {
95
- setInitialConfig (
96
- dispatch ,
97
- hardwareConfig ,
98
- typednrf9161json
99
- ) ;
100
- return BuildGui ( typednrf9161json ) ;
101
- }
102
- if ( boardRevision === '0.9.0' || boardRevision === '0.9.1' ) {
103
- setInitialConfig (
104
- dispatch ,
105
- hardwareConfig ,
106
- typednrf9161v091
107
- ) ;
108
- return BuildGui ( typednrf9161v091 ) ;
109
- }
110
- if ( ! boardRevision ) {
111
- return Spinner ( ) ;
112
- }
113
-
114
- return UnrecognizedBoardRevision ( ) ;
115
-
116
- case 'PCA10145' :
117
- // nRF54H20
118
- setInitialConfig ( dispatch , hardwareConfig , typednrf54h20json ) ;
119
- return BuildGui ( typednrf54h20json ) ;
67
+ }
68
+ setInitialConfig ( dispatch , hardwareConfig , defaultConfig ) ;
69
+ return BuildGui ( definition . boardControllerConfigDefinition ) ;
70
+ }
120
71
121
- case 'PCA10171' :
122
- // nRF9151
123
- setInitialConfig (
124
- dispatch ,
125
- hardwareConfig ,
126
- typednrf9151v020json
127
- ) ;
128
- return BuildGui ( typednrf9151v020json ) ;
72
+ if ( definition . controlFlag ?. noRevision ) {
73
+ return Spinner ( ) ;
74
+ }
129
75
130
- default :
131
- return UnrecognizedBoard ( ) ;
76
+ if ( definition . controlFlag ?. unknownRevision ) {
77
+ return UnrecognizedBoardRevision ( ) ;
132
78
}
133
- } else {
134
- return NoBoardSelected ( ) ;
79
+
80
+ return UnrecognizedBoard ( ) ;
135
81
}
82
+
83
+ return NoBoardSelected ( ) ;
136
84
} ;
137
85
138
86
const NoBoardSelected = ( ) => (
@@ -149,7 +97,16 @@ const NoBoardSelected = () => (
149
97
target = "_blank"
150
98
rel = "noreferrer"
151
99
>
152
- nRF9161DK (Rev. 0.9.0 and later)
100
+ nRF9161-DK (Rev. 0.9.0 and later)
101
+ </ a >
102
+ </ li >
103
+ < li >
104
+ < a
105
+ href = "https://www.nordicsemi.com/Products/nRF9151"
106
+ target = "_blank"
107
+ rel = "noreferrer"
108
+ >
109
+ nRF9151-DK
153
110
</ a >
154
111
</ li >
155
112
</ ul >
@@ -172,7 +129,7 @@ const UnrecognizedBoardRevision = () => (
172
129
< div >
173
130
< p >
174
131
This revision of the development kit is not supported. Update to the
175
- latest version of nRF Connect Board Configurator // FIXME
132
+ latest version of nRF Connect Board Configurator
176
133
</ p >
177
134
</ div >
178
135
) ;
@@ -247,13 +204,13 @@ const BuildGui = (boardJson: BoardControllerConfigDefinition) => {
247
204
) ;
248
205
} ;
249
206
250
- function setInitialConfig (
207
+ function loadDefaultConfig (
251
208
dispatch : AppDispatch ,
252
- hardwareConfig : BoardConfiguration ,
253
209
boardJson : BoardControllerConfigDefinition
254
210
) {
255
211
if ( ! boardJson ?. defaults ) {
256
212
logger . warn ( 'No defaults found in board definition JSON' ) ;
213
+ return ;
257
214
}
258
215
259
216
// Create defaults map
@@ -267,14 +224,32 @@ function setInitialConfig(
267
224
] )
268
225
) ;
269
226
227
+ dispatch (
228
+ setDefaultConfig ( {
229
+ defaultConfig : {
230
+ pins : defaultConfig ,
231
+ pmicPorts : defaultPmicConfig ,
232
+ } ,
233
+ } )
234
+ ) ;
235
+ }
236
+
237
+ function setInitialConfig (
238
+ dispatch : AppDispatch ,
239
+ hardwareConfig : BoardConfiguration ,
240
+ defaultBoardConfig : BoardConfiguration
241
+ ) {
242
+ const { pins : defaultPinConfig , pmicPorts : defaultPmicConfig } =
243
+ defaultBoardConfig ;
244
+
270
245
// Merge with currently read hardware config
271
246
const mergedPinConfig = new Map ( [
272
- ...defaultConfig ,
247
+ ...( defaultPinConfig || [ ] ) ,
273
248
...( hardwareConfig . pins || [ ] ) ,
274
249
] ) ;
275
250
276
251
const mergedPmicConfig = new Map ( [
277
- ...defaultPmicConfig ,
252
+ ...( defaultPmicConfig || [ ] ) ,
278
253
...( hardwareConfig . pmicPorts || [ ] ) ,
279
254
] ) ;
280
255
0 commit comments