27 Apr, 2020

4 commits

  • We are currently using SC_R_LAST as a marker for imx8 power domain tree
    nodes without a resource attached. This value is compiled into dtb as
    part of the linux build and used by uboot.

    The SC_R_LAST constant changes frequently as SCFW resources are added
    (by design) and every time we need to update linux and uboot headers
    together or boot can fail.

    Fix this by replacing SC_R_LAST usage with a new constant SC_R_NONE
    defined to be 0xFFF0.

    Signed-off-by: Leonard Crestez
    Reviewed-by: Peng Fan
    (cherry picked from commit 93f302a6642adedfdd6336b22d08f32284539e35)
    (cherry picked from commit be563f60e44757afe4ef2b89d2f043b6aa2a1573)

    Leonard Crestez
     
  • When fspi is assigned to M4, we have to let the fspi probe failed when
    its power domain is failed to power up. Because not all devices have power
    domain (for example, external devices on the board). Current checking
    resource owner in power domain probe is not good, change to check it in
    power on.

    Signed-off-by: Ye Li
    (cherry picked from commit b62b82ad595a744f07306db4b88d644ae024872a)
    (cherry picked from commit 4f970fee94b5b817ce7f31f82e2082edab03e9a0)

    Ye Li
     
  • For all the devices used and set ACTIVE in U-Boot, U-Boot needs
    to power off all of them without the check of resource owner.

    When we create software partition before booting Linux, the resource
    own checkw will return false, and cause the power domain not powered
    off. If without the check of resource owner, the power domain in
    the other software partition could be powered off with parent
    partition could access child partition resources.

    Signed-off-by: Peng Fan
    (cherry picked from commit 3e29e8adace18035850be9d56cc277c64a221e85)
    (cherry picked from commit 81e64d882c2904f5aa38121d020f6e21e142aaf8)
    (cherry picked from commit ac653837834c3647097eb6ba8a2ed3f8244aa322)

    Peng Fan
     
  • The iMX8MM EVK board uses BD71837MWV pmic. Add its Non-DM driver to u-boot.

    Signed-off-by: Ye Li
    (cherry picked from commit e9a3bec2e95a4b2b4641223c8ee4ebd8da76d7f9)

    Ye Li
     

23 Apr, 2020

2 commits

  • If without this flag, calling dev_power_domain_ctrl will iteratively remove
    the power domain device will causes iteratively power off parent PD. This is
    not expected by imx8-power-domain-legacy driver. Power off parent PD is
    controlled by the driver internally.

    So set DM_FLAG_DEFAULT_PD_CTRL_OFF to avoid such issue

    Signed-off-by: Ye Li

    Ye Li
     
  • Add power_domain_lookup_name interface to power domain uclass to find
    a power domain device by its DTB node name, not using its associated
    client device.

    Through this interface, we can operate the power domain devices directly.
    This is needed for non-DM drivers.

    Reviewed-by: Peng Fan
    Signed-off-by: Ye Li
    (cherry picked from commit f5fcb1903d935c2e1037b6a1fc61f1c290818727)
    (cherry picked from commit 68b9f562f46bbecdd11643bacc70fe3cd2e1243c)
    (cherry picked from commit 388d2adeecbaae91306e1df4ee0461aefe22e589)

    Ye Li
     

30 Mar, 2020

1 commit


11 Mar, 2020

