1 /*
2  * Copyright (c) 2022 Google LLC
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 /* PI3USB9201 USB BC 1.2 Charger Detector driver definitions */
8 
9 #ifndef ZEPHYR_INCLUDE_USB_BC12_PI3USB9201_H
10 #define ZEPHYR_INCLUDE_USB_BC12_PI3USB9201_H
11 
12 #define PI3USB9201_REG_CTRL_1		0x0
13 #define PI3USB9201_REG_CTRL_2		0x1
14 #define PI3USB9201_REG_CLIENT_STS	0x2
15 #define PI3USB9201_REG_HOST_STS		0x3
16 
17 /* Flags */
18 #define PI3USB9201_ALWAYS_POWERED BIT(0)
19 
20 /* Control_1 register bit definitions */
21 #define PI3USB9201_REG_CTRL_1_INT_MASK		BIT(0)
22 #define PI3USB9201_REG_CTRL_1_MODE_SHIFT	1
23 #define PI3USB9201_REG_CTRL_1_MODE_MASK		BIT_MASK(3)
24 
25 /* Control_2 register bit definitions */
26 #define PI3USB9201_REG_CTRL_2_AUTO_SW		BIT(1)
27 #define PI3USB9201_REG_CTRL_2_START_DET		BIT(3)
28 
29 /* Host status register bit definitions */
30 #define PI3USB9201_REG_HOST_STS_BC12_DET	BIT(0)
31 #define PI3USB9201_REG_HOST_STS_DEV_PLUG	BIT(1)
32 #define PI3USB9201_REG_HOST_STS_DEV_UNPLUG	BIT(2)
33 
34 enum pi3usb9201_mode {
35 	PI3USB9201_POWER_DOWN,
36 	PI3USB9201_SDP_HOST_MODE,
37 	PI3USB9201_DCP_HOST_MODE,
38 	PI3USB9201_CDP_HOST_MODE,
39 	PI3USB9201_CLIENT_MODE,
40 	PI3USB9201_RESERVED_1,
41 	PI3USB9201_RESERVED_2,
42 	PI3USB9201_USB_PATH_ON,
43 };
44 
45 #endif /* ZEPHYR_INCLUDE_USB_BC12_PI3USB9201_H */
46