0001
0002
0003
0004
0005
0006
0007
0008 #ifndef __LINUX_USB_PD_ADO_H
0009 #define __LINUX_USB_PD_ADO_H
0010
0011
0012 #define USB_PD_ADO_TYPE_SHIFT 24
0013 #define USB_PD_ADO_TYPE_MASK 0xff
0014 #define USB_PD_ADO_FIXED_BATT_SHIFT 20
0015 #define USB_PD_ADO_FIXED_BATT_MASK 0xf
0016 #define USB_PD_ADO_HOT_SWAP_BATT_SHIFT 16
0017 #define USB_PD_ADO_HOT_SWAP_BATT_MASK 0xf
0018
0019 #define USB_PD_ADO_TYPE_BATT_STATUS_CHANGE BIT(1)
0020 #define USB_PD_ADO_TYPE_OCP BIT(2)
0021 #define USB_PD_ADO_TYPE_OTP BIT(3)
0022 #define USB_PD_ADO_TYPE_OP_COND_CHANGE BIT(4)
0023 #define USB_PD_ADO_TYPE_SRC_INPUT_CHANGE BIT(5)
0024 #define USB_PD_ADO_TYPE_OVP BIT(6)
0025
0026 static inline unsigned int usb_pd_ado_type(u32 ado)
0027 {
0028 return (ado >> USB_PD_ADO_TYPE_SHIFT) & USB_PD_ADO_TYPE_MASK;
0029 }
0030
0031 static inline unsigned int usb_pd_ado_fixed_batt(u32 ado)
0032 {
0033 return (ado >> USB_PD_ADO_FIXED_BATT_SHIFT) &
0034 USB_PD_ADO_FIXED_BATT_MASK;
0035 }
0036
0037 static inline unsigned int usb_pd_ado_hot_swap_batt(u32 ado)
0038 {
0039 return (ado >> USB_PD_ADO_HOT_SWAP_BATT_SHIFT) &
0040 USB_PD_ADO_HOT_SWAP_BATT_MASK;
0041 }
0042 #endif