STRUCT SDW_SLAVE_PROP(9)
πΈ NAME πΈ
okay bestie, meet struct sdw_slave_prop(9) π
β this is the SoundWire Slave properties struct, and itβs living in the Kernel API Manual. Itβs giving βone iconic struct holding all the Slave property fields,β and we are lowkey obsessed. π«Ά
β¨ SYNOPSIS β¨
This is the exact struct shape, no cap β keep those field names and types exactly as they are:
struct sdw_slave_prop {
struct sdw_dp0_prop *dp0_prop;
struct sdw_dpn_prop *src_dpn_prop;
struct sdw_dpn_prop *sink_dpn_prop;
u32 mipi_revision;
bool wake_capable;
bool test_mode_capable;
bool clk_stop_mode1;
bool simple_clk_stop_capable;
u32 clk_stop_timeout;
u32 ch_prep_timeout;
enum sdw_clk_stop_reset_behave reset_behave;
bool high_PHY_capable;
bool paging_support;
bool bank_delay_support;
bool lane_control_support;
enum sdw_p15_behave p15_behave;
u32 master_count;
u32 source_ports;
u32 sink_ports;
u32 quirks;
u32 sdca_interrupt_register_list;
u8 commit_register_supported;
u8 scp_int1_mask;
u8 lane_maps[SDW_MAX_LANES];
u32 bra_block_alignment;
u32 bra_max_data_per_frame;
bool clock_reg_supported;
bool use_domain_irq;
};
bestie, these field names and types are literal C β do not freestyle them, do not rename them, do not merge them. periodt. π
π Members π
okay so every single field in this struct is a little main character, and hereβs the full roster in order:
dp0_propβ Data Port 0 properties πsrc_dpn_propβ Source Data Port N properties β¨sink_dpn_propβ Sink Data Port N properties πmipi_revisionβ Spec version of the implementation π₯wake_capableβ Wake-up events are supported πtest_mode_capableβ If test mode is supported π§ͺclk_stop_mode1β Clock-Stop Mode 1 is supported β°simple_clk_stop_capableβ Simple clock mode is supported π°οΈclk_stop_timeoutβ Worst-case latency of the Clock Stop Prepare State Machine transitions, in milliseconds β³ch_prep_timeoutβ Worst-case latency of the Channel Prepare State Machine transitions, in milliseconds β³reset_behaveβ Slave keeps the status of the SlaveStopClockPrepare state machine (P=1 SCSP_SM) after exit from clock-stop mode1 π«high_PHY_capableβ Slave is HighPHY capable β‘paging_supportβ Slave implements paging registersSCP_AddrPage1andSCP_AddrPage2πbank_delay_supportβ Slave implements bank delay/bridge support registersSCP_BankDelayandSCP_NextFrameπlane_control_supportβ Slave supports lane control π£οΈp15_behaveβ Slave behavior when the Master attempts a read to the Port15 alias πmaster_countβ Number of Masters present on this Slave πsource_portsβ Bitmap identifying source ports π§sink_portsβ Bitmap identifying sink ports π³οΈquirksβ bitmask identifying deltas from the MIPI specification πsdca_interrupt_register_listβ indicates which sets of SDCA interrupt status and masks are supported π¨commit_register_supportedβ isPCP_Commitregister supported βscp_int1_maskβSCP_INT1_MASKdesired settings ποΈlane_mapsβ Lane mapping for the slave, only valid iflane_control_supportis set πΊοΈbra_block_alignmentβ If non-zero the length of data in a BRA frame must be a multiple of this number of bytes. πbra_max_data_per_frameβ If non-zero the maximum data payload size (in bytes per frame excluding header, CRC, and footer) for this BRA Mode π¦clock_reg_supportedβ the Peripheral implements the clock base and scale registers introduced with the SoundWire 1.2 specification. SDCA devices do not need to set this boolean property as the registers are required. π°οΈuse_domain_irqβ call actual IRQ handler on slave, as well as callback π
π¦ SEE ALSO π¦
Kernel file ./include/linux/soundwire/sdw.h is the home base π , and then the whole squad shows up:
enum sdw_slave_status(9)enum sdw_clk_stop_type(9)enum sdw_command_response(9)enum sdw_stream_type(9)enum sdw_data_direction(9)enum sdw_port_data_mode(9)enum sdw_p15_behave(9)enum sdw_dpn_type(9)enum sdw_clk_stop_mode(9)struct sdw_dp0_prop(9)struct sdw_dpn_prop(9)struct sdw_master_prop(9)struct sdw_slave_id(9)struct sdw_slave_intr_status(9)enum sdw_reg_bank(9)struct sdw_prepare_ch(9)enum sdw_port_prep_ops(9)struct sdw_bus_params(9)struct sdw_slave_ops(9)struct sdw_slave(9)struct sdw_master_device(9)struct sdw_port_params(9)struct sdw_transport_params(9)struct sdw_enable_ch(9)struct sdw_master_port_ops(9)struct sdw_defer(9)struct sdw_master_ops(9)struct sdw_port_config(9)struct sdw_stream_config(9)enum sdw_stream_state(9)struct sdw_stream_params(9)struct sdw_stream_runtime(9)struct sdw_bus(9)sdw_slave_wait_for_init(9)
π thatβs the page, bestie! source/version/date lore: source ./include/linux/soundwire, date October 2026, and page title/version struct sdw_slave_prop(9) β mwah! π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms