From 2df965f490bbe8b2ff09a46b68e34c3d97cefa6e Mon Sep 17 00:00:00 2001 From: Gerard Marull-Paretas Date: Fri, 15 Jul 2022 16:26:35 +0200 Subject: [PATCH] drivers: ieee802154: nrf5: make driver DT-based Use Devicetree to describe the radio and IEEE 802.15.4. This allows to remove usage of IEEE802154_NRF5_DRV_NAME in preparation for the removal of NET_CONFIG_IEEE802154_DEV_NAME. All SoC files have been updated with the addition of an ieee802154 node (disabled and only on those SoCs that define ieee802154-supported. The peripheral has been enabled in the nRF52840DK board (used for testing ieee802154). Signed-off-by: Gerard Marull-Paretas --- drivers/ieee802154/Kconfig.nrf5 | 6 ------ drivers/ieee802154/ieee802154_nrf5.c | 17 ++++++++--------- dts/arm/nordic/nrf52811.dtsi | 6 ++++++ dts/arm/nordic/nrf52833.dtsi | 6 ++++++ dts/arm/nordic/nrf52840.dtsi | 6 ++++++ dts/arm/nordic/nrf5340_cpunet.dtsi | 6 ++++++ .../ieee802154/nordic,nrf-ieee802154.yaml | 8 ++++++++ .../nrf52/Kconfig.defconfig.nrf52811_QFAA | 2 +- .../nrf52/Kconfig.defconfig.nrf52833_QIAA | 2 +- .../nrf52/Kconfig.defconfig.nrf52840_QIAA | 2 +- .../nrf53/Kconfig.defconfig.nrf5340_CPUAPP_QKAA | 2 +- .../nxp_kinetis/kwx/Kconfig.defconfig.mkw41z4 | 2 +- tests/net/all/prj.conf | 1 - 13 files changed, 45 insertions(+), 21 deletions(-) create mode 100644 dts/bindings/ieee802154/nordic,nrf-ieee802154.yaml diff --git a/drivers/ieee802154/Kconfig.nrf5 b/drivers/ieee802154/Kconfig.nrf5 index ec87704d5bc..49fe78cde03 100644 --- a/drivers/ieee802154/Kconfig.nrf5 +++ b/drivers/ieee802154/Kconfig.nrf5 @@ -11,12 +11,6 @@ menuconfig IEEE802154_NRF5 if IEEE802154_NRF5 -config IEEE802154_NRF5_DRV_NAME - string "nRF52 IEEE 802.15.4 Driver's name" - default "IEEE802154_nrf5" - help - This option sets the driver name - config IEEE802154_NRF5_RX_STACK_SIZE int "Driver's internal RX thread stack size" default 800 diff --git a/drivers/ieee802154/ieee802154_nrf5.c b/drivers/ieee802154/ieee802154_nrf5.c index e31a99395f5..240eb9bb09d 100644 --- a/drivers/ieee802154/ieee802154_nrf5.c +++ b/drivers/ieee802154/ieee802154_nrf5.c @@ -6,6 +6,8 @@ * SPDX-License-Identifier: Apache-2.0 */ +#define DT_DRV_COMPAT nordic_nrf_ieee802154 + #define LOG_MODULE_NAME ieee802154_nrf5 #if defined(CONFIG_IEEE802154_DRIVER_LOG_LEVEL) #define LOG_LEVEL CONFIG_IEEE802154_DRIVER_LOG_LEVEL @@ -1184,14 +1186,11 @@ static struct ieee802154_radio_api nrf5_radio_api = { #endif #if defined(CONFIG_NET_L2_PHY_IEEE802154) -NET_DEVICE_INIT(nrf5_154_radio, CONFIG_IEEE802154_NRF5_DRV_NAME, - nrf5_init, NULL, &nrf5_data, &nrf5_radio_cfg, - CONFIG_IEEE802154_NRF5_INIT_PRIO, - &nrf5_radio_api, L2, - L2_CTX_TYPE, MTU); +NET_DEVICE_DT_INST_DEFINE(0, nrf5_init, NULL, &nrf5_data, &nrf5_radio_cfg, + CONFIG_IEEE802154_NRF5_INIT_PRIO, &nrf5_radio_api, L2, + L2_CTX_TYPE, MTU); #else -DEVICE_DEFINE(nrf5_154_radio, CONFIG_IEEE802154_NRF5_DRV_NAME, - nrf5_init, NULL, &nrf5_data, &nrf5_radio_cfg, - POST_KERNEL, CONFIG_IEEE802154_NRF5_INIT_PRIO, - &nrf5_radio_api); +DEVICE_DT_INST_DEFINE(0, nrf5_init, NULL, &nrf5_data, &nrf5_radio_cfg, + POST_KERNEL, CONFIG_IEEE802154_NRF5_INIT_PRIO, + &nrf5_radio_api); #endif diff --git a/dts/arm/nordic/nrf52811.dtsi b/dts/arm/nordic/nrf52811.dtsi index 68969799928..7869f85fa88 100644 --- a/dts/arm/nordic/nrf52811.dtsi +++ b/dts/arm/nordic/nrf52811.dtsi @@ -78,6 +78,12 @@ ieee802154-supported; ble-2mbps-supported; ble-coded-phy-supported; + + ieee802154: ieee802154 { + compatible = "nordic,nrf-ieee802154"; + label = "IEEE802154_nrf5"; + status = "disabled"; + }; }; uart0: uart@40002000 { diff --git a/dts/arm/nordic/nrf52833.dtsi b/dts/arm/nordic/nrf52833.dtsi index 80e8f192151..b830fff4fcc 100644 --- a/dts/arm/nordic/nrf52833.dtsi +++ b/dts/arm/nordic/nrf52833.dtsi @@ -73,6 +73,12 @@ ble-2mbps-supported; ble-coded-phy-supported; tx-high-power-supported; + + ieee802154: ieee802154 { + compatible = "nordic,nrf-ieee802154"; + label = "IEEE802154_nrf5"; + status = "disabled"; + }; }; uart0: uart@40002000 { diff --git a/dts/arm/nordic/nrf52840.dtsi b/dts/arm/nordic/nrf52840.dtsi index ab6651542df..85c901b28bc 100644 --- a/dts/arm/nordic/nrf52840.dtsi +++ b/dts/arm/nordic/nrf52840.dtsi @@ -68,6 +68,12 @@ ble-2mbps-supported; ble-coded-phy-supported; tx-high-power-supported; + + ieee802154: ieee802154 { + compatible = "nordic,nrf-ieee802154"; + label = "IEEE802154_nrf5"; + status = "disabled"; + }; }; uart0: uart@40002000 { diff --git a/dts/arm/nordic/nrf5340_cpunet.dtsi b/dts/arm/nordic/nrf5340_cpunet.dtsi index 0065092f263..e81c19a22ab 100644 --- a/dts/arm/nordic/nrf5340_cpunet.dtsi +++ b/dts/arm/nordic/nrf5340_cpunet.dtsi @@ -76,6 +76,12 @@ ieee802154-supported; ble-2mbps-supported; ble-coded-phy-supported; + + ieee802154: ieee802154 { + compatible = "nordic,nrf-ieee802154"; + label = "IEEE802154_nrf5"; + status = "disabled"; + }; }; rng: random@41009000 { diff --git a/dts/bindings/ieee802154/nordic,nrf-ieee802154.yaml b/dts/bindings/ieee802154/nordic,nrf-ieee802154.yaml new file mode 100644 index 00000000000..45cb0ce63e8 --- /dev/null +++ b/dts/bindings/ieee802154/nordic,nrf-ieee802154.yaml @@ -0,0 +1,8 @@ +# Copyright (c) 2022 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +description: Nordic nRF IEEE 802.15.4 node + +compatible: "nordic,nrf-ieee802154" + +include: base.yaml diff --git a/soc/arm/nordic_nrf/nrf52/Kconfig.defconfig.nrf52811_QFAA b/soc/arm/nordic_nrf/nrf52/Kconfig.defconfig.nrf52811_QFAA index 2d40f3ace16..183f1309526 100644 --- a/soc/arm/nordic_nrf/nrf52/Kconfig.defconfig.nrf52811_QFAA +++ b/soc/arm/nordic_nrf/nrf52/Kconfig.defconfig.nrf52811_QFAA @@ -12,7 +12,7 @@ config NUM_IRQS default 30 config NET_CONFIG_IEEE802154_DEV_NAME - default IEEE802154_NRF5_DRV_NAME + default "IEEE802154_nrf5" config IEEE802154_NRF5 default IEEE802154 diff --git a/soc/arm/nordic_nrf/nrf52/Kconfig.defconfig.nrf52833_QIAA b/soc/arm/nordic_nrf/nrf52/Kconfig.defconfig.nrf52833_QIAA index c17b7861e12..bb364967ca5 100644 --- a/soc/arm/nordic_nrf/nrf52/Kconfig.defconfig.nrf52833_QIAA +++ b/soc/arm/nordic_nrf/nrf52/Kconfig.defconfig.nrf52833_QIAA @@ -14,7 +14,7 @@ config NUM_IRQS default 48 config NET_CONFIG_IEEE802154_DEV_NAME - default IEEE802154_NRF5_DRV_NAME + default "IEEE802154_nrf5" config IEEE802154_NRF5 default IEEE802154 diff --git a/soc/arm/nordic_nrf/nrf52/Kconfig.defconfig.nrf52840_QIAA b/soc/arm/nordic_nrf/nrf52/Kconfig.defconfig.nrf52840_QIAA index 92e9a92c071..5ffa61b0021 100644 --- a/soc/arm/nordic_nrf/nrf52/Kconfig.defconfig.nrf52840_QIAA +++ b/soc/arm/nordic_nrf/nrf52/Kconfig.defconfig.nrf52840_QIAA @@ -12,7 +12,7 @@ config NUM_IRQS default 48 config NET_CONFIG_IEEE802154_DEV_NAME - default IEEE802154_NRF5_DRV_NAME + default "IEEE802154_nrf5" config IEEE802154_NRF5 default IEEE802154 diff --git a/soc/arm/nordic_nrf/nrf53/Kconfig.defconfig.nrf5340_CPUAPP_QKAA b/soc/arm/nordic_nrf/nrf53/Kconfig.defconfig.nrf5340_CPUAPP_QKAA index c54fce55f56..fe8f203aa4e 100644 --- a/soc/arm/nordic_nrf/nrf53/Kconfig.defconfig.nrf5340_CPUAPP_QKAA +++ b/soc/arm/nordic_nrf/nrf53/Kconfig.defconfig.nrf5340_CPUAPP_QKAA @@ -15,7 +15,7 @@ config IEEE802154_NRF5 default IEEE802154 config NET_CONFIG_IEEE802154_DEV_NAME - default IEEE802154_NRF5_DRV_NAME + default "IEEE802154_nrf5" config HEAP_MEM_POOL_SIZE default 4096 if NRF_802154_SER_HOST diff --git a/soc/arm/nxp_kinetis/kwx/Kconfig.defconfig.mkw41z4 b/soc/arm/nxp_kinetis/kwx/Kconfig.defconfig.mkw41z4 index a5d727eee53..cb0e07b6774 100644 --- a/soc/arm/nxp_kinetis/kwx/Kconfig.defconfig.mkw41z4 +++ b/soc/arm/nxp_kinetis/kwx/Kconfig.defconfig.mkw41z4 @@ -33,7 +33,7 @@ config IEEE802154_KW41Z default y config NET_CONFIG_IEEE802154_DEV_NAME - default "KW41Z" +default "KW41Z" endif # NETWORKING diff --git a/tests/net/all/prj.conf b/tests/net/all/prj.conf index 497b992266e..e1993c70d2f 100644 --- a/tests/net/all/prj.conf +++ b/tests/net/all/prj.conf @@ -459,7 +459,6 @@ CONFIG_SHELL_MQTT_INIT_LOG_LEVEL_ERR=y #CONFIG_SOC_SERIES_NRF52X=y #CONFIG_HAS_NORDIC_DRIVERS=y -#CONFIG_IEEE802154_NRF5_DRV_NAME="NRF5" #CONFIG_IEEE802154_NRF5_INIT_PRIO=90 #CONFIG_IEEE802154_NRF5=n #CONFIG_IEEE802154_NRF5_RX_STACK_SIZE=1024