diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2025-03-29 14:33:13 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2025-03-29 14:33:13 -0700 |
commit | dcab75a3c8a3b136781a6d8d088afdca974291ae (patch) | |
tree | d9bbd0f186430a8e7b50cefb482e671d6715284a /include/linux/mfd/max77705-private.h | |
parent | 054b7477e3bfdd562b723ce5e227bd3fd2621f51 (diff) | |
parent | a8d1376568619d5b7fb867929b01eeaa59bb9097 (diff) |
Merge tag 'mfd-next-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
Pull MFD updates from Lee Jones:
"Maxim MAX77705:
- Added core MFD driver.
- Added charger driver.
- Added devicetree bindings for the charger and MFD core.
- Added Haptic controller support via the input subsystem.
- Added LED support.
- Added support to simple-mfd-i2c for fuel gauge and hwmon.
Samsung S2MPU05 (Exynos7870 PMIC):
- Added core MFD support.
- Added Regulator support for 21 LDOs and 5 BUCKs.
- Added devicetree bindings for regulators and the PMIC core.
TI TPS65215 & TPS65214:
- Added support to the existing TPS65219 driver.
- Added devicetree bindings.
STMicroelectronics STM32MP25:
- Added support to the stm32-timers MFD driver.
- Added devicetree bindings.
Congatec Board Controller (CGBC):
- Added HWMON support for internal sensors.
- Added support for the conga-SA8 module.
Microchip LAN969X:
- Enabled the at91-usart MFD driver for this architecture.
MediaTek MT6359:
- Added mfd_cell for mt6359-accdet to allow its driver to probe.
Other misc driver updates:
- AXP20X (AXP717): Added AXP717_TS_PIN_CFG register to writeable regs
for temperature sensor configuration.
- SM501: Switched to using BIT() macro to mitigate potential integer
overflows in GPIO functions.
- ENE KB3930: Added a NULL pointer check for off_gpios during probe
to prevent potential dereference.
- SYSCON: Added a check for invalid resource size to prevent issues
from DT misconfiguration.
- CGBC: Corrected signedness issues in cgbc_session_request
- intel_soc_pmic_chtdc_ti / intel_soc_pmic_crc: Removed unneeded
explicit assignment to REGCACHE_NONE.
- ipaq-micro / tps65010: Switched to using str_enable_disable()
helpers for clarity and potential size reduction.
- upboard-fpga: Removed unnecessary ACPI_PTR() annotation.
- max8997: Removed unused max8997_irq_exit() function, using devm_*
helpers instead.
- lp3943: Dropped unused #include <linux/pwm.h> from the header file.
- db8500-prcmu: Removed needless return statements in void APIs.
- qnap-mcu: Replaced commas with semicolons between expressions for
correctness.
- STA2X11: Removed the core MFD driver as the underlying platform
support was removed.
- EZX-PCAP: Removed the unused pcap_adc_sync function.
- PCF50633 (OpenMoko PMIC): Removed the entire driver (core, adc,
gpio, irq) as the underlying s3c24xx platform support was removed.
Devicetree updates:
- Converted fsl,mcu-mpc8349emitx binding to YAML
- Added qcom,msm8937-tcsr compatible
- Added microchip,sama7d65-flexcom compatible
- Added rockchip,rk3528-qos syscon compatible
- Added airoha,en7581-pbus-csr syscon compatible
- Added microchip,sama7d65-ddr3phy syscon compatible
- Added microchip,sama7d65-sfrbu syscon compatible"
* tag 'mfd-next-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (49 commits)
mfd: cgbc-core: Add support for conga-SA8
dt-bindings: mfd: syscon: Add microchip,sama7d65-sfrbu
dt-bindings: mfd: syscon: Add microchip,sama7d65-ddr3phy
mfd: cgbc: Add support for HWMON
dt-bindings: mfd: syscon: Add the pbus-csr node for Airoha EN7581 SoC
mfd: cgbc-core: Cleanup signedness in cgbc_session_request()
mfd: pcf50633: Remove remaining PCF50633 support
mfd: pcf50633: Remove unused platform IRQ code
mfd: pcF50633-gpio: Remove unused driver
mfd: pcf50633-adc: Remove unused driver
mfd: qnap-mcu: Convert commas to semicolons in qnap_mcu_exec()
mfd: mt6397-core: Add mfd_cell for mt6359-accdet
dt-bindings: mfd: syscon: Add rk3528 QoS register compatible
dt-bindings: mfd: atmel,sama5d2-flexcom: Add microchip,sama7d65-flexcom
mfd: ezx-pcap: Remove unused pcap_adc_sync
mfd: db8500-prcmu: Remove needless return in three void APIs
mfd: Remove STA2x11 core driver
mfd: max77620: Allow building as a module
mfd: ene-kb3930: Fix a potential NULL pointer dereference
dt-bindings: mfd: qcom,tcsr: Add compatible for MSM8937
...
Diffstat (limited to 'include/linux/mfd/max77705-private.h')
-rw-r--r-- | include/linux/mfd/max77705-private.h | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/include/linux/mfd/max77705-private.h b/include/linux/mfd/max77705-private.h new file mode 100644 index 000000000000..214de7feeb8c --- /dev/null +++ b/include/linux/mfd/max77705-private.h @@ -0,0 +1,195 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Maxim MAX77705 definitions. + * + * Copyright (C) 2015 Samsung Electronics, Inc. + * Copyright (C) 2025 Dzmitry Sankouski <dsankouski@gmail.com> + */ + +#ifndef __LINUX_MFD_MAX77705_PRIV_H +#define __LINUX_MFD_MAX77705_PRIV_H + +#define MAX77705_SRC_IRQ_CHG BIT(0) +#define MAX77705_SRC_IRQ_TOP BIT(1) +#define MAX77705_SRC_IRQ_FG BIT(2) +#define MAX77705_SRC_IRQ_USBC BIT(3) +#define MAX77705_SRC_IRQ_ALL (MAX77705_SRC_IRQ_CHG | MAX77705_SRC_IRQ_TOP | \ + MAX77705_SRC_IRQ_FG | MAX77705_SRC_IRQ_USBC) + +/* MAX77705_PMIC_REG_PMICREV register */ +#define MAX77705_VERSION_SHIFT 3 +#define MAX77705_REVISION_MASK GENMASK(2, 0) +#define MAX77705_VERSION_MASK GENMASK(7, MAX77705_VERSION_SHIFT) +/* MAX77705_PMIC_REG_MAINCTRL1 register */ +#define MAX77705_MAINCTRL1_BIASEN_SHIFT 7 +#define MAX77705_MAINCTRL1_BIASEN_MASK BIT(MAX77705_MAINCTRL1_BIASEN_SHIFT) +/* MAX77705_PMIC_REG_MCONFIG2 (haptics) register */ +#define MAX77705_CONFIG2_MEN_SHIFT 6 +#define MAX77705_CONFIG2_MODE_SHIFT 7 +#define MAX77705_CONFIG2_HTYP_SHIFT 5 +/* MAX77705_PMIC_REG_SYSTEM_INT_MASK register */ +#define MAX77705_SYSTEM_IRQ_BSTEN_INT BIT(3) +#define MAX77705_SYSTEM_IRQ_SYSUVLO_INT BIT(4) +#define MAX77705_SYSTEM_IRQ_SYSOVLO_INT BIT(5) +#define MAX77705_SYSTEM_IRQ_TSHDN_INT BIT(6) +#define MAX77705_SYSTEM_IRQ_TM_INT BIT(7) +/* MAX77705_RGBLED_REG_LEDEN register */ +#define MAX77705_RGBLED_EN_WIDTH 2 +/* MAX77705_RGBLED_REG_LEDBLNK register */ +#define MAX77705_RGB_DELAY_100_STEP_LIM 500 +#define MAX77705_RGB_DELAY_100_STEP_COUNT 4 +#define MAX77705_RGB_DELAY_100_STEP 100 +#define MAX77705_RGB_DELAY_250_STEP_LIM 3250 +#define MAX77705_RGB_DELAY_250_STEP 250 +#define MAX77705_RGB_DELAY_500_STEP 500 +#define MAX77705_RGB_DELAY_500_STEP_COUNT 10 +#define MAX77705_RGB_DELAY_500_STEP_LIM 5000 +#define MAX77705_RGB_DELAY_1000_STEP_LIM 8000 +#define MAX77705_RGB_DELAY_1000_STEP_COUNT 13 +#define MAX77705_RGB_DELAY_1000_STEP 1000 +#define MAX77705_RGB_DELAY_2000_STEP 2000 +#define MAX77705_RGB_DELAY_2000_STEP_COUNT 13 +#define MAX77705_RGB_DELAY_2000_STEP_LIM 12000 + +enum max77705_hw_rev { + MAX77705_PASS1 = 1, + MAX77705_PASS2, + MAX77705_PASS3 +}; + +enum max77705_reg { + MAX77705_PMIC_REG_PMICID1 = 0x00, + MAX77705_PMIC_REG_PMICREV = 0x01, + MAX77705_PMIC_REG_MAINCTRL1 = 0x02, + MAX77705_PMIC_REG_BSTOUT_MASK = 0x03, + MAX77705_PMIC_REG_FORCE_EN_MASK = 0x08, + MAX77705_PMIC_REG_MCONFIG = 0x10, + MAX77705_PMIC_REG_MCONFIG2 = 0x11, + MAX77705_PMIC_REG_INTSRC = 0x22, + MAX77705_PMIC_REG_INTSRC_MASK = 0x23, + MAX77705_PMIC_REG_SYSTEM_INT = 0x24, + MAX77705_PMIC_REG_RESERVED_25 = 0x25, + MAX77705_PMIC_REG_SYSTEM_INT_MASK = 0x26, + MAX77705_PMIC_REG_RESERVED_27 = 0x27, + MAX77705_PMIC_REG_RESERVED_28 = 0x28, + MAX77705_PMIC_REG_RESERVED_29 = 0x29, + MAX77705_PMIC_REG_BOOSTCONTROL1 = 0x4C, + MAX77705_PMIC_REG_BOOSTCONTROL2 = 0x4F, + MAX77705_PMIC_REG_SW_RESET = 0x50, + MAX77705_PMIC_REG_USBC_RESET = 0x51, + + MAX77705_PMIC_REG_END +}; + +enum max77705_chg_reg { + MAX77705_CHG_REG_BASE = 0xB0, + MAX77705_CHG_REG_INT = 0, + MAX77705_CHG_REG_INT_MASK, + MAX77705_CHG_REG_INT_OK, + MAX77705_CHG_REG_DETAILS_00, + MAX77705_CHG_REG_DETAILS_01, + MAX77705_CHG_REG_DETAILS_02, + MAX77705_CHG_REG_DTLS_03, + MAX77705_CHG_REG_CNFG_00, + MAX77705_CHG_REG_CNFG_01, + MAX77705_CHG_REG_CNFG_02, + MAX77705_CHG_REG_CNFG_03, + MAX77705_CHG_REG_CNFG_04, + MAX77705_CHG_REG_CNFG_05, + MAX77705_CHG_REG_CNFG_06, + MAX77705_CHG_REG_CNFG_07, + MAX77705_CHG_REG_CNFG_08, + MAX77705_CHG_REG_CNFG_09, + MAX77705_CHG_REG_CNFG_10, + MAX77705_CHG_REG_CNFG_11, + + MAX77705_CHG_REG_CNFG_12, + MAX77705_CHG_REG_CNFG_13, + MAX77705_CHG_REG_CNFG_14, + MAX77705_CHG_REG_SAFEOUT_CTRL +}; + +enum max77705_fuelgauge_reg { + STATUS_REG = 0x00, + VALRT_THRESHOLD_REG = 0x01, + TALRT_THRESHOLD_REG = 0x02, + SALRT_THRESHOLD_REG = 0x03, + REMCAP_REP_REG = 0x05, + SOCREP_REG = 0x06, + TEMPERATURE_REG = 0x08, + VCELL_REG = 0x09, + TIME_TO_EMPTY_REG = 0x11, + FULLSOCTHR_REG = 0x13, + CURRENT_REG = 0x0A, + AVG_CURRENT_REG = 0x0B, + SOCMIX_REG = 0x0D, + SOCAV_REG = 0x0E, + REMCAP_MIX_REG = 0x0F, + FULLCAP_REG = 0x10, + RFAST_REG = 0x15, + AVR_TEMPERATURE_REG = 0x16, + CYCLES_REG = 0x17, + DESIGNCAP_REG = 0x18, + AVR_VCELL_REG = 0x19, + TIME_TO_FULL_REG = 0x20, + CONFIG_REG = 0x1D, + ICHGTERM_REG = 0x1E, + REMCAP_AV_REG = 0x1F, + FULLCAP_NOM_REG = 0x23, + LEARN_CFG_REG = 0x28, + FILTER_CFG_REG = 0x29, + MISCCFG_REG = 0x2B, + QRTABLE20_REG = 0x32, + FULLCAP_REP_REG = 0x35, + RCOMP_REG = 0x38, + VEMPTY_REG = 0x3A, + FSTAT_REG = 0x3D, + DISCHARGE_THRESHOLD_REG = 0x40, + QRTABLE30_REG = 0x42, + ISYS_REG = 0x43, + DQACC_REG = 0x45, + DPACC_REG = 0x46, + AVGISYS_REG = 0x4B, + QH_REG = 0x4D, + VSYS_REG = 0xB1, + TALRTTH2_REG = 0xB2, + VBYP_REG = 0xB3, + CONFIG2_REG = 0xBB, + IIN_REG = 0xD0, + OCV_REG = 0xEE, + VFOCV_REG = 0xFB, + VFSOC_REG = 0xFF, + + MAX77705_FG_END +}; + +enum max77705_led_reg { + MAX77705_RGBLED_REG_BASE = 0x30, + MAX77705_RGBLED_REG_LEDEN = 0, + MAX77705_RGBLED_REG_LED0BRT, + MAX77705_RGBLED_REG_LED1BRT, + MAX77705_RGBLED_REG_LED2BRT, + MAX77705_RGBLED_REG_LED3BRT, + MAX77705_RGBLED_REG_LEDRMP, + MAX77705_RGBLED_REG_LEDBLNK, + MAX77705_LED_REG_END +}; + +enum max77705_charger_battery_state { + MAX77705_BATTERY_NOBAT, + MAX77705_BATTERY_PREQUALIFICATION, + MAX77705_BATTERY_DEAD, + MAX77705_BATTERY_GOOD, + MAX77705_BATTERY_LOWVOLTAGE, + MAX77705_BATTERY_OVERVOLTAGE, + MAX77705_BATTERY_RESERVED +}; + +enum max77705_charger_charge_type { + MAX77705_CHARGER_CONSTANT_CURRENT = 1, + MAX77705_CHARGER_CONSTANT_VOLTAGE, + MAX77705_CHARGER_END_OF_CHARGE, + MAX77705_CHARGER_DONE +}; + +#endif /* __LINUX_MFD_MAX77705_PRIV_H */ |