• Tomi Valkeinen's avatar
    ARM: dts: am57xx-beagle-x15: set VDD_SD to always-on · 7e381ec6
    Tomi Valkeinen authored
    LDO1 regulator (VDD_SD) is connected to SoC's vddshv8. vddshv8 needs to
    be kept always powered (see commit 5a0f93c6 ("ARM: dts: Add
    am57xx-beagle-x15"), but at the moment VDD_SD is enabled/disabled
    depending on whether an SD card is inserted or not.
    
    This patch sets LDO1 regulator to always-on.
    
    This patch has a side effect of fixing another issue, HDMI DDC not
    working when SD card is not inserted:
    
    Why this happens is that the tpd12s015 (HDMI level shifter/ESD
    protection chip) has LS_OE GPIO input, which needs to be enabled for the
    HDMI DDC to work. LS_OE comes from gpio6_28. The pin that provides
    gpio6_28 is powered by vddshv8, and vddshv8 comes from VDD_SD.
    
    So when SD card is not inserted, VDD_SD is disabled, and LS_OE stays
    off.
    
    The proper fix for the HDMI DDC issue would be to maybe have the pinctrl
    framework manage the pin specific power.
    
    Apparently this fixes also a third issue (copy paste from Kishon's
    patch):
    
    ldo1_reg in addition to being connected to the io lines is also
    connected to the card detect line. On card removal, omap_hsmmc
    driver does a regulator_disable causing card detect line to be
    pulled down. This raises a card insertion interrupt and once the
    MMC core detects there is no card inserted, it does a
    regulator disable which again raises a card insertion interrupt.
    This happens in a loop causing infinite MMC interrupts.
    
    Fixes: 5a0f93c6 ("ARM: dts: Add am57xx-beagle-x15")
    Cc: Kishon Vijay Abraham I <kishon@ti.com>
    Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
    Reported-by: default avatarLouis McCarthy <compeoree@gmail.com>
    Acked-by: default avatarNishanth Menon <nm@ti.com>
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    7e381ec6
am57xx-beagle-x15.dts 16.4 KB