Server IP : 15.235.198.142 / Your IP : 216.73.216.14 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /lib/modules/6.8.0-60-generic/build/include/linux/mfd/ |
Upload File : |
/* SPDX-License-Identifier: GPL-2.0-or-later */ /* Copyright (C) 2018 ROHM Semiconductors */ #ifndef __LINUX_MFD_ROHM_H__ #define __LINUX_MFD_ROHM_H__ #include <linux/regmap.h> #include <linux/regulator/driver.h> enum rohm_chip_type { ROHM_CHIP_TYPE_BD9571, ROHM_CHIP_TYPE_BD9573, ROHM_CHIP_TYPE_BD9574, ROHM_CHIP_TYPE_BD9576, ROHM_CHIP_TYPE_BD71815, ROHM_CHIP_TYPE_BD71828, ROHM_CHIP_TYPE_BD71837, ROHM_CHIP_TYPE_BD71847, ROHM_CHIP_TYPE_AMOUNT }; struct rohm_regmap_dev { struct device *dev; struct regmap *regmap; }; #define ROHM_DVS_LEVEL_RUN BIT(0) #define ROHM_DVS_LEVEL_IDLE BIT(1) #define ROHM_DVS_LEVEL_SUSPEND BIT(2) #define ROHM_DVS_LEVEL_LPSR BIT(3) #define ROHM_DVS_LEVEL_SNVS BIT(4) #define ROHM_DVS_LEVEL_VALID_AMOUNT 5 #define ROHM_DVS_LEVEL_UNKNOWN 0 /** * struct rohm_dvs_config - dynamic voltage scaling register descriptions * * @level_map: bitmap representing supported run-levels for this * regulator * @run_reg: register address for regulator config at 'run' state * @run_mask: value mask for regulator voltages at 'run' state * @run_on_mask: enable mask for regulator at 'run' state * @idle_reg: register address for regulator config at 'idle' state * @idle_mask: value mask for regulator voltages at 'idle' state * @idle_on_mask: enable mask for regulator at 'idle' state * @suspend_reg: register address for regulator config at 'suspend' state * @suspend_mask: value mask for regulator voltages at 'suspend' state * @suspend_on_mask: enable mask for regulator at 'suspend' state * @lpsr_reg: register address for regulator config at 'lpsr' state * @lpsr_mask: value mask for regulator voltages at 'lpsr' state * @lpsr_on_mask: enable mask for regulator at 'lpsr' state * * Description of ROHM PMICs voltage configuration registers for different * system states. This is used to correctly configure the PMIC at startup * based on values read from DT. */ struct rohm_dvs_config { uint64_t level_map; unsigned int run_reg; unsigned int run_mask; unsigned int run_on_mask; unsigned int idle_reg; unsigned int idle_mask; unsigned int idle_on_mask; unsigned int suspend_reg; unsigned int suspend_mask; unsigned int suspend_on_mask; unsigned int lpsr_reg; unsigned int lpsr_mask; unsigned int lpsr_on_mask; unsigned int snvs_reg; unsigned int snvs_mask; unsigned int snvs_on_mask; }; #if IS_ENABLED(CONFIG_REGULATOR_ROHM) int rohm_regulator_set_dvs_levels(const struct rohm_dvs_config *dvs, struct device_node *np, const struct regulator_desc *desc, struct regmap *regmap); int rohm_regulator_set_voltage_sel_restricted(struct regulator_dev *rdev, unsigned int sel); #endif #endif