Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0+
0002 /*
0003  * Copyright (c) 2017 Dialog Semiconductor
0004  *
0005  * Author: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
0006  */
0007 
0008 #ifndef __LINUX_USB_PD_ADO_H
0009 #define __LINUX_USB_PD_ADO_H
0010 
0011 /* ADO : Alert Data Object */
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 /* __LINUX_USB_PD_ADO_H */