STRUCT M88DS3103_PLATFORM_DATA(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– 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, in KHz.
  • 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 to VOLTAGE_18, pin low to set VOLTAGE_13. 1: pin high set to VOLTAGE_13, pin low to set VOLTAGE_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 the 0 and 1 polarities 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