arch: arm: nrf: add hardware description for nrf Kconfig files

Created NRF5x peripheral list that can be used to describe each
NRF5x SoC. Basing on this description Kconfig file can display
and allow to configure only these drivers that are available
for particular SoC.

Signed-off-by: Jakub Rzeszutko <jakub.rzeszutko@nordicsemi.no>
This commit is contained in:
Jakub Rzeszutko 2018-06-14 08:32:31 +02:00 committed by Carles Cufí
commit 1fa9d84332
4 changed files with 436 additions and 0 deletions

View file

@ -15,5 +15,7 @@ config SOC_FAMILY
string string
default "nordic_nrf" default "nordic_nrf"
source "arch/arm/soc/nordic_nrf/Kconfig.peripherals"
gsource "arch/arm/soc/nordic_nrf/*/Kconfig.soc" gsource "arch/arm/soc/nordic_nrf/*/Kconfig.soc"
endif # SOC_FAMILY_NRF endif # SOC_FAMILY_NRF

View file

@ -0,0 +1,207 @@
# Kconfig.peripherals - Nordic Semiconductor nRFx MCU peripherals list.
#
# Copyright (c) 2018 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: Apache-2.0
#
config HAS_HW_NRF_ACL
bool
config HAS_HW_NRF_ADC
bool
config HAS_HW_NRF_CC310
bool
config HAS_HW_NRF_CCM
bool
config HAS_HW_NRF_CLOCK
bool
config HAS_HW_NRF_COMP
bool
config HAS_HW_NRF_ECB
bool
config HAS_HW_NRF_EGU0
bool
config HAS_HW_NRF_EGU1
bool
config HAS_HW_NRF_EGU2
bool
config HAS_HW_NRF_EGU3
bool
config HAS_HW_NRF_EGU4
bool
config HAS_HW_NRF_EGU5
bool
config HAS_HW_NRF_GPIO0
bool
config HAS_HW_NRF_GPIO1
bool
config HAS_HW_NRF_GPIOTE
bool
config HAS_HW_NRF_I2S
bool
config HAS_HW_NRF_LPCOMP
bool
config HAS_HW_NRF_MWU
bool
config HAS_HW_NRF_NFCT
bool
config HAS_HW_NRF_PDM
bool
config HAS_HW_NRF_POWER
bool
config HAS_HW_NRF_PPI
bool
config HAS_HW_NRF_PWM0
bool
config HAS_HW_NRF_PWM1
bool
config HAS_HW_NRF_PWM2
bool
config HAS_HW_NRF_PWM3
bool
config HAS_HW_NRF_QDEC
bool
config HAS_HW_NRF_QSPI
bool
config HAS_HW_NRF_RNG
bool
config HAS_HW_NRF_RTC0
bool
config HAS_HW_NRF_RTC1
bool
config HAS_HW_NRF_RTC2
bool
config HAS_HW_NRF_SAADC
bool
config HAS_HW_NRF_SPI0
bool
config HAS_HW_NRF_SPI1
bool
config HAS_HW_NRF_SPI2
bool
config HAS_HW_NRF_SPIM0
bool
config HAS_HW_NRF_SPIM1
bool
config HAS_HW_NRF_SPIM2
bool
config HAS_HW_NRF_SPIM3
bool
config HAS_HW_NRF_SPIS0
bool
config HAS_HW_NRF_SPIS1
bool
config HAS_HW_NRF_SPIS2
bool
config HAS_HW_NRF_SWI0
bool
config HAS_HW_NRF_SWI1
bool
config HAS_HW_NRF_SWI2
bool
config HAS_HW_NRF_SWI3
bool
config HAS_HW_NRF_SWI4
bool
config HAS_HW_NRF_SWI5
bool
config HAS_HW_NRF_TEMP
bool
config HAS_HW_NRF_TIMER0
bool
config HAS_HW_NRF_TIMER1
bool
config HAS_HW_NRF_TIMER2
bool
config HAS_HW_NRF_TIMER3
bool
config HAS_HW_NRF_TIMER4
bool
config HAS_HW_NRF_TWI0
bool
config HAS_HW_NRF_TWI1
bool
config HAS_HW_NRF_TWIM0
bool
config HAS_HW_NRF_TWIM1
bool
config HAS_HW_NRF_TWIS0
bool
config HAS_HW_NRF_TWIS1
bool
config HAS_HW_NRF_UART0
bool
config HAS_HW_NRF_UARTE0
bool
config HAS_HW_NRF_UARTE1
bool
config HAS_HW_NRF_USBD
bool
config HAS_HW_NRF_WDT
bool

View file

