Commit Graph

59 Commits

Author SHA1 Message Date
Jeppe Odgaard
dffbd4fc88 license: fix copyright owner
Change license owner to Prevas due to initially wrong owner due to company
mix-up during co-development.

Signed-off-by: Jeppe Odgaard <jeppe.odgaard@prevas.dk>
2025-06-26 10:56:48 -05:00
Aksel Skauge Mellbye
cb8d6dfcbb drivers: mfd: npm13xx: Namespace register macros
Prefix macros for register access with NPM13XX_ to avoid
symbol naming conflicts.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-06-24 22:51:13 +02:00
Sergei Ovchinnikov
645159dc26 drivers: npm13xx: add support for nPM1304
Add support for nPM1304 in the npm13xx drivers. The nPM1304 supports
different voltage and current ranges which are handled through the
initialization macros.

Signed-off-by: Sergei Ovchinnikov <sergei.ovchinnikov@nordicsemi.no>
2025-06-23 16:19:43 +01:00
Sergei Ovchinnikov
89b8383633 drivers: npm13xx: rename npm1300 to npm13xx
Rename npm1300 to npm13xx in function names, documentation, etc. where
applicable for all the npm13xx drivers

Signed-off-by: Sergei Ovchinnikov <sergei.ovchinnikov@nordicsemi.no>
2025-06-23 16:19:43 +01:00
Sergei Ovchinnikov
fb007db50a drivers: npm1300: rename to npm13xx
Rename npm1300 drivers and header files to npm13xx to allow for usage
with other nPM13xx product variants.

Signed-off-by: Sergei Ovchinnikov <sergei.ovchinnikov@nordicsemi.no>
2025-06-23 16:19:43 +01:00
Tony Han
cc206e05b9 drivers: mfd: add FLEXCOM drivers for Microchip SAM devices
The FLEXCOM offers several serial communication protocols that are
managed by the three sub-modules USART, SPI, and TWI (I2C).

Signed-off-by: Tony Han <tony.han@microchip.com>
2025-05-28 08:14:08 +02:00
Sergei Ovchinnikov
eb811d1753 drivers: mfd: npm2100: fix timer value calculation
A -1 was missing from the timer value calculation. In addition,
DIV_ROUND_CLOSEST was replaced with a custom macro fixing #84782.

Signed-off-by: Sergei Ovchinnikov <sergei.ovchinnikov@nordicsemi.no>
2025-05-27 14:44:59 +02:00
Fin Maaß
2a4b3148ed drivers: entropy: add maxq10xx
add maxq10xx entropy device.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-03-23 13:18:44 +01:00
Sergei Ovchinnikov
32b79cfd1c drivers: mfd: mfd_npm2100: add open drain and pull up config to int pin
Add possibility to configure open drain and pull up on nPM2100's
interrupt output through DTS flags.

Signed-off-by: Sergei Ovchinnikov <sergei.ovchinnikov@nordicsemi.no>
2025-03-20 12:16:51 +01:00
Lothar Felten
1c50c3a12b drivers: regulator: add support for AXP2101 power management IC
Add initial support for the AXP2101 power management IC from X-powers.
Remark: only DC/DC1 and ALDO have been tested on real hardware.

Co-authored-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
Co-authored-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>

Signed-off-by: Lothar Felten <lothar.felten@gmail.com>
2025-03-07 19:43:05 +01:00
Martino Facchin
efe3bf5b29 drivers: add nxp pf1550 mfd (charger+regulator)
Add driver for nxp pf1550 PMIC

Signed-off-by: Martino Facchin <m.facchin@arduino.cc>
2025-02-14 03:03:10 +01:00
Tom Hughes
57f38844ee drivers: mfd: mfd_adp5585: Fix -Wsometimes-uninitialized warning
When building with clang it warns:

