Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

drivers: ieee802154: cc13xx/cc26xx_subg radio configuration #58439

Merged

Commits on Jun 19, 2023

  1. drivers: ieee802154: cc13/26xx_subg: clean up constants

    The CC13xx/CC26xx Sub-GHz driver header file defined several constants
    that were not used in the driver.
    
    Other constants could be replaced with generic constants which were
    introduced in the prior commit.
    
    This change removes and/or replaces redundant definitions.
    
    Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
    fgrandel committed Jun 19, 2023
    Copy the full SHA
    c46f00f View commit details
    Browse the repository at this point in the history
  2. drivers: ieee802154: cc13/26xx_subg: remove redundant configuration

    The low-level configuration of the chip's radio commands was mostly
    redundant. This change removes redundant configuration code.
    
    This is also relevant as a preparation to supporting further frequency
    bands and operating modes on the same SUN FSK channel page with
    similar but slightly different settings (center frequencies, channel
    spacing, modulation index as defined in the standard). The SUN FSK
    standard defines plenty of such variations with different physical
    characteristics and trade-offs. Such variations are highly relevant in
    industrial applications which will be targeted by TSCH. Using the
    correct settings is required for additional features (e.g. frequency
    hopping) and interoperability.
    
    Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
    fgrandel committed Jun 19, 2023
    Copy the full SHA
    a782d75 View commit details
    Browse the repository at this point in the history
  3. drivers: ieee802154: cc13/26xx_subg: remove dead code

    The channel-to-frequency conversion had unreachable code which is
    removed in this change.
    
    Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
    fgrandel committed Jun 19, 2023
    Copy the full SHA
    e90bb19 View commit details
    Browse the repository at this point in the history
  4. drivers: ieee802154: cc13/26xx_subg: fix invalid KConfig reference

    The driver contained references to KConfig variables w/o the required
    CONFIG_ prefix. This change introduces the missing prefixes.
    
    Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
    fgrandel committed Jun 19, 2023
    Copy the full SHA
    dfa999b View commit details
    Browse the repository at this point in the history
  5. drivers: ieee802154: cc13/26xx_subg: readability improvements

    This change introduces standard variable names used elsewhere in the
    stack for improved naming consistency and readability.
    
    Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
    fgrandel committed Jun 19, 2023
    Copy the full SHA
    fe0d435 View commit details
    Browse the repository at this point in the history
  6. drivers: ieee802154: cc13/26xx_subg: fix/document non-standard CSMA/CA

    The CC13xx/CC26xx Sub-GHz driver announces a hardware CSMA/CA capability
    which it provides only partially. This change documents the gap.
    
    The change also fixes two related issues with the current CCA
    implementation:
    
    - The given default ED threshold was above the allowed threshold
      defined in the specification.
    
    - The CCA timeout was not calculated according to the requirements
      defined in the standard.
    
    Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
    fgrandel committed Jun 19, 2023
    Copy the full SHA
    33988ac View commit details
    Browse the repository at this point in the history
  7. drivers: ieee802154: cc13/26xx_subg: inline documentation

    This change introduces inline documentation with references to the
    current version of the IEEE 802.15.4 standard.
    
    Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
    fgrandel committed Jun 19, 2023
    Copy the full SHA
    c3afdb0 View commit details
    Browse the repository at this point in the history
  8. drivers: ieee802154: cc13/26xx_subg: fix CCA method

    The driver's CCA method had various issues and would always return an
    error code. This is fixed in this change.
    
    Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
    fgrandel committed Jun 19, 2023
    Copy the full SHA
    64fa5d2 View commit details
    Browse the repository at this point in the history

Commits on Jun 20, 2023

  1. drivers: ieee802154: cc13/26xx_subg: improve CSMA/CA compliance

    Switch the driver to the soft CSMA/CA algorithm as an intermediate
    compromise for improved standard compliance (namely expontential
    backoff) until true hardware support can be implemented by chaining
    radio commands.
    
    Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
    fgrandel committed Jun 20, 2023
    Copy the full SHA
    de17caf View commit details
    Browse the repository at this point in the history
  2. drivers: ieee802154: cc13/26xx_subg: remove unused radio commands

    The CMD_CLEAR_RX and CMD_SET_TX_POWER commands are declared and
    initialized but not used anywhere. They are therefore removed to reduce
    RAM/flash footprint.
    
    Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
    fgrandel committed Jun 20, 2023
    Copy the full SHA
    3692090 View commit details
    Browse the repository at this point in the history
  3. drivers: ieee802154: cc13/26xx_subg: conditional RX after set_channel

    The call to radio_api->set_channel() must not switch on RX if it was
    previously off.
    
    Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
    fgrandel committed Jun 20, 2023
    Copy the full SHA
    000f19c View commit details
    Browse the repository at this point in the history
  4. drivers: ieee802154: cc13/26xx_subg: fix header len const

    The length field in the header refers to the size of the MAC so it
    shouldn't rely on constants describing PHY header length. While
    currently both constants have the same value this will no longer be true
    for enhanced PHYs and/or MAC frames as the number of FCS bytes may then
    be four.
    
    Also introduces an assertion that ensures that the given package buffer
    does not exceed the TX buffer's length. An assertion is enough as the
    package buffer is allocated at compile time.
    
    Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
    fgrandel committed Jun 20, 2023
    Copy the full SHA
    0db1cee View commit details
    Browse the repository at this point in the history
  5. drivers: ieee802154: cc13/26xx_subg: fix subg_start() return value

    The radio API should indicate errors when the interface is started.
    
    Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
    fgrandel committed Jun 20, 2023
    Copy the full SHA
    81e3bd8 View commit details
    Browse the repository at this point in the history
  6. drivers: ieee802154: cc13/26xx_subg: fix PHY overrides

    PHY overrides have been checked against the latest version of TI's
    SmartRF(TM) Studio. The result was regression tested (PER/performance)
    against LAUNCHXL-CC1352P1 boards.
    
    Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
    fgrandel committed Jun 20, 2023
    Copy the full SHA
    5ad81e9 View commit details
    Browse the repository at this point in the history
  7. drivers: ieee802154: cc13/26xx_subg: R-to-P link workaround

    A known issue exists that does not allow a CC13/26x2R device to
    establish a link to a CC13/26x2P device unless the capacitor array is
    tuned to a non-default value in the P device.
    
    See SimpleLink(TM) cc13xx_cc26xx SDK 6.20+ Release Notes, Known Issues.
    
    Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
    fgrandel committed Jun 20, 2023
    Copy the full SHA
    9cd6806 View commit details
    Browse the repository at this point in the history
  8. boards: cc1352p1_launchxl: fix antenna mux config

    The antenna MUX configuration should explicitly define PULL states as
    giving no value will leave the GPIO register in an unspecified state.
    
    Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
    fgrandel committed Jun 20, 2023
    Copy the full SHA
    0d6b734 View commit details
    Browse the repository at this point in the history