@ -11,11 +11,77 @@ depends on SOC_SERIES_NRF51X
config SOC_NRF51822_QFAA config SOC_NRF51822_QFAA
bool "NRF51822_QFAA" bool "NRF51822_QFAA"
select HAS_HW_NRF_ADC
select HAS_HW_NRF_CCM
select HAS_HW_NRF_ECB
select HAS_HW_NRF_GPIO0
select HAS_HW_NRF_GPIOTE
select HAS_HW_NRF_LPCOMP
select HAS_HW_NRF_QDEC
select HAS_HW_NRF_PPI
select HAS_HW_NRF_RNG
select HAS_HW_NRF_RTC0
select HAS_HW_NRF_RTC1
select HAS_HW_NRF_SPI0
select HAS_HW_NRF_SPI1
select HAS_HW_NRF_SPIS1
select HAS_HW_NRF_TEMP
select HAS_HW_NRF_TIMER0
select HAS_HW_NRF_TIMER1
select HAS_HW_NRF_TIMER2
select HAS_HW_NRF_TWI0
select HAS_HW_NRF_TWI1
select HAS_HW_NRF_UART0
select HAS_HW_NRF_WDT
config SOC_NRF51822_QFAB config SOC_NRF51822_QFAB
bool "NRF51822_QFAB" bool "NRF51822_QFAB"
select HAS_HW_NRF_ADC
select HAS_HW_NRF_CCM
select HAS_HW_NRF_ECB
select HAS_HW_NRF_GPIO0
select HAS_HW_NRF_GPIOTE
select HAS_HW_NRF_LPCOMP
select HAS_HW_NRF_QDEC
select HAS_HW_NRF_PPI
select HAS_HW_NRF_RNG
select HAS_HW_NRF_RTC0
select HAS_HW_NRF_RTC1
select HAS_HW_NRF_SPI0
select HAS_HW_NRF_SPI1
select HAS_HW_NRF_SPIS1
select HAS_HW_NRF_TEMP
select HAS_HW_NRF_TIMER0
select HAS_HW_NRF_TIMER1
select HAS_HW_NRF_TIMER2
select HAS_HW_NRF_TWI0
select HAS_HW_NRF_TWI1
select HAS_HW_NRF_UART0
select HAS_HW_NRF_WDT
config SOC_NRF51822_QFAC config SOC_NRF51822_QFAC
bool "NRF51822_QFAC" bool "NRF51822_QFAC"
select HAS_HW_NRF_ADC
select HAS_HW_NRF_CCM
select HAS_HW_NRF_ECB
select HAS_HW_NRF_GPIO0
select HAS_HW_NRF_GPIOTE
select HAS_HW_NRF_LPCOMP
select HAS_HW_NRF_QDEC
select HAS_HW_NRF_PPI
select HAS_HW_NRF_RNG
select HAS_HW_NRF_RTC0
select HAS_HW_NRF_RTC1
select HAS_HW_NRF_SPI0
select HAS_HW_NRF_SPI1
select HAS_HW_NRF_SPIS1
select HAS_HW_NRF_TEMP
select HAS_HW_NRF_TIMER0
select HAS_HW_NRF_TIMER1
select HAS_HW_NRF_TIMER2
select HAS_HW_NRF_TWI0
select HAS_HW_NRF_TWI1
select HAS_HW_NRF_UART0
select HAS_HW_NRF_WDT
endchoice endchoice

View file

