27 Apr, 2020

1 commit


28 Jan, 2020

2 commits

  • Add a driver for the regulators in the the DA9063 PMIC.

    Robert Beckett: move regulator modes to header so board code can set
    modes. Correct mode mask used in ldo_set_mode.
    Add an option CONFIG_SPL_DM_REGULATOR_DA9063.

    Signed-off-by: Martin Fuzzey
    Signed-off-by: Robert Beckett

    Martin Fuzzey
     
  • This adds the basic register access operations and child regulator
    binding (if a regulator driver exists).

    Robert Beckett: simplify accesses by using bottom bit of address as
    offset overflow. This avoids the need to track which page we are on.
    Add an option CONFIG_SPL_DM_PMIC_DA9063.

    Signed-off-by: Martin Fuzzey
    Signed-off-by: Robert Beckett

    Martin Fuzzey
     

09 Jan, 2020

1 commit


08 Jan, 2020

1 commit

  • PCA9450 PMIC series is used to support iMX8MM (PCA9450A) and
    iMX8MN (PCA9450B). Add the PMIC driver for both PCA9450A and PCA9450B.

    Signed-off-by: Robin Gong
    Signed-off-by: Ye Li
    Signed-off-by: Peng Fan

    Ye Li
     

15 Dec, 2019

1 commit


23 Nov, 2019

1 commit


12 Nov, 2019

1 commit


10 Nov, 2019

5 commits

  • The RK809 is a Power Management IC (PMIC) for multimedia
    and handheld devices. They contains the following components:
    - Regulators(5*BUCKs, 9*LDOs, 2*SWITCHes)
    - RTC
    - Clocking

    Signed-off-by: Joseph Chen
    Signed-off-by: Elaine Zhang
    Reviewed-by: Kever Yang

    Joseph Chen
     
  • The RK817 is a Power Management IC (PMIC) for multimedia
    and handheld devices. They contains the following components:
    - Regulators(4*BUCKs, 1* BOOST, 9*LDOs, 1*SWITCH)
    - RTC
    - Clocking

    Signed-off-by: Joseph Chen
    Signed-off-by: Elaine Zhang
    Reviewed-by: Kever Yang

    Joseph Chen
     
  • The RK805 are a Power Management IC (PMIC) for multimedia
    and handheld devices. They contains the following components:
    - Regulators(4*BUCKs, 3*LDOs)
    - RTC
    - Clocking

    Signed-off-by: Elaine Zhang
    Reviewed-by: Kever Yang

    Elaine Zhang
     
  • The RK816 is a Power Management IC (PMIC) for multimedia
    and handheld devices. They contains the following components:
    - Regulators(4*BUCKs, 1*BOOST, 6*LDOs, 1*SWITCH)
    - RTC
    - Clocking

    Signed-off-by: Elaine Zhang
    Reviewed-by: Kever Yang

    Elaine Zhang
     
  • support parse regulator standard property:
    regulator-off-in-suspend;
    regulator-init-microvolt;
    regulator-suspend-microvolt:
    regulator_get_suspend_enable
    regulator_set_suspend_enable
    regulator_get_suspend_value
    regulator_set_suspend_value

    Signed-off-by: Joseph Chen
    Signed-off-by: Elaine Zhang
    Reviewed-by: Kever Yang

    Joseph Chen
     

08 Nov, 2019

1 commit


27 Aug, 2019

2 commits


19 Jul, 2019

1 commit

  • BD71837 and BD71847 is PMIC intended for powering single-core,
    dual-core, and quad-core SoC’s such as NXP-i.MX 8M. BD71847
    is used for example on NXP imx8mm EVK.

    Add regulator driver for ROHM BD71837 and BD71847 PMICs.
    BD71837 contains 8 bucks and 7 LDOS. BD71847 is reduced
    version containing 6 bucks and 6 LDOs. Voltages for DVS
    bucks (1-4 on BD71837, 1 and 2 on BD71847) can be adjusted
    when regulators are enabled. For other bucks and LDOs we may
    have over- or undershooting if voltage is adjusted when
    regulator is enabled. Thus this is prevented by default.

    BD718x7 has a quirk which may leave power output disabled
    after reset if enable/disable state was controlled by SW.
    Thus the SW control is only allowed for BD71837 bucks
    3 and 4 by default. The impact of this limitation must be
    evaluated board-by board and restrictions may need to be
    modified. (Linux driver get's these limitations from DT and we
    may want to implement same on u-Boot driver).

    Signed-off-by: Matti Vaittinen
    Reviewed-by: Simon Glass

    Matti Vaittinen
     

