From 6c51a3644e233bce171c19cec9cec77a77beada7 Mon Sep 17 00:00:00 2001 From: Marco Franchi Date: Wed, 8 Jun 2016 15:05:31 -0300 Subject: mx6sabresd: Allow LVDS backlight to be functional after a kernel reboot MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently the LVDS backlight does not work in U-Boot after a “reboot” comand in the kernel. This problem occurs because the kernel uses this pin in PWM mode and U-Boot does not configure the backlight pin as GPIO functionality. So fix the problem by explicitly configuring the backlight pin as GPIO in U-Boot. Signed-off-by: Marco Franchi Acked-by: Stefano Babic Tested-by: Fabio Estevam --- board/freescale/mx6sabresd/mx6sabresd.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'board') diff --git a/board/freescale/mx6sabresd/mx6sabresd.c b/board/freescale/mx6sabresd/mx6sabresd.c index 54ba36b535..0cf68097f4 100644 --- a/board/freescale/mx6sabresd/mx6sabresd.c +++ b/board/freescale/mx6sabresd/mx6sabresd.c @@ -177,13 +177,27 @@ static iomux_v3_cfg_t const rgb_pads[] = { MX6_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 | MUX_PAD_CTRL(NO_PAD_CTRL), MX6_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 | MUX_PAD_CTRL(NO_PAD_CTRL), MX6_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 | MUX_PAD_CTRL(NO_PAD_CTRL), +}; + +static iomux_v3_cfg_t const bl_pads[] = { MX6_PAD_SD1_DAT3__GPIO1_IO21 | MUX_PAD_CTRL(NO_PAD_CTRL), }; +static void enable_backlight(void) +{ + imx_iomux_v3_setup_multiple_pads(bl_pads, ARRAY_SIZE(bl_pads)); + gpio_direction_output(DISP0_PWR_EN, 1); +} + static void enable_rgb(struct display_info_t const *dev) { imx_iomux_v3_setup_multiple_pads(rgb_pads, ARRAY_SIZE(rgb_pads)); - gpio_direction_output(DISP0_PWR_EN, 1); + enable_backlight(); +} + +static void enable_lvds(struct display_info_t const *dev) +{ + enable_backlight(); } static struct i2c_pads_info i2c_pad_info1 = { @@ -370,7 +384,7 @@ struct display_info_t const displays[] = {{ .addr = 0, .pixfmt = IPU_PIX_FMT_RGB666, .detect = NULL, - .enable = NULL, + .enable = enable_lvds, .mode = { .name = "Hannstar-XGA", .refresh = 60, -- cgit v1.2.1 From 0fcb85cc0cdf898019680a09200677a0beef27d9 Mon Sep 17 00:00:00 2001 From: Ye Li Date: Wed, 15 Jun 2016 14:18:36 +0800 Subject: mx7dsabresd: Fix LCD_PWR_EN output setting LCD_PWR_EN controls the G pin of Q13 PMOS which needs low voltage to connect D to S for outputting LCD 3.3V. If LCD_PWR_EN is high, we measured the LCD 3v3 is actually 1.2V. Signed-off-by: Ye Li Signed-off-by: Peng Fan Cc: Stefano Babic Cc: Fabio Estevam Reviewed-by: Fabio Estevam --- board/freescale/mx7dsabresd/mx7dsabresd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'board') diff --git a/board/freescale/mx7dsabresd/mx7dsabresd.c b/board/freescale/mx7dsabresd/mx7dsabresd.c index c3062f1e95..1f4fc03c8f 100644 --- a/board/freescale/mx7dsabresd/mx7dsabresd.c +++ b/board/freescale/mx7dsabresd/mx7dsabresd.c @@ -171,7 +171,7 @@ static enum qn_level seq[3][2] = { static enum qn_func qn_output[8] = { qn_disable, qn_reset, qn_reset, qn_reset, qn_reset, qn_reset, qn_enable, - qn_enable + qn_disable }; static void iox74lv_init(void) -- cgit v1.2.1 From 85801579e10208b7466f4a7f8329b4f5d2056fff Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Wed, 15 Jun 2016 14:18:37 +0800 Subject: imx6ulevk: fix 74LV OE usage Fix 74LV OE gpio index. gpio index is wrong, so gpio output will not have effect, since we use wrong GPIO5_IO18, but not correct GPIO5_IO8. And at the end of the initialization of 74lv init, should keep OE voltage level at LOW to make 74lv output the correct voltage. Signed-off-by: Peng Fan Cc: Stefano Babic Cc: Fabio Estevam Reviewed-by: Fabio Estevam --- board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'board') diff --git a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c index 88d3fbd9b1..b861122730 100644 --- a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c +++ b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c @@ -66,7 +66,7 @@ DECLARE_GLOBAL_DATA_PTR; #define IOX_SDI IMX_GPIO_NR(5, 10) #define IOX_STCP IMX_GPIO_NR(5, 7) #define IOX_SHCP IMX_GPIO_NR(5, 11) -#define IOX_OE IMX_GPIO_NR(5, 18) +#define IOX_OE IMX_GPIO_NR(5, 8) static iomux_v3_cfg_t const iox_pads[] = { /* IOX_SDI */ @@ -154,8 +154,6 @@ static void iox74lv_init(void) * shift register will be output to pins */ gpio_direction_output(IOX_STCP, 1); - - gpio_direction_output(IOX_OE, 1); }; #ifdef CONFIG_SYS_I2C_MXC -- cgit v1.2.1 From 288683280f18b267615d9afa86e1378727fe3405 Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Wed, 15 Jun 2016 14:18:38 +0800 Subject: imx6ulevk: fix LCD_nPWREN setting Q901 is PMOS, LCD_nPWREN should be at low voltage then output is 3V3. If LCD_nPWREN is high, output is 2.4V which is not correct. Signed-off-by: Peng Fan Cc: Stefano Babic Cc: Fabio Estevam Reviewed-by: Fabio Estevam --- board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'board') diff --git a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c index b861122730..112e6abce7 100644 --- a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c +++ b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c @@ -117,7 +117,7 @@ static enum qn_level seq[3][2] = { static enum qn_func qn_output[8] = { qn_reset, qn_reset, qn_reset, qn_enable, qn_disable, qn_reset, - qn_disable, qn_enable + qn_disable, qn_disable }; static void iox74lv_init(void) -- cgit v1.2.1 From 0d7cdc2abfc34125f0bc85f864d285f06675290a Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Wed, 15 Jun 2016 14:18:39 +0800 Subject: imx: mx6ulevk: change QSPI PAD DSE to 120ohm The current pad DSE for QSPI is 60ohm. This setting cause too strong drive to clock and data signals. Need to change the DSE to 120ohm for better signal quality. Signed-off-by: Peng Fan Cc: Stefano Babic Cc: Fabio Estevam Reviewed-by: Fabio Estevam --- board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'board') diff --git a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c index 112e6abce7..92c92117cd 100644 --- a/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c +++ b/board/freescale/mx6ul_14x14_evk/mx6ul_14x14_evk.c @@ -303,7 +303,7 @@ static void setup_iomux_uart(void) #define QSPI_PAD_CTRL1 \ (PAD_CTL_SRE_FAST | PAD_CTL_SPEED_MED | \ - PAD_CTL_PKE | PAD_CTL_PUE | PAD_CTL_PUS_47K_UP | PAD_CTL_DSE_60ohm) + PAD_CTL_PKE | PAD_CTL_PUE | PAD_CTL_PUS_47K_UP | PAD_CTL_DSE_120ohm) static iomux_v3_cfg_t const quadspi_pads[] = { MX6_PAD_NAND_WP_B__QSPI_A_SCLK | MUX_PAD_CTRL(QSPI_PAD_CTRL1), -- cgit v1.2.1 From 0a35cc9395b7e4e5bc2b1370016f7c3156f945a4 Mon Sep 17 00:00:00 2001 From: Marco Franchi Date: Fri, 10 Jun 2016 14:45:28 -0300 Subject: warp7: Fix watchdog reset The latest version of warp7 board provides the connection of the WDOG1_B pin to the PMIC. Program the watchdog to enable the WDOG1_B output which causes a POR reset. Based on the imx7dsabresd code. Signed-off-by: Marco Franchi Acked-by: Fabio Estevam --- board/warp7/warp7.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'board') diff --git a/board/warp7/warp7.c b/board/warp7/warp7.c index 8c5bf9a524..27e31f35d5 100644 --- a/board/warp7/warp7.c +++ b/board/warp7/warp7.c @@ -32,6 +32,10 @@ int dram_init(void) return 0; } +static iomux_v3_cfg_t const wdog_pads[] = { + MX7D_PAD_GPIO1_IO00__WDOG1_WDOG_B | MUX_PAD_CTRL(NO_PAD_CTRL), +}; + static iomux_v3_cfg_t const uart1_pads[] = { MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL), MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX | MUX_PAD_CTRL(UART_PAD_CTRL), @@ -100,3 +104,20 @@ int board_usb_phy_mode(int port) { return USB_INIT_DEVICE; } + +int board_late_init(void) +{ + struct wdog_regs *wdog = (struct wdog_regs *)WDOG1_BASE_ADDR; + + imx_iomux_v3_setup_multiple_pads(wdog_pads, ARRAY_SIZE(wdog_pads)); + + set_wdog_reset(wdog); + + /* + * Do not assert internal WDOG_RESET_B_DEB(controlled by bit 4), + * since we use PMIC_PWRON to reset the board. + */ + clrsetbits_le16(&wdog->wcr, 0, 0x10); + + return 0; +} -- cgit v1.2.1 From 72a868f16eeffd880b2ed77ab4bc9e072446f5a7 Mon Sep 17 00:00:00 2001 From: Marco Franchi Date: Fri, 10 Jun 2016 14:56:23 -0300 Subject: warp7: Add README file Add a README file for helping users to install U-Boot into the eMMC. Signed-off-by: Marco Franchi Acked-by: Fabio Estevam --- board/warp7/README | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 board/warp7/README (limited to 'board') diff --git a/board/warp7/README b/board/warp7/README new file mode 100644 index 0000000000..60339da543 --- /dev/null +++ b/board/warp7/README @@ -0,0 +1,63 @@ +How to Update U-Boot on Warp7 board +---------------------------------- + +Required software on the host PC: + +- imx_usb_loader: https://github.com/boundarydevices/imx_usb_loader + +- dfu-util: http://dfu-util.sourceforge.net/releases/ (if you are in a +Debian distribution then you can get it via libdfu-dev package) + +- libusb: http://libusb.org/ (if you are in a Debian distribution +then you can get it via libusb-dev and libusb-1.0-0-dev) + +In U-Boot folder, build U-Boot for Warp7: + +$ make mrproper +$ make warp7_config +$ make + +This will generate the U-Boot binary called u-boot.imx. + +Put warp7 board in USB download mode: + +Remove the CPU board from the base board then put switch 2 in the upper +position + +Connect a USB to serial adapter between the host PC and warp7 + +Connect a USB cable between the OTG warp7 port and the host PC + +Copy u-boot.imx to the imx_usb_loader folder. + +Load u-boot.imx via USB: + +$ sudo ./imx_usb u-boot.imx + +Then U-Boot should start and its messages will appear in the console program. + +Open a terminal program such as minicom + +Use the default environment variables: + +=> env default -f -a +=> saveenv + +Run the DFU command: +=> dfu 0 mmc 0 + +Transfer u-boot.imx that will be flashed into the eMMC: + +$ sudo dfu-util -D u-boot.imx -a boot + +Then on the U-Boot prompt the following message should be seen after a +successful upgrade: + +#DOWNLOAD ... OK +Ctrl+C to exit ... + +Remove power from the warp7 board. + +Put warp7 board into normal boot mode (put the switch 2 in the lower position) + +Power up the board and the new updated U-Boot should boot from eMMC -- cgit v1.2.1