drivers/usb/typec/tipd/tps6598x.h

Source file repositories/reference/linux-study-clean/drivers/usb/typec/tipd/tps6598x.h

File Facts

System
Linux kernel
Corpus path
drivers/usb/typec/tipd/tps6598x.h
Extension
.h
Size
11863 bytes
Lines
273
Domain
Driver Families
Bucket
drivers/usb
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

#include <linux/bits.h>
#include <linux/bitfield.h>

#ifndef __TPS6598X_H__
#define __TPS6598X_H__

#define TPS_FIELD_GET(_mask, _reg) ((typeof(_mask))(((_reg) & (_mask)) >> __bf_shf(_mask)))

/* TPS_REG_STATUS bits */
#define TPS_STATUS_PLUG_PRESENT		BIT(0)
#define TPS_STATUS_PLUG_UPSIDE_DOWN	BIT(4)
#define TPS_STATUS_TO_UPSIDE_DOWN(s)	(!!((s) & TPS_STATUS_PLUG_UPSIDE_DOWN))
#define TPS_STATUS_PORTROLE		BIT(5)
#define TPS_STATUS_TO_TYPEC_PORTROLE(s) (!!((s) & TPS_STATUS_PORTROLE))
#define TPS_STATUS_DATAROLE		BIT(6)
#define TPS_STATUS_TO_TYPEC_DATAROLE(s)	(!!((s) & TPS_STATUS_DATAROLE))
#define TPS_STATUS_VCONN		BIT(7)
#define TPS_STATUS_TO_TYPEC_VCONN(s)	(!!((s) & TPS_STATUS_VCONN))
#define TPS_STATUS_OVERCURRENT		BIT(16)
#define TPS_STATUS_GOTO_MIN_ACTIVE	BIT(26)
#define TPS_STATUS_BIST			BIT(27)
#define TPS_STATUS_HIGH_VOLTAGE_WARNING	BIT(28)
#define TPS_STATUS_HIGH_LOW_VOLTAGE_WARNING BIT(29)

#define TPS_STATUS_CONN_STATE_MASK		GENMASK(3, 1)
#define TPS_STATUS_CONN_STATE(x)		TPS_FIELD_GET(TPS_STATUS_CONN_STATE_MASK, (x))
#define TPS_STATUS_PP_5V0_SWITCH_MASK		GENMASK(9, 8)
#define TPS_STATUS_PP_5V0_SWITCH(x)		TPS_FIELD_GET(TPS_STATUS_PP_5V0_SWITCH_MASK, (x))
#define TPS_STATUS_PP_HV_SWITCH_MASK		GENMASK(11, 10)
#define TPS_STATUS_PP_HV_SWITCH(x)		TPS_FIELD_GET(TPS_STATUS_PP_HV_SWITCH_MASK, (x))
#define TPS_STATUS_PP_EXT_SWITCH_MASK		GENMASK(13, 12)
#define TPS_STATUS_PP_EXT_SWITCH(x)		TPS_FIELD_GET(TPS_STATUS_PP_EXT_SWITCH_MASK, (x))
#define TPS_STATUS_PP_CABLE_SWITCH_MASK		GENMASK(15, 14)
#define TPS_STATUS_PP_CABLE_SWITCH(x)		TPS_FIELD_GET(TPS_STATUS_PP_CABLE_SWITCH_MASK, (x))
#define TPS_STATUS_POWER_SOURCE_MASK		GENMASK(19, 18)
#define TPS_STATUS_POWER_SOURCE(x)		TPS_FIELD_GET(TPS_STATUS_POWER_SOURCE_MASK, (x))
#define TPS_STATUS_VBUS_STATUS_MASK		GENMASK(21, 20)
#define TPS_STATUS_VBUS_STATUS(x)		TPS_FIELD_GET(TPS_STATUS_VBUS_STATUS_MASK, (x))
#define TPS_STATUS_USB_HOST_PRESENT_MASK	GENMASK(23, 22)
#define TPS_STATUS_USB_HOST_PRESENT(x)		TPS_FIELD_GET(TPS_STATUS_USB_HOST_PRESENT_MASK, (x))
#define TPS_STATUS_LEGACY_MASK			GENMASK(25, 24)
#define TPS_STATUS_LEGACY(x)			TPS_FIELD_GET(TPS_STATUS_LEGACY_MASK, (x))

