Skip to content

Unable to display a splash screen during u-boot startup on sam9x60_curiosity #2

@gbmbg

Description

@gbmbg

Good evening, I'm tryng to adapt this procedure:
https://developerhelp.microchip.com/xwiki/bin/view/applications/linux4sam/faq/boot-logo/
to our case, a custom board based on sam9x60_curiosity with a pda5000 LCD display.
Everithyng works fine under linux kernel, but inside u-boot the atmel_hlcdfb is not probed...

Here are the DTS snippets employed

/ {

backlight: backlight {
	compatible = "pwm-backlight";
	pwms = <&hlcdc_pwm 0 50000 0>;
	brightness-levels = <0 4 8 16 32 64 128 255>;
	default-brightness-level = <7>;
	power-supply = <&bl_reg>;
	status = "okay";
	u-boot,dm-pre-reloc;
};

bl_reg: backlight_regulator {
	compatible = "regulator-fixed";
	regulator-name = "backlight-power-supply";
	regulator-min-microvolt = <5000000>;
	regulator-max-microvolt = <5000000>;
	status = "okay";
	u-boot,dm-pre-reloc;
};

panel: panel {
	compatible = "simple-panel";
	backlight = <&backlight>;
	power-supply = <&panel_reg>;
	status = "okay";
	connector-type = "rgb";
	u-boot,dm-pre-reloc;

	panel-timing {
		clock-frequency = <33300000>;   // 33.3 MHz
		hactive = <800>;
		vactive = <480>;
		hsync-len = <64>;
		hfront-porch = <1>;
		hback-porch = <64>;
		vsync-len = <23>;
		vfront-porch = <1>;
		vback-porch = <22>;
		hsync-active = <1>;
		vsync-active = <1>;
		de-active = <1>;        // tipico TFT
		pixelclk-active = <0>;  // campiona sul fronte neagativo (se richiesto dal pannello)
		u-boot,dm-pre-reloc;
	};

port@0 {
		u-boot,dm-pre-reloc;
		panel_input: endpoint@0 {
			remote-endpoint = <&hlcdc_panel_output>;
			u-boot,dm-pre-reloc;
		};
	};
};

panel_reg: panel_regulator {
    compatible = "regulator-fixed";
    regulator-name = "panel-power-supply";
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    status = "okay";
	u-boot,dm-pre-reloc;
};

hlcdc: hlcdc@f8038000 {
	compatible = "microchip,sam9x60-hlcdc",atmel,at91sam9x5-hlcdc";
	reg = <0xf8038000 0x4000>;
	interrupts = <25 IRQ_TYPE_LEVEL_HIGH 0>;
	clocks = <&pmc PMC_TYPE_PERIPHERAL 25>, <&pmc PMC_TYPE_GCK 25>, <&slow_xtal>;
	clock-names = "periph_clk","sys_clk", "slow_clk";
	assigned-clocks = <&pmc PMC_TYPE_GCK 25>;
	assigned-clock-parents = <&pmc PMC_TYPE_CORE 10>;
	atmel,vl-bpix = <5>;            // RGB888 (24 bpp)
	atmel,guard-time = <1>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_pwm &pinctrl_lcd_rgb666>;
	status = "okay";
	u-boot,dm-pre-reloc;

		hlcdc-display-controller {
			// Collega il controller al pannello via endpoint
			compatible = "atmel,hlcdc-display-controller";
			#address-cells = <1>;
			#size-cells = <0>;
			u-boot,dm-pre-reloc;
			port@0 {
				#address-cells = <1>;
				#size-cells = <0>;
				reg = <0>;
				u-boot,dm-pre-reloc;
				hlcdc_panel_output: endpoint@0 {
					u-boot,dm-pre-reloc;
					remote-endpoint = <&panel_input>;
				};
			};
		};

		// PWM del backlight sull’uscita HLCDC, pinmux PIOC26
		hlcdc_pwm: hlcdc-pwm {
			compatible = "atmel,hlcdc-pwm";
			#pwm-cells = <3>;
			pinctrl-names = "default";
			pinctrl-0 = <&pinctrl_lcd_pwm>;
			u-boot,dm-pre-reloc;
		};
	};

[...]

&pinctrl {

lcd {
	pinctrl_lcd_base: lcd-base-0 {
		u-boot,dm-pre-reloc;
		atmel,pins = <AT91_PIOC 27 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDVSYNC */
			      AT91_PIOC 28 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDHSYNC */
			      AT91_PIOC 24 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDDISP */
			      AT91_PIOC 29 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDDEN */
			      AT91_PIOC 30 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* LCDPCK */
	};

	pinctrl_lcd_rgb666: lcd-rgb-2 {
		u-boot,dm-pre-reloc;
		atmel,pins = <AT91_PIOC 2 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDD2 pin */
			      AT91_PIOC 3 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDD3 pin */
			      AT91_PIOC 4 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDD4 pin */
			      AT91_PIOC 5 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDD5 pin */
			      AT91_PIOC 6 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDD6 pin */
			      AT91_PIOC 7 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDD7 pin */
			      AT91_PIOC 10 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDD10 pin */
			      AT91_PIOC 11 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDD11 pin */
			      AT91_PIOC 12 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDD12 pin */
			      AT91_PIOC 13 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDD13 pin */
			      AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDD14 pin */
			      AT91_PIOC 15 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDD15 pin */
			      AT91_PIOC 18 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDD18 pin */
			      AT91_PIOC 19 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDD19 pin */
			      AT91_PIOC 20 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDD20 pin */
			      AT91_PIOC 21 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDD21 pin */
			      AT91_PIOC 22 AT91_PERIPH_A AT91_PINCTRL_NONE	/* LCDD22 pin */
			      AT91_PIOC 23 AT91_PERIPH_A AT91_PINCTRL_NONE>;	/* LCDD23 pin */
	};

	pinctrl_lcd_pwm: lcd_pwm {
		u-boot,dm-pre-reloc;
		atmel,pins = <AT91_PIOC 26 AT91_PERIPH_A AT91_PINCTRL_NONE>;
	};
};

};

Any help would be very appreciated
Thanks a lot and work well
Giovanni

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions