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.
- 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
linux/bits.hlinux/bitfield.h
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
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
- Immediate include surface: `linux/bits.h`, `linux/bitfield.h`.
- Atlas domain: Driver Families / drivers/usb.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.