/* SPDX-License-Identifier: GPL-2.0+ */ /* * Copyright (c) 2011 Samsung Electronics Co., Ltd * http://www.samsung.com */ #ifndef __LINUX_MFD_SEC_CORE_H #define __LINUX_MFD_SEC_CORE_H /* Macros to represent minimum voltages for LDO/BUCK */ #define MIN_3000_MV … #define MIN_2500_MV … #define MIN_2000_MV … #define MIN_1800_MV … #define MIN_1500_MV … #define MIN_1400_MV … #define MIN_1000_MV … #define MIN_900_MV … #define MIN_850_MV … #define MIN_800_MV … #define MIN_750_MV … #define MIN_650_MV … #define MIN_600_MV … #define MIN_500_MV … /* Ramp delay in uV/us */ #define RAMP_DELAY_12_MVUS … /* Macros to represent steps for LDO/BUCK */ #define STEP_50_MV … #define STEP_25_MV … #define STEP_12_5_MV … #define STEP_6_25_MV … struct gpio_desc; enum sec_device_type { … }; /** * struct sec_pmic_dev - s2m/s5m master device for sub-drivers * @dev: Master device of the chip * @pdata: Platform data populated with data from DTS * or board files * @regmap_pmic: Regmap associated with PMIC's I2C address * @i2c: I2C client of the main driver * @device_type: Type of device, matches enum sec_device_type * @irq_base: Base IRQ number for device, required for IRQs * @irq: Generic IRQ number for device * @irq_data: Runtime data structure for IRQ controller * @wakeup: Whether or not this is a wakeup device */ struct sec_pmic_dev { … }; int sec_irq_init(struct sec_pmic_dev *sec_pmic); void sec_irq_exit(struct sec_pmic_dev *sec_pmic); int sec_irq_resume(struct sec_pmic_dev *sec_pmic); struct sec_platform_data { … }; /** * sec_regulator_data - regulator data * @id: regulator id * @initdata: regulator init data (contraints, supplies, ...) */ struct sec_regulator_data { … }; /* * sec_opmode_data - regulator operation mode data * @id: regulator id * @mode: regulator operation mode */ struct sec_opmode_data { … }; /* * samsung regulator operation mode * SEC_OPMODE_OFF Regulator always OFF * SEC_OPMODE_ON Regulator always ON * SEC_OPMODE_LOWPOWER Regulator is on in low-power mode * SEC_OPMODE_SUSPEND Regulator is changed by PWREN pin * If PWREN is high, regulator is on * If PWREN is low, regulator is off */ enum sec_opmode { … }; #endif /* __LINUX_MFD_SEC_CORE_H */