1 commit

  • Currently when booting the kernel on i.MX8 U-Boot hangs in an
    endless loop when switching off dma, connectivity or lsio power
    domains during device removal. It hapens first when removing
    gpio0 (gpio@5d080000) device, here its power domain device
    'lsio_gpio0' is obtained for switching off power. Since the
    obtained 'lsio_gpio0' device is removed afterwards, its power
    domain is also switched off and here the parent power domain
    device 'lsio_power_domain' is optained for switching off the
    power. Thereafter, when the obtained 'lsio_power_domain' is
    removed, device_remove() removes its first child 'lsio_gpio0'.
    During this child removal the 'lsio_power_domain' device is
    obtained again for switching and when removing it later,
    the same child removal is repeated, so we are stuck in an
    endless loop. Below is a snippet from dm tree on i.MX8QXP
    for better illustration of the DM devices relationship:

    Class Index Probed Driver Name
    -----------------------------------------------------------
    root 0 [ + ] root_driver root_driver
    ...
    simple_bus 0 [ + ] generic_simple_bus |-- imx8qx-pm
    power_doma 0 [ + ] imx8_power_domain | |-- lsio_power_domain
    power_doma 1 [ + ] imx8_power_domain | | |-- lsio_gpio0
    power_doma 2 [ + ] imx8_power_domain | | |-- lsio_gpio1

    Do not remove a power domain device if it is a parent of the
    currently controlled device.

    Fixes: 52edfed65de9 ("dm: core: device: switch off power domain after device removal")
    Signed-off-by: Anatolij Gustschin
    Reported-by: Oliver Graute
    Reported-by: Fabio Estevam
    Reviewed-by: Simon Glass
    Reviewed-by: Lokesh Vutla
    Tested-by: Fabio Estevam

    Anatolij Gustschin
     

11 Feb, 2020

2 commits

  • sandbox conversion to SDL2
    TPM TEE driver
    Various minor sandbox video enhancements
    New driver model core utility functions

    Tom Rini
     
  • The commit e8e9715df2d4 ("regulator: fixed: Modify enable-active-high behavior")
    fixed the regulator driver behavior when 'enable-active-high' is defined.
    Unfortunately, this patch used dm_regulator_platdata()'s "boot_on" member
    to set GPIOD_IS_OUT_ACTIVE flag and enable the regulator.

    The issue here is that regulator_common_ofdata_to_platdata() is called
    _before_ regulator_pre_probe() function in which the 'regulator-boot-on'
    property is asserted.

    As a result the GPIOD_IS_OUT_ACTIVE flag is not set and gpio_request_by_name()
    called in the former function is not enabling the regulator.
    This is problematic for e.g. i.MX ethernet driver, which then tries to
    perform initialization without power (and fails).

    The solution here is to explicitly enable regulator in regulator_pre_probe()
    callback only when 'regulator-boot-on' property is present in device tree.
    The GPIOD_IS_OUT_ACTIVE flag is not set at all, but relevant gpio is
    requested.

    Signed-off-by: Lukasz Majewski
    Reviewed-by: Patrice Chotard
    Tested-by: Patrice Chotard

    Lukasz Majewski
     

06 Feb, 2020

5 commits


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
     

20 Jan, 2020

1 commit

  • commit 29f7d05a347a ("dm: core: Move ofdata_to_platdata() call earlier")
    introduces changes in the order of device_probe execution.
    ofdata_to_platdata now comes before the probe function which resulted in
    a deadlock and caused boot hang on AM6 devices.

    Deadlock sequence: tps62360_regulator_ofdata_to_platdata --> i2c_get_chip
    --> device_probe(tps62360) --> tps62360_regulator_ofdata_to_platdata

    Hence convert ofdata_to_platdata to the missing probe function to fix the
    hang.

    Fixes: 22e8f18980d6 ("power: regulator: tps6236x: add support for tps6236x regulators")
    Signed-off-by: Keerthy
    Tested-by: Lokesh Vutla
    Signed-off-by: Lokesh Vutla

    Keerthy
     

16 Jan, 2020

1 commit


10 Jan, 2020

1 commit


09 Jan, 2020

1 commit


08 Jan, 2020

2 commits


15 Dec, 2019

3 commits


03 Dec, 2019

1 commit


23 Nov, 2019

2 commits


12 Nov, 2019

2 commits


10 Nov, 2019

6 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
     
  • In order to adapt the following pmics, make the interface more compatible.
    Support buck and ldo suspend voltage setting and getting.
    Supprot buck and ldo suspend enable/disable setting and getting.

    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

3 commits