Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

USB: typec: tps6598x: Add power status trace for tps25750

tps25750 power status register is a subset of tps6598x power status
register.

Signed-off-by: Abdel Alkuor <abdelalkuor@geotab.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20231003155842.57313-9-alkuor@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Abdel Alkuor and committed by
Greg Kroah-Hartman
e5d4a413 0aaa6d16

+53
+1
drivers/usb/typec/tipd/core.c
··· 1411 1411 static const struct tipd_data tps25750_data = { 1412 1412 .irq_handler = tps25750_interrupt, 1413 1413 .register_port = tps25750_register_port, 1414 + .trace_power_status = trace_tps25750_power_status, 1414 1415 .apply_patch = tps25750_apply_patch, 1415 1416 }; 1416 1417
+19
drivers/usb/typec/tipd/tps6598x.h
··· 161 161 #define TPS_POWER_STATUS_BC12_STATUS_CDP 2 162 162 #define TPS_POWER_STATUS_BC12_STATUS_DCP 3 163 163 164 + /* TPS25750_REG_POWER_STATUS bits */ 165 + #define TPS25750_POWER_STATUS_CHARGER_DETECT_STATUS_MASK GENMASK(7, 4) 166 + #define TPS25750_POWER_STATUS_CHARGER_DETECT_STATUS(p) \ 167 + TPS_FIELD_GET(TPS25750_POWER_STATUS_CHARGER_DETECT_STATUS_MASK, (p)) 168 + #define TPS25750_POWER_STATUS_CHARGER_ADVERTISE_STATUS_MASK GENMASK(9, 8) 169 + #define TPS25750_POWER_STATUS_CHARGER_ADVERTISE_STATUS(p) \ 170 + TPS_FIELD_GET(TPS25750_POWER_STATUS_CHARGER_ADVERTISE_STATUS_MASK, (p)) 171 + 172 + #define TPS25750_POWER_STATUS_CHARGER_DET_STATUS_DISABLED 0 173 + #define TPS25750_POWER_STATUS_CHARGER_DET_STATUS_IN_PROGRESS 1 174 + #define TPS25750_POWER_STATUS_CHARGER_DET_STATUS_NONE 2 175 + #define TPS25750_POWER_STATUS_CHARGER_DET_STATUS_SPD 3 176 + #define TPS25750_POWER_STATUS_CHARGER_DET_STATUS_BC_1_2_CPD 4 177 + #define TPS25750_POWER_STATUS_CHARGER_DET_STATUS_BC_1_2_DPD 5 178 + #define TPS25750_POWER_STATUS_CHARGER_DET_STATUS_DIV_1_DCP 6 179 + #define TPS25750_POWER_STATUS_CHARGER_DET_STATUS_DIV_2_DCP 7 180 + #define TPS25750_POWER_STATUS_CHARGER_DET_STATUS_DIV_3_DCP 8 181 + #define TPS25750_POWER_STATUS_CHARGER_DET_STATUS_1_2V_DCP 9 182 + 164 183 /* TPS_REG_DATA_STATUS bits */ 165 184 #define TPS_DATA_STATUS_DATA_CONNECTION BIT(0) 166 185 #define TPS_DATA_STATUS_UPSIDE_DOWN BIT(1)
+33
drivers/usb/typec/tipd/trace.h
··· 166 166 { TPS_POWER_STATUS_BC12_STATUS_CDP, "cdp" }, \ 167 167 { TPS_POWER_STATUS_BC12_STATUS_SDP, "sdp" }) 168 168 169 + #define show_tps25750_power_status_charger_detect_status(power_status) \ 170 + __print_symbolic(TPS25750_POWER_STATUS_CHARGER_DETECT_STATUS(power_status), \ 171 + { TPS25750_POWER_STATUS_CHARGER_DET_STATUS_DISABLED, "disabled"}, \ 172 + { TPS25750_POWER_STATUS_CHARGER_DET_STATUS_IN_PROGRESS, "in progress"}, \ 173 + { TPS25750_POWER_STATUS_CHARGER_DET_STATUS_NONE, "none"}, \ 174 + { TPS25750_POWER_STATUS_CHARGER_DET_STATUS_SPD, "spd"}, \ 175 + { TPS25750_POWER_STATUS_CHARGER_DET_STATUS_BC_1_2_CPD, "cpd"}, \ 176 + { TPS25750_POWER_STATUS_CHARGER_DET_STATUS_BC_1_2_DPD, "dpd"}, \ 177 + { TPS25750_POWER_STATUS_CHARGER_DET_STATUS_DIV_1_DCP, "divider 1 dcp"}, \ 178 + { TPS25750_POWER_STATUS_CHARGER_DET_STATUS_DIV_2_DCP, "divider 2 dcp"}, \ 179 + { TPS25750_POWER_STATUS_CHARGER_DET_STATUS_DIV_3_DCP, "divider 3 dpc"}, \ 180 + { TPS25750_POWER_STATUS_CHARGER_DET_STATUS_1_2V_DCP, "1.2V dpc"}) 181 + 169 182 #define TPS_DATA_STATUS_FLAGS_MASK (GENMASK(31, 0) ^ (TPS_DATA_STATUS_DP_PIN_ASSIGNMENT_MASK | \ 170 183 TPS_DATA_STATUS_TBT_CABLE_SPEED_MASK | \ 171 184 TPS_DATA_STATUS_TBT_CABLE_GEN_MASK)) ··· 309 296 show_power_status_source_sink(__entry->power_status), 310 297 show_power_status_typec_status(__entry->power_status), 311 298 show_power_status_bc12_status(__entry->power_status) 299 + ) 300 + ); 301 + 302 + TRACE_EVENT(tps25750_power_status, 303 + TP_PROTO(u16 power_status), 304 + TP_ARGS(power_status), 305 + 306 + TP_STRUCT__entry( 307 + __field(u16, power_status) 308 + ), 309 + 310 + TP_fast_assign( 311 + __entry->power_status = power_status; 312 + ), 313 + 314 + TP_printk("conn: %d, pwr-role: %s, typec: %s, charger detect: %s", 315 + !!TPS_POWER_STATUS_CONNECTION(__entry->power_status), 316 + show_power_status_source_sink(__entry->power_status), 317 + show_power_status_typec_status(__entry->power_status), 318 + show_tps25750_power_status_charger_detect_status(__entry->power_status) 312 319 ) 313 320 ); 314 321