Linux-libre 5.4.48-gnu
[librecmc/linux-libre.git] / include / linux / mfd / max77693.h
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * max77693.h - Driver for the Maxim 77693
4  *
5  *  Copyright (C) 2012 Samsung Electrnoics
6  *  SangYoung Son <hello.son@samsung.com>
7  *
8  * This program is not provided / owned by Maxim Integrated Products.
9  *
10  * This driver is based on max8997.h
11  *
12  * MAX77693 has PMIC, Charger, Flash LED, Haptic, MUIC devices.
13  * The devices share the same I2C bus and included in
14  * this mfd driver.
15  */
16
17 #ifndef __LINUX_MFD_MAX77693_H
18 #define __LINUX_MFD_MAX77693_H
19
20 /* MAX77693 regulator IDs */
21 enum max77693_regulators {
22         MAX77693_ESAFEOUT1 = 0,
23         MAX77693_ESAFEOUT2,
24         MAX77693_CHARGER,
25         MAX77693_REG_MAX,
26 };
27
28 struct max77693_reg_data {
29         u8 addr;
30         u8 data;
31 };
32
33 struct max77693_muic_platform_data {
34         struct max77693_reg_data *init_data;
35         int num_init_data;
36
37         int detcable_delay_ms;
38
39         /*
40          * Default usb/uart path whether UART/USB or AUX_UART/AUX_USB
41          * h/w path of COMP2/COMN1 on CONTROL1 register.
42          */
43         int path_usb;
44         int path_uart;
45 };
46
47 /* MAX77693 led flash */
48
49 /* triggers */
50 enum max77693_led_trigger {
51         MAX77693_LED_TRIG_OFF,
52         MAX77693_LED_TRIG_FLASH,
53         MAX77693_LED_TRIG_TORCH,
54         MAX77693_LED_TRIG_EXT,
55         MAX77693_LED_TRIG_SOFT,
56 };
57
58 /* trigger types */
59 enum max77693_led_trigger_type {
60         MAX77693_LED_TRIG_TYPE_EDGE,
61         MAX77693_LED_TRIG_TYPE_LEVEL,
62 };
63
64 /* boost modes */
65 enum max77693_led_boost_mode {
66         MAX77693_LED_BOOST_NONE,
67         MAX77693_LED_BOOST_ADAPTIVE,
68         MAX77693_LED_BOOST_FIXED,
69 };
70
71 /* MAX77693 */
72
73 struct max77693_platform_data {
74         /* muic data */
75         struct max77693_muic_platform_data *muic_data;
76         struct max77693_led_platform_data *led_data;
77 };
78 #endif  /* __LINUX_MFD_MAX77693_H */