drivers/mfd/mfd_adp5585.c:59:6: error: variable 'reg_int_status' is used
uninitialized whenever 'if' condition is false
[-Werror,-Wsometimes-uninitialized]
        if (ret == 0) {
            ^~~~~~~~
drivers/mfd/mfd_adp5585.c:70:7: note: uninitialized use occurs here
        if ((reg_int_status & ADP5585_INT_GPI)
             ^~~~~~~~~~~~~~    && device_is_ready(data->child.gpio_dev)) {
drivers/mfd/mfd_adp5585.c:59:2: note: remove the 'if' if its condition
is always true
        if (ret == 0) {
        ^~~~~~~~~~~~~~
drivers/mfd/mfd_adp5585.c:54:24: note: initialize the variable
'reg_int_status' to silence this warning
        uint8_t reg_int_status;
                              ^
                               = '\0'

Signed-off-by: Tom Hughes <tomhughes@chromium.org>
2025-02-07 02:23:10 +01:00
Sergei Ovchinnikov
1d8ef88b95 drivers: npm2100: remove SHPHLD button reconfiguration
Do not reconfigure the SHPHLD button behavior by writing to the sticky
register in drivers: mfd, regulator: npm2100. This is removed to avoid
unexpected behaviors during or after the ship or hibernation modes.

Signed-off-by: Sergei Ovchinnikov <sergei.ovchinnikov@nordicsemi.no>
2025-02-03 14:03:00 +01:00
Sergei Ovchinnikov
5aeae417d8 drivers: mfd: npm2100: align formatting
Align formatting of defines at the top of the mfd_npm2100.c file

Signed-off-by: Sergei Ovchinnikov <sergei.ovchinnikov@nordicsemi.no>
2025-02-03 14:03:00 +01:00
Audun Korneliussen
7fd3472231 drivers: mfd: npm2100: Add hibernate_pt mode support
Extend mfd_npm2100_hibernate function with pass_through argument,
which is used to differentiate between hibernate and hibernate_pt
modes.

Signed-off-by: Audun Korneliussen <audun.korneliussen@nordicsemi.no>
2025-02-03 14:03:00 +01:00
Audun Korneliussen
db4d24df53 drivers: mfd: npm2100: Fix shiphold flag
Fix checking of shiphold active level.

Signed-off-by: Audun Korneliussen <audun.korneliussen@nordicsemi.no>
2025-02-03 14:03:00 +01:00
Guillaume Ranquet
e297293a54 drivers: mfd: add MAX22017 DAC/GPIO MFD
The MAX22017 DAC provides two 16 Channel Analog outputs and 6 GPIOs.

Signed-off-by: Guillaume Ranquet <granquet@baylibre.com>
2025-01-21 07:07:33 +01:00
Gergo Vari
2759adaf1a drivers: rtc: maxim,ds3231: RTC driver
This is a squash of all the groundwork needed to
get a functioning driver for the DS3231 with the RTC API.

Signed-off-by: Gergo Vari <work@gergovari.com>
2025-01-07 23:00:05 +01:00
TOKITA Hiroshi
0161dd0938 drivers: gpio: Add support for Awinic AW9523B GPIO controller
Add support for GPIO controller feature of AW9523B.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
Co-authored-by: Benjamin Cabé <kartben@gmail.com>
2024-12-05 07:44:58 +01:00
Audun Korneliussen
506dfc815a drivers: mfd: npm2100: Add npm2100 mfd driver
Add mfd driver for the npm2100 pmic device.
The driver contains basic initialization routines,
and functionality not covered by other device driver APIs.

Signed-off-by: Audun Korneliussen <audun.korneliussen@nordicsemi.no>
2024-12-04 14:19:53 -05:00
Tim Lin
70739a1e74 drivers: mfd: it8801_altctrl: Add alternate controller for MFD
IT8801 support GPIO alternate function switching.
Some GPIO pins can be switched as KSO or PWM function.

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2024-12-03 19:56:50 +01:00
Tim Lin
3de8989852 drivers: mfd: it8801: Initialize IT8801 multi-function device drivers
The IT8801 is an I/O expander that provides GPIO, PWM, Keyboard
functions via the I2C bus.

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2024-12-03 19:56:50 +01:00
Jeppe Odgaard
8933e6cefa drivers: ad559x: fix mfd_ad559x_i2c_read_reg
Reading a register requires 0x70 to be ORed with the register address.

Signed-off-by: Jeppe Odgaard <jeppe.odgaard@prevas.dk>
2024-11-25 12:17:00 +01:00
Benedikt Schmidt
acbc14e767 drivers: gpio: implement parallel mode in TLE9104
Implement the parallel mode in the powertrain switch TLE9104.
This allows that OUT1 and OUT2 are controlled together, as well
as OUT3 and OUT4.

Signed-off-by: Benedikt Schmidt <benedikt.schmidt@embedded-solutions.at>
2024-10-17 15:38:45 -04:00
Chekhov Ma
ad2745471c drivers: mfd: add new driver "mfd_adp5585"
Add mfd_adp5585 and gpio_adp5585 driver. This driver enables ADP5585
as an GPIO expander.
This chip is used as an GPIO expander on i.MX93 EVK. GPIO pinctrl,
read/write and interrupt is supported.
Note that ADP5585 has 2 GPIO banks with 5 pins each. The driver combines
two group into a 16-bit port. Index 0~4 correspond to R0~R4 lines, index
8~12 correspond to C0~C4 lines. Index 5~7 is reserved unavailable.

Signed-off-by: Chekhov Ma <chekhov.ma@nxp.com>
2024-05-08 16:09:08 -04:00
Benjamin Cabé
30ce8b1b18 drivers: fix bad SPDX-License-Identifier header
fix typo in SPDX header

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2024-05-08 09:23:16 -04:00
Andy Sinclair
1f156c352c drivers: mfd: npm1300: Fixed configuration of long press reset
Added write of strobe register after setting long press reset
configuration.  This is needed to apply the new value.

Signed-off-by: Andy Sinclair <andy.sinclair@nordicsemi.no>
2024-04-23 15:35:46 +02:00
Benedikt Schmidt
888d071fe7 drivers: sensor: implement output diagnostics sensor for TLE9104
Implement a sensor for the output diagnostics of the power train
switch TLE9104.

Signed-off-by: Benedikt Schmidt <benedikt.schmidt@embedded-solutions.at>
2024-04-09 11:07:27 +02:00
Benedikt Schmidt
84a40778af drivers: gpio: split up driver for TLE9104 into a MFD
Split up the driver for the power train switch TLE9104 into a
MFD and GPIO.

Signed-off-by: Benedikt Schmidt <benedikt.schmidt@embedded-solutions.at>
2024-04-09 11:07:27 +02:00
Jeppe Odgaard
17b1912bc3 drivers: ad559x: add i2c bus support
Rename ad5592 files in dts, driver and include to ad559x and add support
for I2C bus which is required for AD5593.

Signed-off-by: Jeppe Odgaard <jeppe.odgaard@prevas.dk>
2024-04-01 12:18:47 -05:00
Andy Sinclair
c7f59c9e40 drivers: mfd: npm1300: Added long press reset config
Added configuration of long press reset functionality.
Includes ship/hibernate to wake debounce time and
disabled/one_button/two_button mode selection.

Signed-off-by: Andy Sinclair <andy.sinclair@nordicsemi.no>
2024-03-27 14:32:17 +00:00
Andy Sinclair
9813221ea6 drivers: mfd: npm1300: Added GPIO events
Added GPIO input edge events

Signed-off-by: Andy Sinclair <andy.sinclair@nordicsemi.no>
2024-03-21 10:25:42 +00:00
Benedikt Schmidt
961c985ee4 drivers: pwm: split up driver for MAX31790 into a MFD
Split up the driver for the PWM controller MAX31790
into a multi function device driver.

Signed-off-by: Benedikt Schmidt <benedikt.schmidt@embedded-solutions.at>
2024-03-20 07:38:18 -05:00
Benedikt Schmidt
31450fcb12 drivers: gpio: split up driver for BD8LB600FS into a GPIO and MFD
Split up the driver for the low side switch BD8LB600FS into a GPIO
and MFD part.

Signed-off-by: Benedikt Schmidt <benedikt.schmidt@embedded-solutions.at>
2024-03-15 09:00:26 +01:00
Mahesh Mahadevan
72fd8d14da drivers: mfd: Add NXP LP Flexcomm driver
1. This driver allows to configure the Low Power Flexcomm
   interface as a UART, SPI or I2C device.
2. Manages the interrupts and dispatches it to the
   appropriate device driver.
3. A Flexcomm interface can be configured to be used as
   I2C and UART device. However a SPI device cannot be used
   concurrently with I2C or UART. Add checks for this feature.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2024-03-13 22:38:46 +00:00
Martin Kiepfer
0addb90ff7 drivers: mfd: axp192: add possibility to disable N_VBUSEN functionality
By default N_VBUSEN signal is used by the host to define if VBUS
signal should be used for power supply (VBUS-IPSOUT).

This feature enables the possbibility to change this behaviour.
When N_VBUSEN detection is disabled, axp192 will automatically
decide to use VBUS (REG10H[7] = 1).
Please refer to datasheet for details.

Signed-off-by: Martin Kiepfer <mrmarteng@teleschirm.org>
2024-03-06 10:23:31 +00:00
Martin Kiepfer
2a83c58023 drivers: gpio: axp192: Add support to control EXTEN pin
AXP192 features an EXTEN pin that is on output only.

This commit appends control of EXTEN pin to gpio functionality
of AXP192.
Port-Mapping is as follows:
- [0..4]: GPIO0..4
- [5]: EXTEN

Signed-off-by: Martin Kiepfer <mrmarteng@teleschirm.org>
2024-03-06 10:23:31 +00:00
Bernt Johan Damslora
73d56dea66 drivers: mfd: npm6001: set SWREADY
Sets SWREADY in MFD initialization, so that hysteresis mode can be used.

Signed-off-by: Bernt Johan Damslora <bernt.damslora@nordicsemi.no>
2024-02-26 10:42:38 +01:00
Lukasz Madej
1ed51885d3 drivers: mfd: mfd_ad5592: fix reset magic sending
Use proper register mask for software reset register so
reset magic value sent to device is not malformed.

Co-authored-by: Bartosz Bilas <b.bilas@grinn-global.com>
Signed-off-by: Lukasz Madej <l.madej@grinn-global.com>
2024-01-10 10:01:52 +01:00
Lukasz Madej
c69ddc1018 drivers: mfd: mfd_ad5592: fix typo
Fix a typo in `AD5592_REG_VAL_MASK` macro name.

Signed-off-by: Lukasz Madej <l.madej@grinn-global.com>
2024-01-10 10:01:52 +01:00
Lukasz Madej
a5b467646a drivers: mfd: mfd_ad9952: fix reset magic value
Reset magic value equal 0xDAC is invalid. According to device
specification [1] a valid value is 0x5AC.
Use proper value to make driver aligned with the spec.

[1] https://www.analog.com/media/en/technical-documentation/data-sheets/ad5592r.pdf

Signed-off-by: Lukasz Madej <l.madej@grinn-global.com>
2024-01-10 10:01:52 +01:00
Bernt Johan Damslora
5fc7304878 drivers: mfd: npm1300: Add separate initialization priority
Enables setting the initialization priority of the nPM1300 independently
from other MFDs.

Signed-off-by: Bernt Johan Damslora <Bernt.Damslora@nordicsemi.no>
2023-11-08 15:09:06 +00:00
Bernt Johan Damslora
950e25578a drivers: mfd: npm6001: Add separate initialization priority
Enables setting the initialization priority of the nPM6001 independently
from other MFDs.

Signed-off-by: Bernt Johan Damslora <Bernt.Damslora@nordicsemi.no>
2023-11-08 15:09:06 +00:00
Bartosz Bilas
9bdff044f0 drivers: mfd: add AD5592 MFD driver
This commit introduces a driver for
Analog AD5592 8-channel, configurable ADC/DAC/GPIO chip.

Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com>
2023-11-08 10:07:41 +01:00
Bartosz Bilas
4a397402a7 drivers: mfd: add Maxim MAX20335 MFD driver
Maxim MAX20335 is a PMIC with Ultra-Low IQ Voltage Regulators and
Battery Chargers for Small Lithium Ion Systems.

Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com>
2023-11-02 20:32:40 +00:00
Bartosz Bilas
66f5fce68f drivers: mfd: gpio: adjust init priority
Take into account the SPI bus init priorirty
that can be used for MFD drivers.

Signed-off-by: Bartosz Bilas <bartosz.bilas@hotmail.com>
2023-10-26 09:50:31 +02:00
Andy Sinclair
7cf4eff731 drivers: mfd: npm1300: Fixed race condition in event callback
If an event occurs between the status registers being read and
the event being cleared, the interrupt line will remain active.

As the interrupt is edge triggered,  all future interrupts
will being ignored.  This problem will also occur if an I2C
transation fails in the callback.

The state of the interrupt pin is now checked at the end of the
callback, and a retry is attempted if the interrupt has not
been cleared.

Signed-off-by: Andy Sinclair <andy.sinclair@nordicsemi.no>
2023-10-23 12:55:04 +02:00
Andy Sinclair
733834851d drivers: mfd: npm1300: Added shiphold button release event
Added event for detecting release of shiphold button

Signed-off-by: Andy Sinclair <andy.sinclair@nordicsemi.no>
2023-10-23 12:55:04 +02:00
Keith Short
c9f822df27 gpio: nct38xx: Remove reg access wrappers
Remove the register access wrappers used to read/write the NCT38xx
register space.

Signed-off-by: Keith Short <keithshort@google.com>
2023-09-11 11:00:47 +02:00
Keith Short
ea40f3af24 mfd: Add NCT38xx multi-function driver
The Nuvoton NCT38xx is a multi-function device providing a TCPC
controller and a I/O expander (GPIO driver).  Add a multi-function
driver to manage exclusive access to the device.

Tested with "twister -T tests/drivers/build_all/gpio".

Signed-off-by: Keith Short <keithshort@google.com>
2023-09-11 11:00:47 +02:00