X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=board%2Ftoradex%2Fapalis-tk1%2Fas3722_init.c;h=68169f55480860b63cd9cb943897cf8ab09c0f9a;hb=c05ed00afb95fa5237f16962fccf5810437317bf;hp=4917034e1af1ab720b05e32d30b881f1078a225b;hpb=04735a8fc45ba7c9f5b17d4837a0c649087b29e1;p=oweals%2Fu-boot.git diff --git a/board/toradex/apalis-tk1/as3722_init.c b/board/toradex/apalis-tk1/as3722_init.c index 4917034e1a..68169f5548 100644 --- a/board/toradex/apalis-tk1/as3722_init.c +++ b/board/toradex/apalis-tk1/as3722_init.c @@ -1,12 +1,13 @@ +// SPDX-License-Identifier: GPL-2.0+ /* * Copyright (c) 2012-2016 Toradex, Inc. - * - * SPDX-License-Identifier: GPL-2.0+ */ #include +#include #include #include +#include #include "as3722_init.h" /* AS3722-PMIC-specific early init code - get CPU rails up, etc */ @@ -44,6 +45,29 @@ void pmic_enable_cpu_vdd(void) udelay(10 * 1000); #endif + /* + * Make sure all non-fused regulators are down. + * That way we're in known state after software reboot from linux + */ + tegra_i2c_ll_write_addr(AS3722_I2C_ADDR, 2); + tegra_i2c_ll_write_data(0x0003, I2C_SEND_2_BYTES); + udelay(10 * 1000); + tegra_i2c_ll_write_addr(AS3722_I2C_ADDR, 2); + tegra_i2c_ll_write_data(0x0004, I2C_SEND_2_BYTES); + udelay(10 * 1000); + tegra_i2c_ll_write_addr(AS3722_I2C_ADDR, 2); + tegra_i2c_ll_write_data(0x001b, I2C_SEND_2_BYTES); + udelay(10 * 1000); + tegra_i2c_ll_write_addr(AS3722_I2C_ADDR, 2); + tegra_i2c_ll_write_data(0x0014, I2C_SEND_2_BYTES); + udelay(10 * 1000); + tegra_i2c_ll_write_addr(AS3722_I2C_ADDR, 2); + tegra_i2c_ll_write_data(0x001a, I2C_SEND_2_BYTES); + udelay(10 * 1000); + tegra_i2c_ll_write_addr(AS3722_I2C_ADDR, 2); + tegra_i2c_ll_write_data(0x0019, I2C_SEND_2_BYTES); + udelay(10 * 1000); + debug("%s: Setting VDD_CPU to 1.0V via AS3722 reg 0/4D\n", __func__); /* * Bring up VDD_CPU via the AS3722 PMIC on the PWR I2C bus.