11 Jun, 2019

1 commit


12 Apr, 2019

4 commits

  • Add functions to read/update the non volatile memory of STPMIC1
    (8 bytes-register at 0xF8 address) and allow access
    with fuse command (bank=1, word > 0xF8).

    For example:

    STM32MP> fuse read 1 0xf8 8
    Reading bank 1:

    Word 0x000000f8: 000000ee 00000092 000000c0 00000002
    Word 0x000000fc: 000000f2 00000080 00000002 00000033

    Signed-off-by: Patrick Delaunay

    Patrick Delaunay
     
  • Alignment with STPMIC1 datasheet
    s/MAIN_CONTROL_REG/MAIN_CR/g
    s/MASK_RESET_BUCK/BUCKS_MRST_CR/g
    s/MASK_RESET_LDOS/LDOS_MRST_CR/g
    s/BUCKX_CTRL_REG/BUCKX_MAIN_CR/g
    s/VREF_CTRL_REG/REFDDR_MAIN_CR/g
    s/LDOX_CTRL_REG/LDOX_MAIN_CR/g
    s/USB_CTRL_REG/BST_SW_CR/g
    s/STPMIC1_NVM_USER_STATUS_REG/STPMIC1_NVM_SR/g
    s/STPMIC1_NVM_USER_CONTROL_REG/STPMIC1_NVM_CR/g
    and update all the associated defines.

    Signed-off-by: Patrick Delaunay

    Patrick Delaunay
     
  • Alignment with kernel driver name & binding
    introduced by https://patchwork.kernel.org/cover/10761943/
    to use the final marketing name = STPMIC1.

    Signed-off-by: Patrick Delaunay
    Reviewed-by: Lukasz Majewski

    Patrick Delaunay
     
  • Prepare file modification for kernel alignment and
    rename driver to stpmic1.

    Signed-off-by: Patrick Delaunay
    Reviewed-by: Lukasz Majewski

    Patrick Delaunay
     

11 Mar, 2019

1 commit

  • Changing voltage and enabling regulator might require delays so the
    regulator stabilizes at expected level.

    Add support for "regulator-ramp-delay" binding which can introduce
    required time to both enabling the regulator and to changing the
    voltage.

    Signed-off-by: Krzysztof Kozlowski
    Tested-by: Anand Moon
    Signed-off-by: Minkyu Kang

    Krzysztof Kozlowski
     

10 Feb, 2019

1 commit

  • regulator_set_enable() api throws an error in the following three cases:
    - when requested to disable an always-on regulator
    - when set_enable() ops not provided by regulator driver
    - when enabling is actually failed.(Error returned by the regulator driver)

    Sometimes consumer drivers doesn't want to track the first two scenarios
    and just need to worry about the case where enabling is actually failed.
    But it is also a good practice to have an error value returned in the
    first two cases.

    So introduce an api regulator_set_enable_if_allowed() which ignores the
    first two error cases and returns an error as given by regulator driver.
    Consumer drivers can use this api need not worry about the first two
    error conditions.

    Signed-off-by: Lokesh Vutla
    Reviewed-by: Simon Glass

    Lokesh Vutla
     

10 Dec, 2018

1 commit

  • Those driver are not DM drivers per se (not using the PMIC/regulator
    framework) and are using the legacy I2C API. Make them compatible with
    the DM_I2C API.

    This impacts the following drivers:
    - palmas (used by am57xx/dra7xx evms)
    - tps65218 (used by am43xx evms)
    - tps65217 and tps65910 (used by am335x evms and am335x boneblack vboot)
    - twl4030 (used by omap3_logicpd)
    - tps65217 (used by brppt1)
    - twl6030

    Signed-off-by: Jean-Jacques Hiblot
    Reviewed-by: Tom Rini
    Reviewed-by: Heiko Schocher

    Jean-Jacques Hiblot
     

20 Jul, 2018

1 commit


27 Jun, 2018

1 commit

  • The PFUZE3000 uses registers addresses up to 0xff.

    The DM pfuze100 driver supports both pfuze100 and pfuze3000. Allow it
    to use the device type to return the correct number of registers.

    Also rename the too generic PMIC_NUM_OF_REGS enumeration value for
    pfuze3000 to match the other "PFUZE3000_" prefixed enumerations and the
    pfuze100 enumeration value PFUZE100_NUM_OF_REGS.

    Cc: Peng Fan
    Cc: Jaehoon Chung
    Cc: Stefano Babic
    Cc: Fabio Estevam
    Signed-off-by: Trent Piepho
    Reviewed-by: Fabio Estevam

    Trent Piepho
     

