| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526 |
- # Licensed to the Apache Software Foundation (ASF) under one
- # or more contributor license agreements. See the NOTICE file
- # distributed with this work for additional information
- # regarding copyright ownership. The ASF licenses this file
- # to you under the Apache License, Version 2.0 (the
- # "License"); you may not use this file except in compliance
- # with the License. You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing,
- # software distributed under the License is distributed on an
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- # KIND, either express or implied. See the License for the
- # specific language governing permissions and limitations
- # under the License.
- #
- syscfg.defs:
- MCU_TARGET:
- description: >
- Specifies target MCU, shall be set by BSP.
- value:
- restrictions:
- - $notnull
- choices:
- - nRF52810
- - nRF52811
- - nRF52832
- - nRF52840
- MCU_FLASH_MIN_WRITE_SIZE:
- description: >
- Specifies the required alignment for internal flash writes.
- Used internally by the newt tool.
- value: 1
- MCU_DCDC_ENABLED:
- description: >
- Specifies whether or not to enable DC/DC regulator. This requires
- external circuitry so is defined to be zero by default and
- expected to be overridden by the BSP.
- value: 0
- MCU_HFCLK_SOURCE:
- description: >
- Selected source for high frequency clock (HFCLK).
- Selecting HFXO will still mostly use the HFINT but will switch to HFXO when requested (BLE, certain timers, etc...)
- Selecting HFINT should only be used in the case where an external 32MHz crystal oscillator is not present.
- value: HFXO
- choices:
- - HFXO
- - HFINT
- restrictions:
- - '(MCU_HFCLK_SOURCE == "HFXO") || (MCU_LFCLK_SOURCE != "LFSYNTH")'
- MCU_LFCLK_SOURCE:
- description: >
- Selected source for low frequency clock (LFCLK).
- value:
- choices:
- - LFRC # 32.768 kHz RC oscillator
- - LFXO # 32.768 kHz crystal oscillator
- - LFSYNTH # 32.768 kHz synthesized from HFCLK
- MCU_I2C_RECOVERY_DELAY_USEC:
- description: >
- Time to wait for activity on SCL line after triggering start task
- before restarting TWI controller. This is to recover from state
- where controller is unresponsive due to glitch on I2C bus.
- Note: Default value seems to work fine, but may need to be tuned.
- value: 100
- MCU_BUS_DRIVER_I2C_USE_TWIM:
- description: >
- Enables usage of i2c_nrf52_twim bus driver for I2C.
- If disabled, standard i2c_hal driver is used.
- value: 0
- MCU_GPIO_USE_PORT_EVENT:
- description: >
- When enabled, hal_gpio will use GPIOTE PORT event instead of PIN
- events for interrupts. This mode may be less accurate (i.e. pulse
- length needs to be longer in order to be detected) but it reduces
- power consumption since it does not require HFCLK to be running.
- Refer to nRF52xxx Product Specification document for more details.
- value: 0
- MCU_DEBUG_IGNORE_BKPT:
- description: >
- When enabled, asm(bkpt) will be ignored. If not set, it will hit
- the breakpoint wherever it gets called, For example, reset and crash
- value: 0
- # MCU peripherals definitions
- I2C_0:
- description: 'Enable nRF52xxx I2C (TWI) 0'
- value: 0
- restrictions:
- - '!(SPI_0_MASTER && ((MCU_TARGET == "nrf52832") || (MCU_TARGET == "nrf52840")))'
- - '!(SPI_0_SLAVE && ((MCU_TARGET == "nrf52832") || (MCU_TARGET == "nrf52840")))'
- - '!(SPI_1_MASTER && (MCU_TARGET == "nrf52811"))'
- - '!(SPI_1_SLAVE && (MCU_TARGET == "nrf52811"))'
- I2C_0_PIN_SCL:
- description: 'SCL pin for I2C_0'
- value: ''
- I2C_0_PIN_SDA:
- description: 'SDA pin for I2C_0'
- value: ''
- I2C_0_FREQ_KHZ:
- description: 'Frequency [kHz] for I2C_0'
- value: 100
- I2C_1:
- description: 'Enable nRF52xxx I2C (TWI) 1'
- value: 0
- restrictions:
- - "!SPI_1_MASTER"
- - "!SPI_1_SLAVE"
- I2C_1_PIN_SCL:
- description: 'SCL pin for I2C_1'
- value: ''
- I2C_1_PIN_SDA:
- description: 'SDA pin for I2C_1'
- value: ''
- I2C_1_FREQ_KHZ:
- description: 'Frequency [kHz] for I2C_1'
- value: 100
- SPI_0_MASTER:
- description: 'Enable nRF52xxx SPI Master 0'
- value: 0
- restrictions:
- - "!SPI_0_SLAVE"
- - '!(I2C_0 && ((MCU_TARGET == "nrf52832") || (MCU_TARGET == "nrf52840")))'
- SPI_0_MASTER_PIN_SCK:
- description: 'SCK pin for SPI_0_MASTER'
- value: ''
- SPI_0_MASTER_PIN_MOSI:
- description: 'MOSI pin for SPI_0_MASTER'
- value: ''
- SPI_0_MASTER_PIN_MISO:
- description: 'MISO pin for SPI_0_MASTER'
- value: ''
- SPI_0_SLAVE:
- description: 'Enable nRF52xxx SPI Slave 0'
- value: 0
- restrictions:
- - "!SPI_0_MASTER"
- - '!(I2C_0 && ((MCU_TARGET == "nrf52832") || (MCU_TARGET == "nrf52840")))'
- SPI_0_SLAVE_PIN_SCK:
- description: 'SCK pin for SPI_0_SLAVE'
- value: ''
- SPI_0_SLAVE_PIN_MOSI:
- description: 'MOSI pin for SPI_0_SLAVE'
- value: ''
- SPI_0_SLAVE_PIN_MISO:
- description: 'MISO pin for SPI_0_SLAVE'
- value: ''
- SPI_0_SLAVE_PIN_SS:
- description: 'SS pin for SPI_0_SLAVE'
- value: ''
- SPI_1_MASTER:
- description: 'Enable nRF52xxx SPI Master 1'
- value: 0
- restrictions:
- - "!SPI_1_SLAVE"
- - '!(I2C_1 && ((MCU_TARGET == "nrf52832") || (MCU_TARGET == "nrf52840")))'
- - '!(I2C_0 && ((MCU_TARGET == "nrf52811")))'
- SPI_1_MASTER_PIN_SCK:
- description: 'SCK pin for SPI_1_MASTER'
- value: ''
- SPI_1_MASTER_PIN_MOSI:
- description: 'MOSI pin for SPI_1_MASTER'
- value: ''
- SPI_1_MASTER_PIN_MISO:
- description: 'MISO pin for SPI_1_MASTER'
- value: ''
- SPI_1_SLAVE:
- description: 'Enable nRF52xxx SPI Slave 1'
- value: 0
- restrictions:
- - "!SPI_1_MASTER"
- - '!(I2C_1 && ((MCU_TARGET == "nrf52832") || (MCU_TARGET == "nrf52840")))'
- - '!(I2C_0 && ((MCU_TARGET == "nrf52811")))'
- SPI_1_SLAVE_PIN_SCK:
- description: 'SCK pin for SPI_1_SLAVE'
- value: ''
- SPI_1_SLAVE_PIN_MOSI:
- description: 'MOSI pin for SPI_1_SLAVE'
- value: ''
- SPI_1_SLAVE_PIN_MISO:
- description: 'MISO pin for SPI_1_SLAVE'
- value: ''
- SPI_1_SLAVE_PIN_SS:
- description: 'SS pin for SPI_1_SLAVE'
- value: ''
- SPI_2_MASTER:
- description: 'Enable nRF52xxx SPI Master 2'
- value: 0
- restrictions:
- - "!SPI_2_SLAVE"
- SPI_2_MASTER_PIN_SCK:
- description: 'SCK pin for SPI_2_MASTER'
- value: ''
- SPI_2_MASTER_PIN_MOSI:
- description: 'MOSI pin for SPI_2_MASTER'
- value: ''
- SPI_2_MASTER_PIN_MISO:
- description: 'MISO pin for SPI_2_MASTER'
- value: ''
- SPI_2_SLAVE:
- description: 'Enable nRF52xxx SPI Slave 2'
- value: 0
- restrictions:
- - "!SPI_2_MASTER"
- SPI_2_SLAVE_PIN_SCK:
- description: 'SCK pin for SPI_2_SLAVE'
- value: ''
- SPI_2_SLAVE_PIN_MOSI:
- description: 'MOSI pin for SPI_2_SLAVE'
- value: ''
- SPI_2_SLAVE_PIN_MISO:
- description: 'MISO pin for SPI_2_SLAVE'
- value: ''
- SPI_2_SLAVE_PIN_SS:
- description: 'SS pin for SPI_2_SLAVE'
- value: ''
- SPI_3_MASTER:
- description: 'Enable nRF52xxx SPI Master 3'
- value: 0
- restrictions:
- - 'MCU_TARGET == "nRF52840" || !SPI_3_MASTER'
- SPI_3_MASTER_PIN_SCK:
- description: 'SCK pin for SPI_3_MASTER'
- value: ''
- SPI_3_MASTER_PIN_MOSI:
- description: 'MOSI pin for SPI_3_MASTER'
- value: ''
- SPI_3_MASTER_PIN_MISO:
- description: 'MISO pin for SPI_3_MASTER'
- value: ''
- ADC_0:
- description: 'Enable nRF52xxx ADC 0'
- value: 0
- ADC_0_REFMV_0:
- description: 'reference mV in AREF0 if used'
- value: 0
- PWM_0:
- description: 'Enable nRF52xxx PWM 0'
- value: 0
- PWM_1:
- description: 'Enable nRF52xxx PWM 1'
- value: 0
- PWM_2:
- description: 'Enable nRF52xxx PWM 2'
- value: 0
- PWM_3:
- description: 'Enable nRF52xxx PWM 3'
- value: 0
- restrictions:
- - 'MCU_TARGET == "nRF52840" || !PWM_3'
- TRNG:
- description: 'Enable nRF52xxx TRNG'
- value: 0
- CRYPTO:
- description: 'Enable nRF52xxx CRYPTO'
- value: 0
- UART_0:
- description: 'Enable nRF52xxx UART0'
- value: 1
- UART_0_PIN_TX:
- description: 'TX pin for UART0'
- value: ''
- UART_0_PIN_RX:
- description: 'RX pin for UART0'
- value: ''
- UART_0_PIN_RTS:
- description: 'RTS pin for UART0'
- value: -1
- UART_0_PIN_CTS:
- description: 'CTS pin for UART0'
- value: -1
- UART_1:
- description: 'Enable nRF52xxx UART1'
- value: 0
- restrictions:
- - 'MCU_TARGET == "nRF52840" || !UART_1'
- UART_1_PIN_TX:
- description: 'TX pin for UART1'
- value: ''
- UART_1_PIN_RX:
- description: 'RX pin for UART1'
- value: ''
- UART_1_PIN_RTS:
- description: 'RTS pin for UART1'
- value: -1
- UART_1_PIN_CTS:
- description: 'CTS pin for UART1'
- value: -1
- TEMP:
- description: 'Enable nRF52xxx internal temperature mesurement'
- value: 0
- TIMER_0:
- description: 'Enable nRF52xxx Timer 0'
- value: 1
- TIMER_1:
- description: 'Enable nRF52xxx Timer 1'
- value: 0
- TIMER_2:
- description: 'Enable nRF52xxx Timer 2'
- value: 0
- TIMER_3:
- description: 'Enable nRF52xxx Timer 3'
- value: 0
- TIMER_4:
- description: 'Enable nRF52xxx Timer 4'
- value: 0
- TIMER_5:
- description: 'Enable nRF52xxx RTC 0'
- value: 0
- QSPI_ENABLE:
- description: 'NRF52 QSPI'
- value: 0
- QSPI_READOC:
- description: >
- QSPI Command to use
- 0 - 0x09 Fast Read
- 1 - 0x3B Fast Read Dual Output
- 2 - 0xBB Fast Read Dual I/O
- 3 - 0x6B Fast Read Quad Output
- 4 - 0xEB Fast Read Quad I/O
- value: 0
- QSPI_WRITEOC:
- description: >
- QSPI Command to use
- 0 - 0x02 Page program
- 1 - 0xA2 Page program Dual Data
- 2 - 0x32 Page program Quad Data
- 3 - 0x38 Page program Quad I/O
- value: 0
- QSPI_ADDRMODE:
- description: 'Address lentgh 0=24 bits, 1=32 bits'
- value: 0
- QSPI_DPMCONFIG:
- description: 'Deep power mode enable'
- value: 0
- QSPI_SCK_DELAY:
- description: >
- Minimum amount of time that the CSN pin must stay high
- before it can go low again. Value is specified in number of 16
- MHz periods (62.5 ns).
- value: 0
- QSPI_SCK_FREQ:
- description: '32MHz clock divider (0-31). Clock = 32MHz / (1+divider)'
- value: 0
- QSPI_SPI_MODE:
- description: 'SPI 0=Mode0 or 1=Mode3'
- value: 0
- QSPI_FLASH_SECTOR_SIZE:
- description: 'QSPI sector size. In most cases it should be 4096.'
- value: 0
- QSPI_FLASH_PAGE_SIZE:
- description: >
- QSPI page size. Writes can only be performed to one page at a time.
- In most cases it should be 256.
- value: 0
- QSPI_FLASH_SECTOR_COUNT:
- description: 'QSPI sector count'
- value: -1
- QSPI_PIN_CS:
- description: 'CS pin for QSPI'
- value: -1
- QSPI_PIN_SCK:
- description: 'SCK pin for QSPI'
- value: -1
- QSPI_PIN_DIO0:
- description: 'DIO0 pin for QSPI'
- value: -1
- QSPI_PIN_DIO1:
- description: 'DIO1 pin for QSPI'
- value: -1
- QSPI_PIN_DIO2:
- description: 'DIO2 pin for QSPI'
- value: -1
- QSPI_PIN_DIO3:
- description: 'DIO3 pin for QSPI'
- value: -1
- NFC_PINS_AS_GPIO:
- description: 'Use NFC pins as GPIOs instead of NFC functionality'
- value: 1
- GPIO_AS_PIN_RESET:
- description: 'Enable pin reset'
- value: 0
- # Deprecated settings
- MCU_NRF52832:
- description: Use MCU_TARGET instead
- value: 0
- restrictions:
- - "!MCU_NRF52840"
- deprecated: 1
- MCU_NRF52840:
- description: Use MCU_TARGET instead
- value: 0
- restrictions:
- - "!MCU_NRF52832"
- deprecated: 1
- XTAL_32768:
- description: Use MCU_LFCLK_SOURCE instead
- value: 0
- restrictions:
- - "!XTAL_RC"
- - "!XTAL_32768_SYNTH"
- deprecated: 1
- XTAL_RC:
- description: Use MCU_LFCLK_SOURCE instead
- value: 0
- restrictions:
- - "!XTAL_32768"
- - "!XTAL_32768_SYNTH"
- deprecated: 1
- XTAL_32768_SYNTH:
- description: Use MCU_LFCLK_SOURCE instead
- value: 0
- restrictions:
- - "!XTAL_32768"
- - "!XTAL_RC"
- deprecated: 1
- MCU_NATIVE_USE_SIGNALS:
- description: >
- Whether to use POSIX signals to implement context switches. Valid
- values are as follows:
- 1: More correctness; less stability. The OS tick timer will
- cause a high-priority task to preempt a low-priority task.
- This causes stability issues because a task can be preempted
- while it is in the middle of a system call, potentially
- causing deadlock or memory corruption.
- 0: Less correctness; more stability. The OS tick timer only
- runs while the idle task is active. Therefore, a sleeping
- high-priority task will not preempt a low-priority task due
- to a timing event (e.g., delay or callout expired).
- However, this version of sim does not suffer from the
- stability issues that affect the "signals" implementation.
- Unit tests should use 1. Long-running sim processes should use 0.
- value: 1
- MCU_NATIVE:
- description: >
- Set to indicate that we are using native mcu.
- value: 1
- MCU_FLASH_STYLE_ST:
- description: Emulated flash layout is similar to one in STM32.
- value: 0
- restrictions:
- - "!MCU_FLASH_STYLE_NORDIC"
- MCU_FLASH_STYLE_NORDIC:
- description: >
- Emulated flash layout is similar to one in NRF51/2 and SAMD21.
- value: 1
- restrictions:
- - "!MCU_FLASH_STYLE_ST"
- MCU_UART_POLLER_PRIO:
- description: 'Priority of native UART poller task.'
- type: task_priority
- value: 1
- MCU_TIMER_POLLER_PRIO:
- description: 'Priority of native HAL timer task.'
- type: task_priority
- value: 0
- syscfg.vals:
- OS_TICKS_PER_SEC: 128
- syscfg.vals.MCU_NRF52832:
- MCU_TARGET: nRF52832
- syscfg.vals.MCU_NRF52840:
- MCU_TARGET: nRF52840
- syscfg.vals.XTAL_32768:
- MCU_LFCLK_SOURCE: LFXO
- syscfg.vals.XTAL_RC:
- MCU_LFCLK_SOURCE: LFRC
- syscfg.vals.XTAL_32768_SYNTH:
- MCU_LFCLK_SOURCE: LFSYNTH
- syscfg.restrictions:
- - "!I2C_0 || (I2C_0_PIN_SCL && I2C_0_PIN_SDA)"
- - "!I2C_1 || (I2C_1_PIN_SCL && I2C_1_PIN_SDA)"
- - "!SPI_0_MASTER || (SPI_0_MASTER_PIN_SCK && SPI_0_MASTER_PIN_MOSI && SPI_0_MASTER_PIN_MISO)"
- - "!SPI_1_MASTER || (SPI_1_MASTER_PIN_SCK && SPI_1_MASTER_PIN_MOSI && SPI_1_MASTER_PIN_MISO)"
- - "!SPI_2_MASTER || (SPI_2_MASTER_PIN_SCK && SPI_2_MASTER_PIN_MOSI && SPI_2_MASTER_PIN_MISO)"
- - "!SPI_3_MASTER || (SPI_3_MASTER_PIN_SCK && SPI_3_MASTER_PIN_MOSI && SPI_3_MASTER_PIN_MISO)"
- - "!SPI_0_SLAVE || (SPI_0_SLAVE_PIN_SCK && SPI_0_SLAVE_PIN_MOSI && SPI_0_SLAVE_PIN_MISO && SPI_0_SLAVE_PIN_SS)"
- - "!SPI_1_SLAVE || (SPI_1_SLAVE_PIN_SCK && SPI_1_SLAVE_PIN_MOSI && SPI_1_SLAVE_PIN_MISO && SPI_1_SLAVE_PIN_SS)"
- - "!SPI_2_SLAVE || (SPI_2_SLAVE_PIN_SCK && SPI_2_SLAVE_PIN_MOSI && SPI_2_SLAVE_PIN_MISO && SPI_2_SLAVE_PIN_SS)"
- - "!UART_0 || (UART_0_PIN_TX && UART_0_PIN_RX)"
- - "!UART_1 || (UART_1_PIN_TX && UART_1_PIN_RX)"
- - "(OS_TICKS_PER_SEC == 128 || OS_TICKS_PER_SEC == 256 || OS_TICKS_PER_SEC == 512 || OS_TICKS_PER_SEC == 1024)"
|