STRUCT TI_SN65DSI86(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct ti_sn65dsi86 β€” the whole vibe πŸ’…

Okay bestie, so this is the Kernel API Manual page for struct ti_sn65dsi86, which is literally the platform data glow-up for the ti-sn65dsi86 driver. It's giving "main character energy" for a MIPI-to-eDP bridge, no cap. Let's get into it. ✨

✨ SYNOPSIS ✨

struct ti_sn65dsi86 {
    struct auxiliary_device         *bridge_aux;
    struct auxiliary_device         *gpio_aux;
    struct auxiliary_device         *aux_aux;
    struct auxiliary_device         *pwm_aux;
    struct device                   *dev;
    struct regmap                   *regmap;
    struct drm_dp_aux               aux;
    struct drm_bridge               bridge;
    struct drm_connector            *connector;
    struct device_node              *host_node;
    struct mipi_dsi_device          *dsi;
    struct clk                      *refclk;
    struct drm_bridge               *next_bridge;
    struct gpio_desc                *enable_gpio;
    struct regulator_bulk_data      supplies[SN_REGULATOR_SUPPLY_NUM];
    int dp_lanes;
    u8 ln_assign;
    u8 ln_polrs;
    bool comms_enabled;
    bool hpd_enabled;
    struct mutex                    comms_mutex;
    struct mutex                    hpd_mutex;
  #if defined(CONFIG_OF_GPIO);
    struct gpio_chip                gchip;
    unsigned long gchip_output[BITS_TO_LONGS( SN_NUM_GPIOS)];
  #endif;
  #if IS_REACHABLE(CONFIG_PWM);
    struct pwm_chip                 *pchip;
    bool pwm_enabled;
    atomic_t pwm_pin_busy;
  #endif;
    unsigned int                    pwm_refclk_freq;
 };

πŸ‘‘ MEMBERS πŸ‘‘

  • bridge_aux β€” AUX-bus sub device for MIPI-to-eDP bridge functionality. It's the bridge's little sidekick, fr fr.
  • gpio_aux β€” AUX-bus sub device for GPIO controller functionality. Your GPIO era starts here πŸ’…
  • aux_aux β€” AUX-bus sub device for eDP AUX channel functionality. Not me having three auxes, it's iconic.
  • pwm_aux β€” AUX-bus sub device for PWM controller functionality. PWM bestie is in the chat.
  • dev β€” Pointer to the top level (i2c) device. The parent, the moment, the main character.
  • regmap β€” Regmap for accessing i2c. Literally our little i2c translator 🫢
  • aux β€” Our aux channel. Slay.
  • bridge β€” Our bridge. Periodt.
  • connector β€” Our connector. She connects.
  • host_node β€” Remote DSI node. It's giving "long-distance relationship" 😭
  • dsi β€” Our MIPI DSI source. The source of truth, lowkey.
  • refclk β€” Our reference clock. Tick tock, bestie ⭐
  • next_bridge β€” The bridge on the eDP side. The next one in the chain, highkey important.
  • enable_gpio β€” The GPIO we toggle to enable the bridge. On and off, she's flexible πŸ’…
  • supplies β€” Data for bulk enabling/disabling our regulators. All the power management vibes, no cap.
  • dp_lanes β€” Count of dp_lanes we're using. How many lanes are we serving today? πŸ”₯
  • ln_assign β€” Value to program to the LN_ASSIGN register. It's literally the value, okay?
  • ln_polrs β€” Value for the 4-bit LN_POLRS field of SN_ENH_FRAME_REG. Four bits of pure vibes.
  • comms_enabled β€” If true then communication over the aux channel is enabled. True = talkative era βœ…
  • hpd_enabled β€” If true then HPD events are enabled. Hot plug detection said "I'm here" πŸ’–
  • comms_mutex β€” Protects modification of comms_enabled. Don't touch her without the lock, bestie.
  • hpd_mutex β€” Protects modification of hpd_enabled. Same energy, different flag.
  • gchip β€” If we expose our GPIOs, this is used. It's giving "GPIO chip representation," ngl.
  • gchip_output β€” A cache of whether we've set GPIOs to output. This serves double-duty of keeping track of the direction and also keeping track of whether we've incremented the pm_runtime reference count for this pin, which we do whenever a pin is configured as an output. This is a bitmap so we can do atomic ops on it without an extra lock so concurrent users of our 4 GPIOs don't stomp on each other's read-modify-write. Like, it's literally doing two jobs at once, main character energy for real. 😭
  • pchip β€” pwm_chip if the PWM is exposed. Only sometimes she appears, very mysterious ✨
  • pwm_enabled β€” Used to track if the PWM signal is currently enabled. Is she on? Is she off? This bool knows.
  • pwm_pin_busy β€” Track if GPIO4 is currently requested for GPIO or PWM. One pin, two possible vibes, who will win πŸ’€
  • pwm_refclk_freq β€” Cache for the reference clock input to the PWM. Saving that frequency for later, iykyk.

🌈 SEE ALSO 🌈

  • Kernel file ./drivers/gpu/drm/bridge/ti-sn65dsi86.c β€” go read the source, bestie, it's right there 🫢

Okay that's the whole page! This was brought to you by ./drivers/gpu/drm/bridge and the date October 2026, and it's struct ti_sn65dsi86(9) forever. Stay slay, stay compiled, and don't forget your mutexes πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from