STRUCT M88DS3103_PLATFORM_DATA(9)
π NAME π
struct m88ds3103_platform_data β bestie, this is the platform data for the m88ds3103 driver β¨
okay so before we even start, yes this is from the Kernel API Manual and yes the page is literally called struct m88ds3103_platform_data(9) and no we are not skipping anything, we're gonna get through all of it together π«Ά
β¨ SYNOPSIS β¨
like, here's the whole struct, character for character, no cap:
struct m88ds3103_platform_data {
u32 clk;
u16 i2c_wr_max;
enum m88ds3103_ts_mode ts_mode;
u32 ts_clk;
enum m88ds3103_clock_out clk_out;
u8 ts_clk_pol:1;
u8 spec_inv:1;
u8 agc;
u8 agc_inv:1;
u8 envelope_mode:1;
u8 lnb_hv_pol:1;
u8 lnb_en_pol:1;
struct dvb_frontend* (*get_dvb_frontend)(struct i2c_client *);
struct i2c_adapter* (*get_i2c_adapter)(struct i2c_client *);
};
it's giving "a little bit of everything" and honestly? iconic π
πΈ MEMBERS πΈ
every single field, one by one, we're doing this πͺ
clkβ the clock frequency, periodt.i2c_wr_maxβ the max bytes the I2C adapter can write at once. like its little write limit, respect it πts_modeβ the TS mode.ts_clkβ the TS clock, inKHz.clk_outβ the clock output.ts_clk_polβ TS clk polarity.1-active at falling edge;0-active at rising edge. pick a lane bestie π¦spec_invβ input spectrum inversion.agcβ the AGC configuration.agc_invβ AGC polarity.envelope_modeβ DiSEqC envelope mode.lnb_hv_polβ LNB H/V pin polarity.0: pin high set toVOLTAGE_18, pin low to setVOLTAGE_13.1: pin high set toVOLTAGE_13, pin low to setVOLTAGE_18. yes the two cases are reversed on purpose, read it twice, it's lowkey a vibe check πlnb_en_polβ LNB enable pin polarity.0: pin high to disable, pin low to enable.1: pin high to enable, pin low to disable. same situation, flipped energy fr fr π₯get_dvb_frontendβ get DVB frontend. it's a function pointer, she's a callback, main character energy πget_i2c_adapterβ get I2C adapter. also a function pointer. we love a matching set π
ngl, if you mix up the0and1polarities you're gonna have a bad time β double check before you ship π«Ά
π SEE ALSO π
go read these next, i'm obsessed:
- Kernel file
./drivers/media/dvb-frontends/m88ds3103.h enum m88ds3103_ts_mode(9)enum m88ds3103_clock_out(9)struct m88ds3103_config(9)m88ds3103_attach(9)
and that's the whole page bestie, you ate that π
β¨ source is ./drivers/media/dvb-frontends, dated October 2026, and the title's struct m88ds3103_platform_data(9) in case anyone asks π bye ily π¦
π¦ 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