[PATCH v3 12/12] rockchip: fix boot_devices constants

Johan Jonker jbx6244 at gmail.com
Fri Mar 18 16:17:33 CET 2022


Hi Simon,

On 3/12/22 03:24, Simon Glass wrote:
> Hi Johan,
> 
> On Thu, 3 Mar 2022 at 16:53, Johan Jonker <jbx6244 at gmail.com> wrote:
>>
>> The DT node name pattern in mmc-controller.yaml for mmc
>> is "^mmc(@.*)?$". The Rockchip mmc nodes have been synced
>> with Linux, so update the boot_devices constants as well.
>>
>> Signed-off-by: Johan Jonker <jbx6244 at gmail.com>
>> Reviewed-by: Simon Glass <sjg at chromium.org>
>> ---
>>  arch/arm/mach-rockchip/rk3188/rk3188.c | 4 ++--
>>  arch/arm/mach-rockchip/rk322x/rk322x.c | 4 ++--
>>  arch/arm/mach-rockchip/rk3288/rk3288.c | 4 ++--
>>  arch/arm/mach-rockchip/rk3328/rk3328.c | 4 ++--
>>  arch/arm/mach-rockchip/rk3368/rk3368.c | 4 ++--
>>  5 files changed, 10 insertions(+), 10 deletions(-)
> 
> This series seems to work OK on snow. But on jerry I get:
> 
> U-Boot 2022.04-rc3-00077-g088bbcb3fad (Mar 11 2022 - 15:59:54 -0700)
> 
> Model: Google Jerry
> DRAM:  2 GiB
> PMIC:  RK808
> Core:  256 devices, 25 uclasses, devicetree: separate
> MMC:   mmc at ff0c0000: 1, mmc at ff0d0000: 2, mmc at ff0f0000: 0
> Loading Environment from nowhere... OK

> cros_ec_spi_command: Returned status 6
> cros_ec_check_version: ERROR: old EC interface not supported
> Failed to probe keyboard 'keyboard-controller'

When I compare the ec node in the dtb before and after it looks like
"ec-interrupt" is missing.

Could you test/confirm by adding it to rk3288-veyron-jerry-u-boot.dtsi?

It originates from rk3288-veyron-chromebook.dtsi, but what should be the
u-boot specific correct location now for the other rk3288  veyron boards?

&cros_ec {
	ec-interrupt = <&gpio7 7 GPIO_ACTIVE_LOW>;
};

===

This property is not in the binding:
Documentation/devicetree/bindings/mfd/google,cros-ec.yaml

What to do with it? (no u-boot prefix)

===

dtc -s -I dtb -O dts rk3288-veyron-jerry-before.dtb >
rk3288-veyron-jerry-before-sort.dts

dtc -s -I dtb -O dts rk3288-veyron-jerry-after.dtb >
rk3288-veyron-jerry-after-sort.dts

		ec at 0 {
			compatible = "google,cros-ec-spi";
===
			ec-interrupt = < 0x07 0x07 0x01 >;
===
			google,cros-ec-spi-pre-delay = < 0x1e >;
			interrupt-parent = < 0x07 >;
			interrupts = < 0x07 0x08 >;
			pinctrl-0 = < 0x20 >;
			pinctrl-names = "default";
			reg = < 0x00 >;
			spi-max-frequency = < 0x2dc6c0 >;

			i2c-tunnel {

			};

			keyboard-controller {

			};
		};


> rockchip_rk3288_vop vop at ff930000: failed to get ahb reset (ret=-524)
> rockchip_rk3288_vop vop at ff930000: failed to get ahb reset (ret=-524)

Could you test before and after Linux sync and with reg size?


	vopb: vop at ff930000 {
		compatible = "rockchip,rk3288-vop";

		reg = <0xff930000 0x19c>, <0xff931000 0x1000>;

vs.
		reg = <0xff930000 0x19c>;

	}

===

>From rk_vop.c:

	priv->regs = (struct rk3288_vop *)dev_read_addr(dev);

===

>From rockchip-vop.yaml:

  reg:
    minItems: 1
    items:
      - description:
          Must contain one entry corresponding to the base address and
length
          of the register space.
      - description:
          Can optionally contain a second entry corresponding to
          the CRTC gamma LUT address.

===

Does vop driver need a fix to comply with binding?


> In:    serial
> 
> So it seems the EC and video devicetree are broken in some way, or
> drivers need updating for new bindings?

Could the veyron board maintainer fix this?
What to do with the things below to move forward with this serie?

Before sync:

	panel: panel {
		compatible ="cnm,n116bgeea2","simple-panel";
		status = "okay";
		power-supply = <&vcc33_lcd>;
		backlight = <&backlight>;
	};

&edp {
	status = "okay";
	rockchip,panel = <&panel>;
};

===

After sync:

	panel: panel {
		compatible = "innolux,n116bge";
		status = "okay";
		power-supply = <&panel_regulator>;
		backlight = <&backlight>;

		panel-timing {
			clock-frequency = <74250000>;
			hactive = <1366>;
			hfront-porch = <136>;
			hback-porch = <60>;
			hsync-len = <30>;
			hsync-active = <0>;
			vactive = <768>;
			vfront-porch = <8>;
			vback-porch = <12>;
			vsync-len = <12>;
			vsync-active = <0>;
		};

		ports {
			panel_in: port {
				panel_in_edp: endpoint {
					remote-endpoint = <&edp_out_panel>;
				};
			};
		};
	};


&edp {
	status = "okay";

	pinctrl-names = "default";
	pinctrl-0 = <&edp_hpd>;

	ports {
		edp_out: port at 1 {
			reg = <1>;
			#address-cells = <1>;
			#size-cells = <0>;
			edp_out_panel: endpoint at 0 {
				reg = <0>;
				remote-endpoint = <&panel_in_edp>;
			};
		};
	};
};

&edp_phy {
	status = "okay";
};

===

The edp node has different compatible strings and phys reset-names??
Please advise ??



	edp: edp at ff970000 {

		compatible = "rockchip,rk3288-edp";

		reg = <0xff970000 0x4000>;
		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&cru SCLK_EDP>, <&cru SCLK_EDP_24M>, <&cru PCLK_EDP_CTRL>;
		rockchip,grf = <&grf>;
		clock-names = "clk_edp", "clk_edp_24m", "pclk_edp";
		resets = <&cru 111>;

		reset-names = "edp";

		power-domains = <&power RK3288_PD_VIO>;
		status = "disabled";


	edp: dp at ff970000 {

		compatible = "rockchip,rk3288-dp";

		reg = <0xff970000 0x4000>;
		interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&cru SCLK_EDP>, <&cru PCLK_EDP_CTRL>;
		clock-names = "dp", "pclk";

		phys = <&edp_phy>;
		phy-names = "dp";

		resets = <&cru SRST_EDP>;

		reset-names = "dp";

		rockchip,grf = <&grf>;
		status = "disabled";

>>> It also seemed fine on bob although my display is not coming up, for
>>> different reasons.
>>
>> In SPL or full U-boot?
> 
> There is no display in SPL.
===

Before and after only vopb and vopl node available in jerry.
No other hdmi mipi edp.
There's no "u-boot,dm-pre-reloc" for them.
What do you expect to work in this stage?

> 
> [..]
> 
> Regards,
> Simon

Johan


More information about the U-Boot mailing list