Commit 03633c4e authored by Lorenz Brun's avatar Lorenz Brun Committed by Heiko Stuebner
Browse files

arm64: dts: rockchip: fix USB regulator on ROCK64



Currently the ROCK64 device tree specifies two regulators, vcc_host_5v
and vcc_host1_5v for USB VBUS on the device. Both of those are however
specified with RK_PA2 as the GPIO enabling them, causing the following
error when booting:

  rockchip-pinctrl pinctrl: pin gpio0-2 already requested by vcc-host-5v-regulator; cannot claim for vcc-host1-5v-regulator
  rockchip-pinctrl pinctrl: pin-2 (vcc-host1-5v-regulator) status -22
  rockchip-pinctrl pinctrl: could not request pin 2 (gpio0-2) from group usb20-host-drv  on device rockchip-pinctrl
  reg-fixed-voltage vcc-host1-5v-regulator: Error applying setting, reverse things back

Looking at the schematic, there are in fact three USB regulators,
vcc_host_5v, vcc_host1_5v and vcc_otg_v5. But the enable signal for all
three is driven by Q2604 which is in turn driven by GPIO_A2/PA2.

Since these three regulators are not controllable separately, I removed
the second one which was causing the error and added labels for all
rails to the single regulator.

Signed-off-by: default avatarLorenz Brun <lorenz@brun.one>
Tested-by: default avatarDiederik de Haas <didi.debian@cknow.org>
Link: https://lore.kernel.org/r/20230421213841.3079632-1-lorenz@brun.one


Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
parent ac9a7868
Loading
Loading
Loading
Loading
+2 −12
Original line number Diff line number Diff line
@@ -37,7 +37,8 @@
		vin-supply = <&vcc_io>;
	};

	vcc_host_5v: vcc-host-5v-regulator {
	/* Common enable line for all of the rails mentioned in the labels */
	vcc_host_5v: vcc_host1_5v: vcc_otg_5v: vcc-host-5v-regulator {
		compatible = "regulator-fixed";
		gpio = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>;
		pinctrl-names = "default";
@@ -48,17 +49,6 @@
		vin-supply = <&vcc_sys>;
	};

	vcc_host1_5v: vcc_otg_5v: vcc-host1-5v-regulator {
		compatible = "regulator-fixed";
		gpio = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&usb20_host_drv>;
		regulator-name = "vcc_host1_5v";
		regulator-always-on;
		regulator-boot-on;
		vin-supply = <&vcc_sys>;
	};

	vcc_sys: vcc-sys {
		compatible = "regulator-fixed";
		regulator-name = "vcc_sys";