@ -5,13 +5,174 @@
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
config SOC_NRF52810
depends on SOC_SERIES_NRF52X
bool
select HAS_HW_NRF_CCM
select HAS_HW_NRF_CLOCK
select HAS_HW_NRF_COMP
select HAS_HW_NRF_ECB
select HAS_HW_NRF_EGU0
select HAS_HW_NRF_EGU1
select HAS_HW_NRF_GPIO0
select HAS_HW_NRF_GPIOTE
select HAS_HW_NRF_PDM
select HAS_HW_NRF_POWER
select HAS_HW_NRF_PPI
select HAS_HW_NRF_PWM0
select HAS_HW_NRF_QDEC
select HAS_HW_NRF_RNG
select HAS_HW_NRF_RTC0
select HAS_HW_NRF_RTC1
select HAS_HW_NRF_SAADC
select HAS_HW_NRF_SPIM0
select HAS_HW_NRF_SPIS0
select HAS_HW_NRF_SWI0
select HAS_HW_NRF_SWI1
select HAS_HW_NRF_SWI2
select HAS_HW_NRF_SWI3
select HAS_HW_NRF_SWI4
select HAS_HW_NRF_SWI5
select HAS_HW_NRF_TEMP
select HAS_HW_NRF_TIMER0
select HAS_HW_NRF_TIMER1
select HAS_HW_NRF_TIMER2
select HAS_HW_NRF_TWIM0
select HAS_HW_NRF_TWIS0
select HAS_HW_NRF_UARTE0
select HAS_HW_NRF_WDT
config SOC_NRF52832 config SOC_NRF52832
depends on SOC_SERIES_NRF52X depends on SOC_SERIES_NRF52X
bool bool
select HAS_HW_NRF_CCM
select HAS_HW_NRF_CLOCK
select HAS_HW_NRF_COMP
select HAS_HW_NRF_ECB
select HAS_HW_NRF_EGU0
select HAS_HW_NRF_EGU1
select HAS_HW_NRF_EGU2
select HAS_HW_NRF_EGU3
select HAS_HW_NRF_EGU4
select HAS_HW_NRF_EGU5
select HAS_HW_NRF_GPIO0
select HAS_HW_NRF_GPIOTE
select HAS_HW_NRF_I2S
select HAS_HW_NRF_LPCOMP
select HAS_HW_NRF_MWU
select HAS_HW_NRF_NFCT
select HAS_HW_NRF_PDM
select HAS_HW_NRF_POWER
select HAS_HW_NRF_PPI
select HAS_HW_NRF_PWM0
select HAS_HW_NRF_PWM1
select HAS_HW_NRF_PWM2
select HAS_HW_NRF_QDEC
select HAS_HW_NRF_RNG
select HAS_HW_NRF_RTC0
select HAS_HW_NRF_RTC1
select HAS_HW_NRF_RTC2
select HAS_HW_NRF_SAADC
select HAS_HW_NRF_SPI0
select HAS_HW_NRF_SPI1
select HAS_HW_NRF_SPI2
select HAS_HW_NRF_SPIM0
select HAS_HW_NRF_SPIM1
select HAS_HW_NRF_SPIM2
select HAS_HW_NRF_SPIS0
select HAS_HW_NRF_SPIS1
select HAS_HW_NRF_SPIS2
select HAS_HW_NRF_SWI0
select HAS_HW_NRF_SWI1
select HAS_HW_NRF_SWI2
select HAS_HW_NRF_SWI3
select HAS_HW_NRF_SWI4
select HAS_HW_NRF_SWI5
select HAS_HW_NRF_TEMP
select HAS_HW_NRF_TIMER0
select HAS_HW_NRF_TIMER1
select HAS_HW_NRF_TIMER2
select HAS_HW_NRF_TIMER3
select HAS_HW_NRF_TIMER4
select HAS_HW_NRF_TWI0
select HAS_HW_NRF_TWI1
select HAS_HW_NRF_TWIM0
select HAS_HW_NRF_TWIM1
select HAS_HW_NRF_TWIS0
select HAS_HW_NRF_TWIS1
select HAS_HW_NRF_UART0
select HAS_HW_NRF_UARTE0
select HAS_HW_NRF_WDT
config SOC_NRF52840 config SOC_NRF52840
depends on SOC_SERIES_NRF52X depends on SOC_SERIES_NRF52X
bool bool
select HAS_HW_NRF_ACL
select HAS_HW_NRF_CC310
select HAS_HW_NRF_CCM
select HAS_HW_NRF_CLOCK
select HAS_HW_NRF_COMP
select HAS_HW_NRF_ECB
select HAS_HW_NRF_EGU0
select HAS_HW_NRF_EGU1
select HAS_HW_NRF_EGU2
select HAS_HW_NRF_EGU3
select HAS_HW_NRF_EGU4
select HAS_HW_NRF_EGU5
select HAS_HW_NRF_GPIO0
select HAS_HW_NRF_GPIO1
select HAS_HW_NRF_GPIOTE
select HAS_HW_NRF_I2S
select HAS_HW_NRF_LPCOMP
select HAS_HW_NRF_MWU
select HAS_HW_NRF_NFCT
select HAS_HW_NRF_PDM
select HAS_HW_NRF_POWER
select HAS_HW_NRF_PPI
select HAS_HW_NRF_PWM0
select HAS_HW_NRF_PWM1
select HAS_HW_NRF_PWM2
select HAS_HW_NRF_PWM3
select HAS_HW_NRF_QDEC
select HAS_HW_NRF_QSPI
select HAS_HW_NRF_RNG
select HAS_HW_NRF_RTC0
select HAS_HW_NRF_RTC1
select HAS_HW_NRF_RTC2
select HAS_HW_NRF_SAADC
select HAS_HW_NRF_SPI0
select HAS_HW_NRF_SPI1
select HAS_HW_NRF_SPI2
select HAS_HW_NRF_SPIM0
select HAS_HW_NRF_SPIM1
select HAS_HW_NRF_SPIM2
select HAS_HW_NRF_SPIM3
select HAS_HW_NRF_SPIS0
select HAS_HW_NRF_SPIS1
select HAS_HW_NRF_SPIS2
select HAS_HW_NRF_SWI0
select HAS_HW_NRF_SWI1
select HAS_HW_NRF_SWI2
select HAS_HW_NRF_SWI3
select HAS_HW_NRF_SWI4
select HAS_HW_NRF_SWI5
select HAS_HW_NRF_TEMP
select HAS_HW_NRF_TIMER0
select HAS_HW_NRF_TIMER1
select HAS_HW_NRF_TIMER2
select HAS_HW_NRF_TIMER3
select HAS_HW_NRF_TIMER4
select HAS_HW_NRF_TWI0
select HAS_HW_NRF_TWI1
select HAS_HW_NRF_TWIM0
select HAS_HW_NRF_TWIM1
select HAS_HW_NRF_TWIS0
select HAS_HW_NRF_TWIS1
select HAS_HW_NRF_UART0
select HAS_HW_NRF_UARTE0
select HAS_HW_NRF_UARTE1
select HAS_HW_NRF_USBD
select HAS_HW_NRF_WDT
choice choice
prompt "nRF52x MCU Selection" prompt "nRF52x MCU Selection"