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

usb: typec: tcpci: use GENMASK() for TCPC_TRANSMIT register fields

Convert all fields from register TCPC_TRANSMIT to using GENMASK() and
FIELD_PREP() so as to keep using a similar approach throughout the code
base and make it arguably easier to read.

Signed-off-by: André Draszik <andre.draszik@linaro.org>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20240710-tcpc-cleanup-v1-7-0ec1f41f4263@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

André Draszik and committed by
Greg Kroah-Hartman
7cd41974 aee4568f

+7 -6
+5 -2
drivers/usb/typec/tcpm/tcpci.c
··· 607 607 } 608 608 609 609 /* nRetryCount is 3 in PD2.0 spec where 2 in PD3.0 spec */ 610 - reg = ((negotiated_rev > PD_REV20 ? PD_RETRY_COUNT_3_0_OR_HIGHER : PD_RETRY_COUNT_DEFAULT) 611 - << TCPC_TRANSMIT_RETRY_SHIFT) | (type << TCPC_TRANSMIT_TYPE_SHIFT); 610 + reg = FIELD_PREP(TCPC_TRANSMIT_RETRY, 611 + (negotiated_rev > PD_REV20 612 + ? PD_RETRY_COUNT_3_0_OR_HIGHER 613 + : PD_RETRY_COUNT_DEFAULT)); 614 + reg |= FIELD_PREP(TCPC_TRANSMIT_TYPE, type); 612 615 ret = regmap_write(tcpci->regmap, TCPC_TRANSMIT, reg); 613 616 if (ret < 0) 614 617 return ret;
+2 -4
include/linux/usb/tcpci.h
··· 148 148 #define TCPC_RX_DATA 0x34 /* through 0x4f */ 149 149 150 150 #define TCPC_TRANSMIT 0x50 151 - #define TCPC_TRANSMIT_RETRY_SHIFT 4 152 - #define TCPC_TRANSMIT_RETRY_MASK 0x3 153 - #define TCPC_TRANSMIT_TYPE_SHIFT 0 154 - #define TCPC_TRANSMIT_TYPE_MASK 0x7 151 + #define TCPC_TRANSMIT_RETRY GENMASK(5, 4) 152 + #define TCPC_TRANSMIT_TYPE GENMASK(2, 0) 155 153 156 154 #define TCPC_TX_BYTE_CNT 0x51 157 155 #define TCPC_TX_HDR 0x52