18 May, 2018

1 commit


11 May, 2018

2 commits


07 May, 2018

3 commits

  • When U-Boot started using SPDX tags we were among the early adopters and
    there weren't a lot of other examples to borrow from. So we picked the
    area of the file that usually had a full license text and replaced it
    with an appropriate SPDX-License-Identifier: entry. Since then, the
    Linux Kernel has adopted SPDX tags and they place it as the very first
    line in a file (except where shebangs are used, then it's second line)
    and with slightly different comment styles than us.

    In part due to community overlap, in part due to better tag visibility
    and in part for other minor reasons, switch over to that style.

    This commit changes all instances where we have multiple licenses (in
    these cases, dual license) declared in the SPDX-License-Identifier tag.
    In this case we change from listing "LICENSE-A LICENSE-B" or "LICENSE-A
    or LICENSE-B" or "(LICENSE-A OR LICENSE-B)" to "LICENSE-A OR LICENSE-B"
    as per the Linux Kernel style document. Note that parenthesis are
    allowed so when they were used before we continue to use them.

    Reviewed-by: Fabio Estevam
    Signed-off-by: Tom Rini

    Tom Rini
     
  • When U-Boot started using SPDX tags we were among the early adopters and
    there weren't a lot of other examples to borrow from. So we picked the
    area of the file that usually had a full license text and replaced it
    with an appropriate SPDX-License-Identifier: entry. Since then, the
    Linux Kernel has adopted SPDX tags and they place it as the very first
    line in a file (except where shebangs are used, then it's second line)
    and with slightly different comment styles than us.

    In part due to community overlap, in part due to better tag visibility
    and in part for other minor reasons, switch over to that style.

    This commit changes all instances where we have a single declared
    license in the tag as both the before and after are identical in tag
    contents. There's also a few places where I found we did not have a tag
    and have introduced one.

    Signed-off-by: Tom Rini

    Tom Rini
     
  • A common voltage of 1.35V was being programmed for all am43 board
    versions. EPOS-EVM Needs 1.20V for LPDDR2.

    Fixes: fc69d472621b5 (“board: ti: AM43XX: Add ddr voltage rail configuration”)
    Reported-by: James Doublesin
    Signed-off-by: Keerthy
    Reviewed-by: Tom Rini

    Keerthy
     

20 Mar, 2018

1 commit

  • This driver implements register read/write operations for STPMU1.

    The STPMU1 PMIC provides 4 BUCKs, 6 LDOs, 1 VREF
    and 2 power switches. It is accessed via an I2C interface.
    This device is used with STM32MP1 SoCs.

    Signed-off-by: Patrick Delaunay

    Patrick Delaunay
     

24 Jan, 2018

1 commit


29 Dec, 2017

1 commit


13 Dec, 2017

2 commits

  • Texas Instrument's TPS65910 PMIC contains 3 buck DC-DC converts, one
    boost DC-DC converter and 8 LDOs. This patch implements driver model
    support for the TPS65910 PMIC and its regulators making the get/set
    API for regulator value/enable available.
    This patch depends on the patch "am33xx: Add a function to query MPU
    voltage in uV" to build correctly. For boards relying on the DT
    include file tps65910.dtsi the v3 patch "power: extend prefix match
    to regulator-name property" and an appropriate regulator naming is
    also required.

    Signed-off-by: Felix Brack
    Reviewed-by: Simon Glass

    Felix Brack
     
  • This patch extends pmic_bind_children prefix matching. In addition to
    the node name the property regulator-name is used while trying to match
    prefixes. This allows assigning different drivers to regulator nodes
    named regulator@1 and regulator@10 for example.
    I have discarded the idea of using other properties then regulator-name
    as I do not see any benefit in using property compatible or even
    regulator-compatible. Of course I am open to change this if there are
    good reasons to do so.

    Signed-off-by: Felix Brack
    Reviewed-by: Simon Glass

    Felix Brack
     

01 Aug, 2017

1 commit


29 Jul, 2017

1 commit

  • Convert this PMIC driver to driver model and fix up other users. The
    regulator and GPIO functions are now handled by separate drivers.

    Update nyan-big to work correct. Three boards will need to be updated by
    the maintainers: apalis-tk1, cei-tk1-som. Also the TODO in the code re
    as3722_sd_set_voltage() needs to be completed.

    Signed-off-by: Simon Glass
    Reviewed-by: Lukasz Majewski
    Tested-by: Marcel Ziswiler
    Tested-on: Jetson-TK1
    Tested-by: Stephen Warren

    Simon Glass