This provides functions to store and retrieve PA configs from NVM3.

License#

Copyright 2025 Silicon Laboratories Inc. www.silabs.com

SPDX-License-Identifier: Zlib

The licensor of this software is Silicon Laboratories Inc.

This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.

  2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.

  3. This notice may not be removed or altered from any source distribution.

Modules#

sl_rail_nvm_pa_curve_t

sl_rail_nvm_pa_table_t

sl_rail_nvm_pa_descriptor_t

sl_rail_nvm_pa_config_t

Macros#

#define
SL_RAIL_UTIL_PA_NVM_MODE_TAG (0x89881UL)

The NVM3 PA mode tag.

#define
SL_RAIL_UTIL_PA_NVM_CONFIG_TAG (0x89882UL)

The NVM3 PA config tag.

#define
SL_RAIL_NVM_PA_CONFIGS_VERSION 1

The version number of the NVM structures defined herein.

#define
SL_RAIL_NVM_PA_COUNT RAIL_NUM_PA

The number of curves/tables allowed in NVM storage.

#define
SL_RAIL_NVM_PA_CURVE_SEGMENTS 9

The number of curve segments allowed per curve in NVM storage.

#define
SL_RAIL_NVM_PA_TABLE_ENTRIES 16

The number of table values allowed per mapping table in NVM storage.

Functions#

sl_status_t
sl_rail_util_pa_nvm_write_mode(RAIL_TxPowerMode_t pa_mode)

Store a RAIL_TxPowerMode_t into NVM.

sl_status_t
sl_rail_util_pa_nvm_write_config(const sl_rail_nvm_pa_config_t *p_pa_config)

Stores a sl_rail_nvm_pa_config_t into NVM.

sl_status_t
sl_rail_util_pa_nvm_read_config(sl_rail_nvm_pa_config_t *p_pa_config)

Reads stored sl_rail_nvm_pa_config_t from NVM.

 

Function Documentation#

sl_rail_util_pa_nvm_write_mode#

sl_status_t sl_rail_util_pa_nvm_write_mode (RAIL_TxPowerMode_t pa_mode)

Store a RAIL_TxPowerMode_t into NVM.

Parameters
TypeDirectionArgument NameDescription
RAIL_TxPowerMode_t[in]pa_mode

The PA mode.

Returns

  • Status code indicating success of the function call.


sl_rail_util_pa_nvm_read_mode#

RAIL_TxPowerMode_t sl_rail_util_pa_nvm_read_mode (void )

Reads stored RAIL_TxPowerMode_t from NVM.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Returns

  • The stored PA mode, or RAIL_TX_POWER_MODE_NONE if no stored PA mode exists or is invalid.


sl_rail_util_pa_nvm_write_config#

sl_status_t sl_rail_util_pa_nvm_write_config (const sl_rail_nvm_pa_config_t * p_pa_config)

Stores a sl_rail_nvm_pa_config_t into NVM.

Parameters
TypeDirectionArgument NameDescription
const sl_rail_nvm_pa_config_t *[in]p_pa_config

A non-NULL pointer to PA curves/table config.

Returns

  • Status code indicating success of the function call.


sl_rail_util_pa_nvm_read_config#

sl_status_t sl_rail_util_pa_nvm_read_config (sl_rail_nvm_pa_config_t * p_pa_config)

Reads stored sl_rail_nvm_pa_config_t from NVM.

Parameters
TypeDirectionArgument NameDescription
sl_rail_nvm_pa_config_t *[out]p_pa_config

A non-NULL pointer to the PA curves/table config read from NVM.

Returns

  • Status code indicating success of the function call.