xref: /linux-6.15/include/linux/mfd/max77693.h (revision d7d8d7a2)
1*d7d8d7a2SKrzysztof Kozlowski /* SPDX-License-Identifier: GPL-2.0+ */
283871c00SChanwoo Choi /*
383871c00SChanwoo Choi  * max77693.h - Driver for the Maxim 77693
483871c00SChanwoo Choi  *
583871c00SChanwoo Choi  *  Copyright (C) 2012 Samsung Electrnoics
683871c00SChanwoo Choi  *  SangYoung Son <[email protected]>
783871c00SChanwoo Choi  *
883871c00SChanwoo Choi  * This program is not provided / owned by Maxim Integrated Products.
983871c00SChanwoo Choi  *
1083871c00SChanwoo Choi  * This driver is based on max8997.h
1183871c00SChanwoo Choi  *
1283871c00SChanwoo Choi  * MAX77693 has PMIC, Charger, Flash LED, Haptic, MUIC devices.
1383871c00SChanwoo Choi  * The devices share the same I2C bus and included in
1483871c00SChanwoo Choi  * this mfd driver.
1583871c00SChanwoo Choi  */
1683871c00SChanwoo Choi 
1783871c00SChanwoo Choi #ifndef __LINUX_MFD_MAX77693_H
1883871c00SChanwoo Choi #define __LINUX_MFD_MAX77693_H
1983871c00SChanwoo Choi 
20eb2d90c0SKrzysztof Kozlowski /* MAX77693 regulator IDs */
2180b022e2SJonghwa Lee enum max77693_regulators {
2280b022e2SJonghwa Lee 	MAX77693_ESAFEOUT1 = 0,
2380b022e2SJonghwa Lee 	MAX77693_ESAFEOUT2,
2480b022e2SJonghwa Lee 	MAX77693_CHARGER,
2580b022e2SJonghwa Lee 	MAX77693_REG_MAX,
2680b022e2SJonghwa Lee };
2780b022e2SJonghwa Lee 
28f8457d57SChanwoo Choi struct max77693_reg_data {
29f8457d57SChanwoo Choi 	u8 addr;
30f8457d57SChanwoo Choi 	u8 data;
31f8457d57SChanwoo Choi };
32f8457d57SChanwoo Choi 
33f8457d57SChanwoo Choi struct max77693_muic_platform_data {
34f8457d57SChanwoo Choi 	struct max77693_reg_data *init_data;
35f8457d57SChanwoo Choi 	int num_init_data;
36297620fdSChanwoo Choi 
37297620fdSChanwoo Choi 	int detcable_delay_ms;
382b75799fSChanwoo Choi 
392b75799fSChanwoo Choi 	/*
402b75799fSChanwoo Choi 	 * Default usb/uart path whether UART/USB or AUX_UART/AUX_USB
412b75799fSChanwoo Choi 	 * h/w path of COMP2/COMN1 on CONTROL1 register.
422b75799fSChanwoo Choi 	 */
432b75799fSChanwoo Choi 	int path_usb;
442b75799fSChanwoo Choi 	int path_uart;
45f8457d57SChanwoo Choi };
46f8457d57SChanwoo Choi 
47a0bc6072SJacek Anaszewski /* MAX77693 led flash */
48a0bc6072SJacek Anaszewski 
49a0bc6072SJacek Anaszewski /* triggers */
50a0bc6072SJacek Anaszewski enum max77693_led_trigger {
51a0bc6072SJacek Anaszewski 	MAX77693_LED_TRIG_OFF,
52a0bc6072SJacek Anaszewski 	MAX77693_LED_TRIG_FLASH,
53a0bc6072SJacek Anaszewski 	MAX77693_LED_TRIG_TORCH,
54a0bc6072SJacek Anaszewski 	MAX77693_LED_TRIG_EXT,
55a0bc6072SJacek Anaszewski 	MAX77693_LED_TRIG_SOFT,
56a0bc6072SJacek Anaszewski };
57a0bc6072SJacek Anaszewski 
58a0bc6072SJacek Anaszewski /* trigger types */
59a0bc6072SJacek Anaszewski enum max77693_led_trigger_type {
60a0bc6072SJacek Anaszewski 	MAX77693_LED_TRIG_TYPE_EDGE,
61a0bc6072SJacek Anaszewski 	MAX77693_LED_TRIG_TYPE_LEVEL,
62a0bc6072SJacek Anaszewski };
63a0bc6072SJacek Anaszewski 
64a0bc6072SJacek Anaszewski /* boost modes */
65a0bc6072SJacek Anaszewski enum max77693_led_boost_mode {
66a0bc6072SJacek Anaszewski 	MAX77693_LED_BOOST_NONE,
67a0bc6072SJacek Anaszewski 	MAX77693_LED_BOOST_ADAPTIVE,
68a0bc6072SJacek Anaszewski 	MAX77693_LED_BOOST_FIXED,
69a0bc6072SJacek Anaszewski };
70a0bc6072SJacek Anaszewski 
71a0bc6072SJacek Anaszewski /* MAX77693 */
72a0bc6072SJacek Anaszewski 
7383871c00SChanwoo Choi struct max77693_platform_data {
74f8457d57SChanwoo Choi 	/* muic data */
75f8457d57SChanwoo Choi 	struct max77693_muic_platform_data *muic_data;
76a0bc6072SJacek Anaszewski 	struct max77693_led_platform_data *led_data;
7783871c00SChanwoo Choi };
7883871c00SChanwoo Choi #endif	/* __LINUX_MFD_MAX77693_H */
79