STRUCT TI_SN65DSI86(9)
π
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 theLN_ASSIGNregister. It's literally the value, okay?ln_polrsβ Value for the 4-bitLN_POLRSfield ofSN_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 ofcomms_enabled. Don't touch her without the lock, bestie.hpd_mutexβ Protects modification ofhpd_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 thepm_runtimereference 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_chipif 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 ifGPIO4is 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
- 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