From 04b5217f50ce899933e464574ae192462396f772 Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Mon, 15 Dec 2014 16:08:32 +0100 Subject: ARM: i.MX51 Efikasb: Disable backlight earlier Set the backlight enable gpio to disabled earlier during startup to avoid flicker when the pinmux is configured but not yet the enable gpio. Signed-off-by: Sascha Hauer --- arch/arm/boards/efika-mx-smartbook/board.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'arch') diff --git a/arch/arm/boards/efika-mx-smartbook/board.c b/arch/arm/boards/efika-mx-smartbook/board.c index 4a38afd27b..f023d70c28 100644 --- a/arch/arm/boards/efika-mx-smartbook/board.c +++ b/arch/arm/boards/efika-mx-smartbook/board.c @@ -187,6 +187,7 @@ static int efikamx_usb_init(void) gpio_direction_output(GPIO_WIFI_RESET, 0); gpio_direction_output(GPIO_SMSC3317_RESET, 0); gpio_direction_output(GPIO_HUB_RESET, 0); + gpio_direction_output(GPIO_BACKLIGHT_POWER, 1); mdelay(10); @@ -241,8 +242,6 @@ static int efikamx_late_init(void) defaultenv_append_directory(defaultenv_efikasb); - gpio_direction_output(GPIO_BACKLIGHT_POWER, 1); - for (i = 0; i < ARRAY_SIZE(leds); i++) led_gpio_register(&leds[i]); -- cgit v1.2.3 From 9d47c89adb143df86d50782add6eac08f08fdb17 Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Mon, 15 Dec 2014 16:09:54 +0100 Subject: ARM: i.MX51 Efikasb: make more space for barebox Signed-off-by: Sascha Hauer --- arch/arm/dts/imx51-genesi-efika-sb.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'arch') diff --git a/arch/arm/dts/imx51-genesi-efika-sb.dts b/arch/arm/dts/imx51-genesi-efika-sb.dts index 26829d14c0..97722592fa 100644 --- a/arch/arm/dts/imx51-genesi-efika-sb.dts +++ b/arch/arm/dts/imx51-genesi-efika-sb.dts @@ -371,7 +371,7 @@ partition@0 { label = "barebox-environment"; - reg = <0x80000 0x80000>; + reg = <0xc0000 0x40000>; }; }; -- cgit v1.2.3 From c76bfc96384333830d0301fb2e5e4ba557ceaac4 Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Tue, 11 Nov 2014 20:34:59 +0100 Subject: ARM: i.MX51 Efikasb: update device tree Use the correct display pins (which are DISP2* and not DISP1*) and use the of_graph bindings to describe the video hardware. Signed-off-by: Sascha Hauer --- arch/arm/dts/imx51-genesi-efika-sb.dts | 128 ++++++++++++++++++++++----------- 1 file changed, 87 insertions(+), 41 deletions(-) (limited to 'arch') diff --git a/arch/arm/dts/imx51-genesi-efika-sb.dts b/arch/arm/dts/imx51-genesi-efika-sb.dts index 97722592fa..78cb1b7184 100644 --- a/arch/arm/dts/imx51-genesi-efika-sb.dts +++ b/arch/arm/dts/imx51-genesi-efika-sb.dts @@ -90,12 +90,34 @@ mux-ext-port = <3>; }; - backlight { + backlight: backlight { compatible = "pwm-backlight"; + enable-gpios = <&gpio4 12 GPIO_ACTIVE_LOW>; pwms = <&pwm1 0 78770>; - brightness-levels = <0 4 8 16 32 64 128 255>; - default-brightness-level = <6>; - }; + brightness-levels = <0 1 2 4 8 16 32 64 128 255>; + default-brightness-level = <9>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_backlight>; + }; + + panel { + compatible = "simple-panel"; + backlight = <&backlight>; + enable-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; + ddc-i2c-bus = <&i2c2>; + enable-delay = <200>; + + port { + panel_in: endpoint { + remote-endpoint = <&mtl017_out>; + }; + }; + }; + + lvds_reg: lvds_regulator { + compatible = "regulator-fixed"; + gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>; + }; }; &ssi1 { @@ -115,16 +137,17 @@ MX51_PAD_DI1_PIN12__GPIO3_1 0x80000000 /* WLAN switch */ MX51_PAD_EIM_A17__GPIO2_11 0x80000000 /* Bluetooth power */ MX51_PAD_EIM_A23__GPIO2_17 0x80000000 /* Audio amp enable, 1 = on */ - MX51_PAD_CSI1_D8__GPIO3_12 0x80000000 /* LVDS enable, 1 = on */ - MX51_PAD_GPIO1_2__GPIO1_2 0x80000000 /* Backlight PWM */ - MX51_PAD_CSI2_D19__GPIO4_12 0x80000000 /* Backlight power, 0 = on */ - MX51_PAD_DISPB2_SER_DIN__GPIO3_5 0x80000000 /* LVDS reset (1 = reset) */ - MX51_PAD_DISPB2_SER_CLK__GPIO3_7 0x80000000 /* LVDS power, 1 = on */ - MX51_PAD_CSI1_D9__GPIO3_13 0x80000000 /* LCD enable (1 = on */ MX51_PAD_NANDF_CS0__GPIO3_16 0x80000000 /* Camera power, 0 = on */ MX51_PAD_GPIO1_5__GPIO1_5 0x80000000 /* USB hub reset, 0 = reset */ MX51_PAD_EIM_D27__GPIO2_9 0x80000000 /* USB phy reset, 0 = reset */ MX51_PAD_CSPI1_RDY__GPIO4_26 0x80000000 /* Audio clk enable */ + MX51_PAD_CSI2_D19__GPIO4_12 0x80000000 /* Backlight power, 0 = on */ + >; + }; + + pinctrl_backlight: backlightgrp { + fsl,pins = < + MX51_PAD_GPIO1_2__PWM1_PWMO 0x80000000 /* Backlight PWM */ >; }; @@ -187,34 +210,32 @@ >; }; - pinctrl_ipu_disp1: ipudisp1grp { + pinctrl_ipu_disp2: ipudisp2grp { fsl,pins = < - MX51_PAD_DISP1_DAT0__DISP1_DAT0 0x5 - MX51_PAD_DISP1_DAT1__DISP1_DAT1 0x5 - MX51_PAD_DISP1_DAT2__DISP1_DAT2 0x5 - MX51_PAD_DISP1_DAT3__DISP1_DAT3 0x5 - MX51_PAD_DISP1_DAT4__DISP1_DAT4 0x5 - MX51_PAD_DISP1_DAT5__DISP1_DAT5 0x5 - MX51_PAD_DISP1_DAT6__DISP1_DAT6 0x5 - MX51_PAD_DISP1_DAT7__DISP1_DAT7 0x5 - MX51_PAD_DISP1_DAT8__DISP1_DAT8 0x5 - MX51_PAD_DISP1_DAT9__DISP1_DAT9 0x5 - MX51_PAD_DISP1_DAT10__DISP1_DAT10 0x5 - MX51_PAD_DISP1_DAT11__DISP1_DAT11 0x5 - MX51_PAD_DISP1_DAT12__DISP1_DAT12 0x5 - MX51_PAD_DISP1_DAT13__DISP1_DAT13 0x5 - MX51_PAD_DISP1_DAT14__DISP1_DAT14 0x5 - MX51_PAD_DISP1_DAT15__DISP1_DAT15 0x5 - MX51_PAD_DISP1_DAT16__DISP1_DAT16 0x5 - MX51_PAD_DISP1_DAT17__DISP1_DAT17 0x5 - MX51_PAD_DISP1_DAT18__DISP1_DAT18 0x5 - MX51_PAD_DISP1_DAT19__DISP1_DAT19 0x5 - MX51_PAD_DISP1_DAT20__DISP1_DAT20 0x5 - MX51_PAD_DISP1_DAT21__DISP1_DAT21 0x5 - MX51_PAD_DISP1_DAT22__DISP1_DAT22 0x5 - MX51_PAD_DISP1_DAT23__DISP1_DAT23 0x5 - MX51_PAD_DI1_PIN2__DI1_PIN2 0x5 - MX51_PAD_DI1_PIN3__DI1_PIN3 0x5 + MX51_PAD_DISP2_DAT0__DISP2_DAT0 0x5 + MX51_PAD_DISP2_DAT1__DISP2_DAT1 0x5 + MX51_PAD_DISP2_DAT2__DISP2_DAT2 0x5 + MX51_PAD_DISP2_DAT3__DISP2_DAT3 0x5 + MX51_PAD_DISP2_DAT4__DISP2_DAT4 0x5 + MX51_PAD_DISP2_DAT5__DISP2_DAT5 0x5 + MX51_PAD_DISP2_DAT6__DISP2_DAT6 0x5 + MX51_PAD_DISP2_DAT7__DISP2_DAT7 0x5 + MX51_PAD_DISP2_DAT8__DISP2_DAT8 0x5 + MX51_PAD_DISP2_DAT9__DISP2_DAT9 0x5 + MX51_PAD_DISP2_DAT10__DISP2_DAT10 0x5 + MX51_PAD_DISP2_DAT11__DISP2_DAT11 0x5 + MX51_PAD_DISP2_DAT12__DISP2_DAT12 0x5 + MX51_PAD_DISP2_DAT13__DISP2_DAT13 0x5 + MX51_PAD_DISP2_DAT14__DISP2_DAT14 0x5 + MX51_PAD_DISP2_DAT15__DISP2_DAT15 0x5 + MX51_PAD_DI2_PIN2__DI2_PIN2 0x5 /* hsync */ + MX51_PAD_DI2_PIN3__DI2_PIN3 0x5 /* vsync */ + MX51_PAD_DI2_DISP_CLK__DI2_DISP_CLK 0x5 + MX51_PAD_DI_GP4__DI2_PIN15 0x5 + MX51_PAD_CSI1_D8__GPIO3_12 0x80000000 /* LVDS enable, 1 = on */ + MX51_PAD_DISPB2_SER_DIN__GPIO3_5 0x80000000 /* LVDS reset (1 = reset) */ + MX51_PAD_DISPB2_SER_CLK__GPIO3_7 0x80000000 /* LVDS power, 1 = on */ + MX51_PAD_CSI1_D9__GPIO3_13 0x80000000 /* LCD enable (1 = on */ >; }; @@ -342,13 +363,38 @@ }; lvds: mtl017@3a { + #address-cells = <1>; + #size-cells = <0>; compatible = "mtl017"; pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_ipu_disp1>; + pinctrl-0 = <&pinctrl_ipu_disp2>; + enable-gpios = <&gpio3 12 GPIO_ACTIVE_HIGH>; + reset-gpios = <&gpio3 5 GPIO_ACTIVE_HIGH>; + vdd-supply = <&lvds_reg>; reg = <0x3a>; - crtcs = <&ipu 1>; - edid-i2c = <&i2c2>; - interface-pix-fmt = "rgb565"; + + port@0 { + reg = <0>; + + mtl017_in: endpoint { + remote-endpoint = <&ipu_di1_disp1>; + }; + }; + + port@1 { + reg = <1>; + + mtl017_out: endpoint { + remote-endpoint = <&panel_in>; + }; + }; + }; +}; + +&ipu_di1 { + interface-pix-fmt = "rgb565"; + endpoint { + remote-endpoint = <&mtl017_in>; }; }; -- cgit v1.2.3