mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
rockchip: rk3399-puma: add boot-on regulator to override BIOS_DISABLE
The (Qseven) BIOS_DISABLE signal on the RK3399-Q7 (Puma) keeps the eMMC and SPI in reset initially and we need to write a GPIO to turn them on before continuing the boot-up. This adds the DTS entries for the additional regulator and makes pinctrl and gpio3 available during SPL. It also adds a hook to the spl_board_init() to ensure that the regulator gets probed and enabled. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
0b5e7aab0e
commit
482cf22333
2 changed files with 36 additions and 4 deletions
|
@ -101,6 +101,24 @@
|
|||
regulator-max-microvolt = <3300000>;
|
||||
};
|
||||
|
||||
/*
|
||||
* The Qseven BIOS_DISABLE signal on the RK3399-Q7 keeps the on-module
|
||||
* eMMC and SPI flash powered-down initially (in fact it keeps the
|
||||
* reset signal asserted). Even though it is an enable signal, we
|
||||
* model this as a regulator.
|
||||
*/
|
||||
bios_enable: bios_enable {
|
||||
compatible = "regulator-fixed";
|
||||
u-boot,dm-pre-reloc;
|
||||
regulator-name = "bios_enable";
|
||||
enable-active-low;
|
||||
gpio = <&gpio3 29 GPIO_ACTIVE_HIGH>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
};
|
||||
|
||||
vccadc_ref: vccadc-ref {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vcc1v8_sys";
|
||||
|
@ -459,7 +477,7 @@
|
|||
};
|
||||
|
||||
&pcie_phy {
|
||||
status = "okay";
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pmu_io_domains {
|
||||
|
@ -486,7 +504,7 @@
|
|||
};
|
||||
|
||||
&sdmmc {
|
||||
u-boot,dm-pre-reloc;
|
||||
u-boot,dm-pre-reloc;
|
||||
clock-frequency = <150000000>;
|
||||
clock-freq-min-max = <100000 150000000>;
|
||||
supports-sd;
|
||||
|
@ -533,10 +551,15 @@
|
|||
status = "okay";
|
||||
};
|
||||
|
||||
&gpio3 {
|
||||
u-boot,dm-pre-reloc;
|
||||
};
|
||||
|
||||
&pinctrl {
|
||||
/* Pins that are not explicitely used by any devices */
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&puma_pin_hog>;
|
||||
|
||||
hog {
|
||||
puma_pin_hog: puma_pin_hog {
|
||||
rockchip,pins =
|
||||
|
@ -576,7 +599,7 @@
|
|||
i2c8 {
|
||||
i2c8_xfer_a: i2c8-xfer {
|
||||
rockchip,pins = <1 21 RK_FUNC_1 &pcfg_pull_up>,
|
||||
<1 20 RK_FUNC_1 &pcfg_pull_up>;
|
||||
<1 20 RK_FUNC_1 &pcfg_pull_up>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -652,4 +675,3 @@
|
|||
&spi5 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
|
|
@ -34,6 +34,16 @@ int board_init(void)
|
|||
|
||||
void spl_board_init(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
/*
|
||||
* Turning the eMMC and SPI back on (if disabled via the Qseven
|
||||
* BIOS_ENABLE) signal is done through a always-on regulator).
|
||||
*/
|
||||
ret = regulators_enable_boot_on(false);
|
||||
if (ret)
|
||||
debug("%s: Cannot enable boot on regulator\n", __func__);
|
||||
|
||||
preloader_console_init();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue