drivers/gpu/drm/bridge/analogix/anx7625.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/bridge/analogix/anx7625.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/bridge/analogix/anx7625.h
Extension
.h
Size
14725 bytes
Lines
515
Domain
Driver Families
Bucket
drivers/gpu
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct anx7625_platform_data {
	struct gpio_desc *gpio_p_on;
	struct gpio_desc *gpio_reset;
	struct regulator_bulk_data supplies[3];
	struct drm_bridge *panel_bridge;
	int intp_irq;
	int is_dpi;
	int mipi_lanes;
	int audio_en;
	int dp_lane0_swing_reg_cnt;
	u8 lane0_reg_data[DP_TX_SWING_REG_CNT];
	int dp_lane1_swing_reg_cnt;
	u8 lane1_reg_data[DP_TX_SWING_REG_CNT];
	u32 low_power_mode;
	struct device_node *mipi_host_node;
};

struct anx7625_i2c_client {
	struct i2c_client *tx_p0_client;
	struct i2c_client *tx_p1_client;
	struct i2c_client *tx_p2_client;
	struct i2c_client *rx_p0_client;
	struct i2c_client *rx_p1_client;
	struct i2c_client *rx_p2_client;
	struct i2c_client *tcpc_client;
};

struct typec_port;
struct usb_role_switch;

#define MAX_BUF_LEN	30
struct fw_msg {
	u8 msg_len;
	u8 msg_type;
	u8 buf[MAX_BUF_LEN];
} __packed;
#define HEADER_LEN		2

struct anx7625_data {
	struct anx7625_platform_data pdata;
	struct platform_device *audio_pdev;
	struct typec_port *typec_port;
	struct usb_role_switch *role_sw;
	int typec_data_role;
	int hpd_status;
	int hpd_high_cnt;
	int dp_en;
	int hdcp_cp;
	/* Lock for work queue */
	struct mutex lock;
	struct device *dev;
	struct anx7625_i2c_client i2c;
	struct i2c_client *last_client;
	struct timer_list hdcp_timer;
	const struct drm_edid *cached_drm_edid;
	struct device *codec_dev;
	hdmi_codec_plugged_cb plugged_cb;
	struct work_struct work;
	struct workqueue_struct *workqueue;
	struct delayed_work hdcp_work;
	struct workqueue_struct *hdcp_workqueue;
	/* Lock for hdcp work queue */
	struct mutex hdcp_wq_lock;
	/* Lock for aux transfer and disable */
	struct mutex aux_lock;
	char edid_block;
	struct display_timing dt;
	u8 display_timing_valid;
	struct drm_bridge bridge;
	u8 bridge_attached;
	struct drm_connector *connector;
	struct mipi_dsi_device *dsi;
	struct drm_dp_aux aux;
	struct fw_msg send_msg;
};

#endif  /* __ANX7625_H__ */

Annotation

Implementation Notes