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


05 Nov, 2019

2 commits

  • The power domain tree is not accepted by Linux Kernel upstream.
    only a single pd node is used currently, as following:

    pd: imx8qx-pd {
    compatible = "fsl,imx8qm-scu-pd", "fsl,scu-pd";
    #power-domain-cells = ;
    };

    So to migrate to use upstream linux dts, we also need a driver
    to support this.

    This patch is to support the new method, compared with legacy power
    domain tree, it will be simpiler, because each device will
    has resource id as power domain index, it will be directly passed
    to scfw, and no need to let power domain build that tree. If multiple
    power domain is needed, it is the dts node should has correctly power
    domains entry added and sequence correct.

    Signed-off-by: Peng Fan

    Peng Fan
     
  • The current i.MX8 power domain driver is based on i.MX vendor
    power domain tree which will retire later.

    The Linux upstream use a single pd node for power domain driver,
    and U-Boot will adopt that. When U-Boot i.MX8 dts synced with
    Linux Kernel upstream and related driver ready, the legacy
    driver will be removed.

    Signed-off-by: Peng Fan

    Peng Fan
     

04 Nov, 2019

3 commits


18 Oct, 2019

1 commit