#define TPS_STATUS_CONN_STATE_NO_CONN		0
#define TPS_STATUS_CONN_STATE_DISABLED		1
#define TPS_STATUS_CONN_STATE_AUDIO_CONN	2
#define TPS_STATUS_CONN_STATE_DEBUG_CONN	3
#define TPS_STATUS_CONN_STATE_NO_CONN_R_A	4
#define TPS_STATUS_CONN_STATE_RESERVED		5
#define TPS_STATUS_CONN_STATE_CONN_NO_R_A	6
#define TPS_STATUS_CONN_STATE_CONN_WITH_R_A	7

#define TPS_STATUS_PP_SWITCH_STATE_DISABLED	0
#define TPS_STATUS_PP_SWITCH_STATE_FAULT	1
#define TPS_STATUS_PP_SWITCH_STATE_OUT		2
#define TPS_STATUS_PP_SWITCH_STATE_IN		3

#define TPS_STATUS_POWER_SOURCE_UNKNOWN		0
#define TPS_STATUS_POWER_SOURCE_VIN_3P3		1
#define TPS_STATUS_POWER_SOURCE_DEAD_BAT	2
#define TPS_STATUS_POWER_SOURCE_VBUS		3

#define TPS_STATUS_VBUS_STATUS_VSAFE0V		0
#define TPS_STATUS_VBUS_STATUS_VSAFE5V		1
#define TPS_STATUS_VBUS_STATUS_PD		2
#define TPS_STATUS_VBUS_STATUS_FAULT		3

#define TPS_STATUS_USB_HOST_PRESENT_NO		0
#define TPS_STATUS_USB_HOST_PRESENT_PD_NO_USB	1
#define TPS_STATUS_USB_HOST_PRESENT_NO_PD	2
#define TPS_STATUS_USB_HOST_PRESENT_PD_USB	3

#define TPS_STATUS_LEGACY_NO			0
#define TPS_STATUS_LEGACY_SINK			1
#define TPS_STATUS_LEGACY_SOURCE		2

/* TPS_REG_INT_* bits */
#define TPS_REG_INT_USER_VID_ALT_MODE_OTHER_VDM		BIT_ULL(27+32)
#define TPS_REG_INT_USER_VID_ALT_MODE_ATTN_VDM		BIT_ULL(26+32)
#define TPS_REG_INT_USER_VID_ALT_MODE_EXIT		BIT_ULL(25+32)
#define TPS_REG_INT_USER_VID_ALT_MODE_ENTERED		BIT_ULL(24+32)
#define TPS_REG_INT_EXIT_MODES_COMPLETE			BIT_ULL(20+32)
#define TPS_REG_INT_DISCOVER_MODES_COMPLETE		BIT_ULL(19+32)
#define TPS_REG_INT_VDM_MSG_SENT			BIT_ULL(18+32)
#define TPS_REG_INT_VDM_ENTERED_MODE			BIT_ULL(17+32)
#define TPS_REG_INT_ERROR_UNABLE_TO_SOURCE		BIT_ULL(14+32)
#define TPS_REG_INT_SRC_TRANSITION			BIT_ULL(10+32)
#define TPS_REG_INT_ERROR_DISCHARGE_FAILED		BIT_ULL(9+32)
#define TPS_REG_INT_ERROR_MESSAGE_DATA			BIT_ULL(7+32)
#define TPS_REG_INT_ERROR_PROTOCOL_ERROR		BIT_ULL(6+32)

Annotation

Implementation Notes