modules: hal_silabs: Apply PA configuration from device tree
Propagate device tree configuration for the power amplifier to the HAL configuration header. Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
This commit is contained in:
parent
6002ecf929
commit
e338657642
5 changed files with 77 additions and 2 deletions
|
@ -22,3 +22,5 @@ config HAS_SILABS_SISDK
|
||||||
config HAS_SILABS_SI32
|
config HAS_SILABS_SI32
|
||||||
bool
|
bool
|
||||||
select HAS_CMSIS_CORE
|
select HAS_CMSIS_CORE
|
||||||
|
|
||||||
|
rsource "*/Kconfig"
|
||||||
|
|
|
@ -39,10 +39,13 @@ endfunction()
|
||||||
|
|
||||||
if(CONFIG_SOC_GECKO_HAS_RADIO)
|
if(CONFIG_SOC_GECKO_HAS_RADIO)
|
||||||
zephyr_include_directories_ifdef(CONFIG_SOC_FAMILY_SILABS_S2
|
zephyr_include_directories_ifdef(CONFIG_SOC_FAMILY_SILABS_S2
|
||||||
${RADIO_DIR}/rail_lib/plugin/pa-conversions/efr32xg${SILABS_DEVICE_FAMILY_NUMBER}/config
|
|
||||||
${RADIO_DIR}/rail_lib/chip/efr32/efr32xg2x
|
${RADIO_DIR}/rail_lib/chip/efr32/efr32xg2x
|
||||||
)
|
)
|
||||||
|
|
||||||
|
zephyr_compile_definitions(
|
||||||
|
SL_RAIL_UTIL_PA_CONFIG_HEADER="sl_rail_util_pa_config.h"
|
||||||
|
)
|
||||||
|
|
||||||
zephyr_include_directories(
|
zephyr_include_directories(
|
||||||
${RADIO_DIR}/rail_lib/common
|
${RADIO_DIR}/rail_lib/common
|
||||||
${RADIO_DIR}/rail_lib/plugin/pa-conversions
|
${RADIO_DIR}/rail_lib/plugin/pa-conversions
|
||||||
|
|
31
modules/hal_silabs/simplicity_sdk/Kconfig
Normal file
31
modules/hal_silabs/simplicity_sdk/Kconfig
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
# Copyright (c) 2025 Silicon Laboratories Inc.
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
menu "SiSDK configuration"
|
||||||
|
depends on HAS_SILABS_SISDK
|
||||||
|
|
||||||
|
config RAIL_PA_CURVE_HEADER
|
||||||
|
string "RAIL PA custom curve header file"
|
||||||
|
default "pa_curves_efr32.h"
|
||||||
|
help
|
||||||
|
Name of custom PA curve header file for use by PA initialization.
|
||||||
|
See AN1127 for information on how to create a custom PA curve.
|
||||||
|
The header file must be available on the include path.
|
||||||
|
|
||||||
|
config RAIL_PA_CURVE_TYPES_HEADER
|
||||||
|
string "RAIL PA curve types header file"
|
||||||
|
default "pa_curve_types_efr32.h"
|
||||||
|
help
|
||||||
|
Name of custom PA curve type header file for use by PA initialization.
|
||||||
|
See AN1127 for information on how to create a custom PA curve.
|
||||||
|
The header file must be available on the include path.
|
||||||
|
|
||||||
|
config RAIL_PA_ENABLE_CALIBRATION
|
||||||
|
bool "RAIL PA: apply factory calibration offset"
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Ensure that the PA power remains constant chip-to-chip by applying factory
|
||||||
|
calibration. This option is enabled by default, and is recommended for all
|
||||||
|
Series 2 devices.
|
||||||
|
|
||||||
|
endmenu
|
|
@ -0,0 +1,39 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2025 Silicon Laboratories Inc.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*
|
||||||
|
* This configuration header is used by the HAL driver rail_util_pa from hal_silabs,
|
||||||
|
* invoked through the init function of the hci_silabs_efr32 Bluetooth driver.
|
||||||
|
* DeviceTree and Kconfig options are converted to config macros expected by the HAL driver.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef SL_RAIL_UTIL_PA_CONFIG_H
|
||||||
|
#define SL_RAIL_UTIL_PA_CONFIG_H
|
||||||
|
|
||||||
|
#include <zephyr/devicetree.h>
|
||||||
|
#include "rail_types.h"
|
||||||
|
|
||||||
|
#define SL_RAIL_UTIL_PA_POWER_DECI_DBM (DT_PROP(DT_NODELABEL(radio), pa_initial_power_dbm) * 10)
|
||||||
|
#define SL_RAIL_UTIL_PA_RAMP_TIME_US DT_PROP(DT_NODELABEL(radio), pa_ramp_time_us)
|
||||||
|
#define SL_RAIL_UTIL_PA_VOLTAGE_MV DT_PROP(DT_NODELABEL(radio), pa_voltage_mv)
|
||||||
|
|
||||||
|
#if DT_NODE_HAS_PROP(DT_NODELABEL(radio), pa_2p4ghz)
|
||||||
|
#define SL_RAIL_UTIL_PA_SELECTION_2P4GHZ \
|
||||||
|
CONCAT(RAIL_TX_POWER_MODE_2P4GIG_, DT_STRING_UPPER_TOKEN(DT_NODELABEL(radio), pa_2p4ghz))
|
||||||
|
#else
|
||||||
|
#define SL_RAIL_UTIL_PA_SELECTION_2P4GHZ RAIL_TX_POWER_MODE_NONE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if DT_NODE_HAS_PROP(DT_NODELABEL(radio), pa_subghz)
|
||||||
|
#define SL_RAIL_UTIL_PA_SELECTION_SUBGHZ \
|
||||||
|
CONCAT(RAIL_TX_POWER_MODE_SUBGIG_, DT_STRING_UPPER_TOKEN(DT_NODELABEL(radio), pa_subghz))
|
||||||
|
#else
|
||||||
|
#define SL_RAIL_UTIL_PA_SELECTION_SUBGHZ RAIL_TX_POWER_MODE_NONE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define SL_RAIL_UTIL_PA_CURVE_HEADER CONFIG_RAIL_PA_CURVE_HEADER
|
||||||
|
#define SL_RAIL_UTIL_PA_CURVE_TYPES CONFIG_RAIL_PA_CURVE_TYPES_HEADER
|
||||||
|
#define SL_RAIL_UTIL_PA_CALIBRATION_ENABLE CONFIG_RAIL_PA_ENABLE_CALIBRATION
|
||||||
|
|
||||||
|
#endif /* SL_RAIL_UTIL_PA_CONFIG_H */
|
2
west.yml
2
west.yml
|
@ -228,7 +228,7 @@ manifest:
|
||||||
groups:
|
groups:
|
||||||
- hal
|
- hal
|
||||||
- name: hal_silabs
|
- name: hal_silabs
|
||||||
revision: 5719804e682e9e4ba1d1f60c824af92a58ce1c2b
|
revision: df3414d50b321e11b5fb92f76c994aa07141239f
|
||||||
path: modules/hal/silabs
|
path: modules/hal/silabs
|
||||||
groups:
|
groups:
|
||||||
- hal
|
- hal
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue