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 */
79