I have successfully completed all pending work in the wpanusb_bc firmware repository. Here's a comprehensive summary of what was implemented:
✅ COMPLETED IMPLEMENTATIONS
- Added Missing Command Structures (wpanusb.h)
- Added 5 new capability discovery commands to enum wpanusb_requests
- Added struct set_lbt for Listen Before Talk functionality
- Added comprehensive capability structures:
- struct device_info - Device version and type information
- struct hardware_caps - Hardware feature flags and limits
- struct phy_caps - PHY layer capabilities and ranges
- struct power_levels - Dynamic power level discovery
- struct channel_page & struct channel_pages - Channel page information
- Implemented All Missing Handler Functions
Capability Discovery Handlers:
- get_device_info() - Returns firmware version 1.0, protocol 1.0
- get_hardware_caps() - Reports supported HW flags, frame retries, LBT, CCA modes
- get_phy_caps() - Reports PHY flags, supported pages, CCA ED levels, CSMA ranges
- get_power_levels() - Returns 10 power levels from +5dBm to -20dBm with defaults
- get_channel_pages() - Reports dual-band support (Page 0: 2.4GHz, Page 2: Sub-GHz)
Enhanced Existing Handlers:
- get_extended_addr() - Hardware-aware: Reads from CC1352P7 FCFG registers or generates from device ID
- get_supported_channels() - Dynamic: Builds channel mask based on available radios instead of hardcoded values
- set_lbt() - Complete implementation: Validates parameters, stores configuration with 5ms max duration
Improved Configuration Handlers:
- set_csma_params() - Enhanced with standard Zephyr API integration and CC13xx/CC26xx specific handling
- All handlers include comprehensive parameter validation and error handling