Message ID | 20210316221304.391206-1-badhri@google.com |
---|---|
State | New |
Headers | show |
Series | [v1] usb: typec: tcpci: Added few missing TCPCI register definitions | expand |
On Wed, Mar 17, 2021 at 10:58:24AM -0700, Guenter Roeck wrote: > On 3/17/21 9:42 AM, Greg Kroah-Hartman wrote: > > On Tue, Mar 16, 2021 at 03:52:58PM -0700, Guenter Roeck wrote: > >> On 3/16/21 3:13 PM, Badhri Jagan Sridharan wrote: > >>> This change adds some of the register bit definitions from the TCPCI spec: > >>> https://www.usb.org/sites/default/files/documents/ > >>> usb-port_controller_specification_rev2.0_v1.0_0.pdf > >>> > >>> Signed-off-by: Badhri Jagan Sridharan <badhri@google.com> > >> > >> Are those going to be used ? > > > > For values and #defines that are in public specs, does it matter? It's > > good to have full definitions in the .h files for whenever possible for > > stuff like this to make it easy for people to write code to use them :) > > > > Good to know your position on this. It is one of the per-maintainer > thingies: Some maintainers don't accept defines if they are not used. > Usually I stay away from defining them to avoid the resulting arguments/ > discussions. If you are ok with it, so am I. #defines are trivial, and are good for documenting things. We have loads of drivers that do this to make it a good way to document the full hardware or specification despite not using all of the defines. They also are not a maintenance burden. I don't take new apis that no one uses in-kernel as that's just ripe for deletion and is a maintenance burden. It makes no sense to add and then remove something right away :) thanks, greg k-h
On Tue, Mar 16, 2021 at 03:13:04PM -0700, Badhri Jagan Sridharan wrote: > This change adds some of the register bit definitions from the TCPCI spec: > https://www.usb.org/sites/default/files/documents/ > usb-port_controller_specification_rev2.0_v1.0_0.pdf > > Signed-off-by: Badhri Jagan Sridharan <badhri@google.com> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> > --- > drivers/usb/typec/tcpm/tcpci.h | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/drivers/usb/typec/tcpm/tcpci.h b/drivers/usb/typec/tcpm/tcpci.h > index 57b6e24e0a0c..2be7a77d400e 100644 > --- a/drivers/usb/typec/tcpm/tcpci.h > +++ b/drivers/usb/typec/tcpm/tcpci.h > @@ -47,7 +47,10 @@ > > #define TCPC_TCPC_CTRL 0x19 > #define TCPC_TCPC_CTRL_ORIENTATION BIT(0) > +#define PLUG_ORNT_CC1 0 > +#define PLUG_ORNT_CC2 1 > #define TCPC_TCPC_CTRL_BIST_TM BIT(1) > +#define TCPC_TCPC_CTRL_EN_LK4CONN_ALRT BIT(6) > > #define TCPC_EXTENDED_STATUS 0x20 > #define TCPC_EXTENDED_STATUS_VSAFE0V BIT(0) > @@ -74,21 +77,28 @@ > #define TCPC_POWER_CTRL_VCONN_ENABLE BIT(0) > #define TCPC_POWER_CTRL_BLEED_DISCHARGE BIT(3) > #define TCPC_POWER_CTRL_AUTO_DISCHARGE BIT(4) > +#define TCPC_DIS_VOLT_ALRM BIT(5) > +#define TCPC_POWER_CTRL_VBUS_VOLT_MON BIT(6) > #define TCPC_FAST_ROLE_SWAP_EN BIT(7) > > #define TCPC_CC_STATUS 0x1d > #define TCPC_CC_STATUS_TOGGLING BIT(5) > #define TCPC_CC_STATUS_TERM BIT(4) > +#define TCPC_CC_STATUS_TERM_RP 0 > +#define TCPC_CC_STATUS_TERM_RD 1 > +#define TCPC_CC_STATE_SRC_OPEN 0 > #define TCPC_CC_STATUS_CC2_SHIFT 2 > #define TCPC_CC_STATUS_CC2_MASK 0x3 > #define TCPC_CC_STATUS_CC1_SHIFT 0 > #define TCPC_CC_STATUS_CC1_MASK 0x3 > > #define TCPC_POWER_STATUS 0x1e > +#define TCPC_POWER_STATUS_DBG_ACC_CON BIT(7) > #define TCPC_POWER_STATUS_UNINIT BIT(6) > #define TCPC_POWER_STATUS_SOURCING_VBUS BIT(4) > #define TCPC_POWER_STATUS_VBUS_DET BIT(3) > #define TCPC_POWER_STATUS_VBUS_PRES BIT(2) > +#define TCPC_POWER_STATUS_SINKING_VBUS BIT(0) > > #define TCPC_FAULT_STATUS 0x1f > > @@ -121,6 +131,10 @@ > #define TCPC_RX_DETECT 0x2f > #define TCPC_RX_DETECT_HARD_RESET BIT(5) > #define TCPC_RX_DETECT_SOP BIT(0) > +#define TCPC_RX_DETECT_SOP1 BIT(1) > +#define TCPC_RX_DETECT_SOP2 BIT(2) > +#define TCPC_RX_DETECT_DBG1 BIT(3) > +#define TCPC_RX_DETECT_DBG2 BIT(4) > > #define TCPC_RX_BYTE_CNT 0x30 > #define TCPC_RX_BUF_FRAME_TYPE 0x31 > @@ -139,6 +153,8 @@ > #define TCPC_TX_DATA 0x54 /* through 0x6f */ > > #define TCPC_VBUS_VOLTAGE 0x70 > +#define TCPC_VBUS_VOLTAGE_MASK 0x3ff > +#define TCPC_VBUS_VOLTAGE_LSB_MV 25 > #define TCPC_VBUS_SINK_DISCONNECT_THRESH 0x72 > #define TCPC_VBUS_SINK_DISCONNECT_THRESH_LSB_MV 25 > #define TCPC_VBUS_SINK_DISCONNECT_THRESH_MAX 0x3ff > -- > 2.31.0.rc2.261.g7f71774620-goog -- heikki
diff --git a/drivers/usb/typec/tcpm/tcpci.h b/drivers/usb/typec/tcpm/tcpci.h index 57b6e24e0a0c..2be7a77d400e 100644 --- a/drivers/usb/typec/tcpm/tcpci.h +++ b/drivers/usb/typec/tcpm/tcpci.h @@ -47,7 +47,10 @@ #define TCPC_TCPC_CTRL 0x19 #define TCPC_TCPC_CTRL_ORIENTATION BIT(0) +#define PLUG_ORNT_CC1 0 +#define PLUG_ORNT_CC2 1 #define TCPC_TCPC_CTRL_BIST_TM BIT(1) +#define TCPC_TCPC_CTRL_EN_LK4CONN_ALRT BIT(6) #define TCPC_EXTENDED_STATUS 0x20 #define TCPC_EXTENDED_STATUS_VSAFE0V BIT(0) @@ -74,21 +77,28 @@ #define TCPC_POWER_CTRL_VCONN_ENABLE BIT(0) #define TCPC_POWER_CTRL_BLEED_DISCHARGE BIT(3) #define TCPC_POWER_CTRL_AUTO_DISCHARGE BIT(4) +#define TCPC_DIS_VOLT_ALRM BIT(5) +#define TCPC_POWER_CTRL_VBUS_VOLT_MON BIT(6) #define TCPC_FAST_ROLE_SWAP_EN BIT(7) #define TCPC_CC_STATUS 0x1d #define TCPC_CC_STATUS_TOGGLING BIT(5) #define TCPC_CC_STATUS_TERM BIT(4) +#define TCPC_CC_STATUS_TERM_RP 0 +#define TCPC_CC_STATUS_TERM_RD 1 +#define TCPC_CC_STATE_SRC_OPEN 0 #define TCPC_CC_STATUS_CC2_SHIFT 2 #define TCPC_CC_STATUS_CC2_MASK 0x3 #define TCPC_CC_STATUS_CC1_SHIFT 0 #define TCPC_CC_STATUS_CC1_MASK 0x3 #define TCPC_POWER_STATUS 0x1e +#define TCPC_POWER_STATUS_DBG_ACC_CON BIT(7) #define TCPC_POWER_STATUS_UNINIT BIT(6) #define TCPC_POWER_STATUS_SOURCING_VBUS BIT(4) #define TCPC_POWER_STATUS_VBUS_DET BIT(3) #define TCPC_POWER_STATUS_VBUS_PRES BIT(2) +#define TCPC_POWER_STATUS_SINKING_VBUS BIT(0) #define TCPC_FAULT_STATUS 0x1f @@ -121,6 +131,10 @@ #define TCPC_RX_DETECT 0x2f #define TCPC_RX_DETECT_HARD_RESET BIT(5) #define TCPC_RX_DETECT_SOP BIT(0) +#define TCPC_RX_DETECT_SOP1 BIT(1) +#define TCPC_RX_DETECT_SOP2 BIT(2) +#define TCPC_RX_DETECT_DBG1 BIT(3) +#define TCPC_RX_DETECT_DBG2 BIT(4) #define TCPC_RX_BYTE_CNT 0x30 #define TCPC_RX_BUF_FRAME_TYPE 0x31 @@ -139,6 +153,8 @@ #define TCPC_TX_DATA 0x54 /* through 0x6f */ #define TCPC_VBUS_VOLTAGE 0x70 +#define TCPC_VBUS_VOLTAGE_MASK 0x3ff +#define TCPC_VBUS_VOLTAGE_LSB_MV 25 #define TCPC_VBUS_SINK_DISCONNECT_THRESH 0x72 #define TCPC_VBUS_SINK_DISCONNECT_THRESH_LSB_MV 25 #define TCPC_VBUS_SINK_DISCONNECT_THRESH_MAX 0x3ff
This change adds some of the register bit definitions from the TCPCI spec: https://www.usb.org/sites/default/files/documents/ usb-port_controller_specification_rev2.0_v1.0_0.pdf Signed-off-by: Badhri Jagan Sridharan <badhri@google.com> --- drivers/usb/typec/tcpm/tcpci.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)