diff options
author | Tom Rini <trini@konsulko.com> | 2020-03-13 13:21:17 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2020-03-13 13:21:17 -0400 |
commit | 50be9f0e1ccc0909e65132cff216743a49046f97 (patch) | |
tree | cbb6f9c3031ab81d5b0a775906727df844b0a618 | |
parent | db3b1818b7a9711084255713ec14cb886eb79b12 (diff) | |
parent | d21ffa2a2ebc366b8ca644324d76bb2924947373 (diff) | |
download | u-boot-50be9f0e1ccc0909e65132cff216743a49046f97.tar.gz |
Merge branch '2020-03-13-master-imports'
- Address the regression with the 'gpio' command
- Fix mcfuart regression
- Other minor fixes
-rw-r--r-- | MAINTAINERS | 13 | ||||
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | cmd/gpio.c | 7 | ||||
-rw-r--r-- | common/image-fit.c | 6 | ||||
-rw-r--r-- | drivers/serial/Makefile | 2 | ||||
-rw-r--r-- | drivers/serial/serial_mcf.c (renamed from drivers/serial/mcfuart.c) | 4 | ||||
-rw-r--r-- | drivers/watchdog/Kconfig | 56 | ||||
-rw-r--r-- | test/py/tests/test_gpio.py | 37 |
8 files changed, 93 insertions, 36 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 2c43573ff5..92dda40a85 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -329,8 +329,21 @@ F: drivers/usb/host/ehci-msm.c ARM STI M: Patrice Chotard <patrice.chotard@st.com> S: Maintained +T: git https://gitlab.denx.de/u-boot/custodians/u-boot-stm.git F: arch/arm/mach-sti/ F: arch/arm/include/asm/arch-sti*/ +F: drivers/phy/sti_usb_phy.c +F: drivers/pinctrl/pinctrl-sti.c +F: drivers/mmc/sti_sdhci.c +F: drivers/reset/sti-reset.c +F: drivers/serial/serial_sti_asc.c +F: drivers/sysreset/sysreset_sti.c +F: drivers/timer/sti-timer.c +F: drivers/usb/host/dwc3-sti-glue.c +F: include/dwc3-sti-glue.h +F: include/dt-bindings/clock/stih407-clks.h +F: include/dt-bindings/clock/stih410-clks.h +F: include/dt-bindings/reset/stih407-resets.h ARM STM SPEAR #M: Vipin Kumar <vipin.kumar@st.com> @@ -903,7 +903,7 @@ ifneq ($(CONFIG_BUILD_TARGET),) ALL-y += $(CONFIG_BUILD_TARGET:"%"=%) endif -ifdef CONFIG_INIT_SP_RELATIVE +ifeq ($(CONFIG_INIT_SP_RELATIVE)$(CONFIG_OF_SEPARATE),yy) ALL-y += init_sp_bss_offset_check endif @@ -1208,7 +1208,7 @@ binary_size_check: u-boot-nodtb.bin FORCE fi \ fi -ifdef CONFIG_INIT_SP_RELATIVE +ifeq ($(CONFIG_INIT_SP_RELATIVE)$(CONFIG_OF_SEPARATE),yy) ifneq ($(CONFIG_SYS_MALLOC_F_LEN),) subtract_sys_malloc_f_len = space=$$(($${space} - $(CONFIG_SYS_MALLOC_F_LEN))) else diff --git a/cmd/gpio.c b/cmd/gpio.c index 16c2cebb3d..408a942455 100644 --- a/cmd/gpio.c +++ b/cmd/gpio.c @@ -248,7 +248,12 @@ static int do_gpio(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) if (ret != -EBUSY) gpio_free(gpio); - return CMD_RET_SUCCESS; + /* + * Whilst wrong, the legacy gpio input command returns the pin + * value, or CMD_RET_FAILURE (which is indistinguishable from a + * valid pin value). + */ + return (sub_cmd == GPIOC_INPUT) ? value : CMD_RET_SUCCESS; err: if (ret != -EBUSY) diff --git a/common/image-fit.c b/common/image-fit.c index f3bb00c98a..4435bc4f1d 100644 --- a/common/image-fit.c +++ b/common/image-fit.c @@ -1011,8 +1011,10 @@ int fit_image_get_data_and_size(const void *fit, int noffset, if (external_data) { debug("External Data\n"); ret = fit_image_get_data_size(fit, noffset, &len); - *data = fit + offset; - *size = len; + if (!ret) { + *data = fit + offset; + *size = len; + } } else { ret = fit_image_get_data(fit, noffset, data, size); } diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile index e26b64494e..e4a92bbbb7 100644 --- a/drivers/serial/Makefile +++ b/drivers/serial/Makefile @@ -39,7 +39,7 @@ obj-$(CONFIG_COREBOOT_SERIAL) += serial_coreboot.o obj-$(CONFIG_CORTINA_UART) += serial_cortina.o obj-$(CONFIG_EFI_APP) += serial_efi.o obj-$(CONFIG_LPC32XX_HSUART) += lpc32xx_hsuart.o -obj-$(CONFIG_MCFUART) += mcfuart.o +obj-$(CONFIG_MCFUART) += serial_mcf.o obj-$(CONFIG_SYS_NS16550) += ns16550.o obj-$(CONFIG_S5P) += serial_s5p.o obj-$(CONFIG_MXC_UART) += serial_mxc.o diff --git a/drivers/serial/mcfuart.c b/drivers/serial/serial_mcf.c index 066e5a18d8..b599064b48 100644 --- a/drivers/serial/mcfuart.c +++ b/drivers/serial/serial_mcf.c @@ -85,6 +85,8 @@ static int coldfire_serial_probe(struct udevice *dev) { struct coldfire_serial_platdata *plat = dev->platdata; + plat->port = dev->seq; + return mcf_serial_init_common((uart_t *)plat->base, plat->port, plat->baudrate); } @@ -148,8 +150,6 @@ static int coldfire_ofdata_to_platdata(struct udevice *dev) return -ENODEV; plat->base = (uint32_t)addr_base; - - plat->port = dev->seq; plat->baudrate = gd->baudrate; return 0; diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index d24c1e4835..cb4da2e3cf 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -24,15 +24,15 @@ config HW_WATCHDOG config WATCHDOG_RESET_DISABLE bool "Disable reset watchdog" help - Disable reset watchdog, which can let WATCHDOG_RESET invalid, so - that the watchdog will not be fed in u-boot. + Disable reset watchdog, which can let WATCHDOG_RESET invalid, so + that the watchdog will not be fed in u-boot. config IMX_WATCHDOG bool "Enable Watchdog Timer support for IMX and LSCH2 of NXP" select HW_WATCHDOG if !WDT help - Select this to enable the IMX and LSCH2 of Layerscape watchdog - driver. + Select this to enable the IMX and LSCH2 of Layerscape watchdog + driver. config OMAP_WATCHDOG bool "TI OMAP watchdog driver" @@ -50,8 +50,8 @@ config DESIGNWARE_WATCHDOG bool "Designware watchdog timer support" select HW_WATCHDOG if !WDT help - Enable this to support Designware Watchdog Timer IP, present e.g. - on Altera SoCFPGA SoCs. + Enable this to support Designware Watchdog Timer IP, present e.g. + on Altera SoCFPGA SoCs. config WDT bool "Enable driver model for watchdog timer drivers" @@ -68,10 +68,10 @@ config WDT_ARMADA_37XX bool "Marvell Armada 37xx watchdog timer support" depends on WDT && ARMADA_3700 help - Enable this to support Watchdog Timer on Marvell Armada 37xx SoC. - There are 4 possible clocks which can be used on these SoCs. This - driver uses the second clock (ID 1), assuming that so will also - Linux's driver. + Enable this to support Watchdog Timer on Marvell Armada 37xx SoC. + There are 4 possible clocks which can be used on these SoCs. This + driver uses the second clock (ID 1), assuming that so will also + Linux's driver. config WDT_ASPEED bool "Aspeed ast2400/ast2500 watchdog timer support" @@ -88,8 +88,8 @@ config WDT_AT91 bool "AT91 watchdog timer support" depends on WDT help - Select this to enable Microchip watchdog timer, which can be found on - some AT91 devices. + Select this to enable Microchip watchdog timer, which can be found on + some AT91 devices. config WDT_BCM6345 bool "BCM6345 watchdog timer support" @@ -105,8 +105,8 @@ config WDT_CDNS depends on WDT imply WATCHDOG help - Select this to enable Cadence watchdog timer, which can be found on some - Xilinx Microzed Platform. + Select this to enable Cadence watchdog timer, which can be found on some + Xilinx Microzed Platform. config WDT_CORTINA bool "Cortina Access CAxxxx watchdog timer support" @@ -114,21 +114,21 @@ config WDT_CORTINA help Cortina Access CAxxxx watchdog timer support. This driver support all CPU ISAs supported by Cortina - Access CAxxxx SoCs. + Access CAxxxx SoCs. config WDT_MPC8xx bool "MPC8xx watchdog timer support" depends on WDT && MPC8xx select HW_WATCHDOG help - Select this to enable mpc8xx watchdog timer + Select this to enable mpc8xx watchdog timer config WDT_MT7621 bool "MediaTek MT7621 watchdog timer support" depends on WDT && SOC_MT7628 help - Select this to enable Ralink / Mediatek watchdog timer, - which can be found on some MediaTek chips. + Select this to enable Ralink / Mediatek watchdog timer, + which can be found on some MediaTek chips. config WDT_MTK bool "MediaTek watchdog timer support" @@ -139,10 +139,10 @@ config WDT_MTK It performs full SoC reset. config WDT_OMAP3 - bool "TI OMAP watchdog timer support" - depends on WDT && ARCH_OMAP2PLUS - default y if AM33XX - help + bool "TI OMAP watchdog timer support" + depends on WDT && ARCH_OMAP2PLUS + default y if AM33XX + help This enables OMAP3+ watchdog timer driver, which can be found on some TI chipsets and inline with driver model. @@ -151,8 +151,8 @@ config WDT_ORION depends on WDT select CLK help - Select this to enable Orion watchdog timer, which can be found on some - Marvell Armada chips. + Select this to enable Orion watchdog timer, which can be found on some + Marvell Armada chips. config WDT_SANDBOX bool "Enable Watchdog Timer support for Sandbox" @@ -166,8 +166,8 @@ config WDT_SP805 bool "SP805 watchdog timer support" depends on WDT help - Select this to enable SP805 watchdog timer, which can be found on some - nxp layerscape chips. + Select this to enable SP805 watchdog timer, which can be found on some + nxp layerscape chips. config WDT_STM32MP bool "IWDG watchdog driver for STM32 MP's family" @@ -182,8 +182,8 @@ config XILINX_TB_WATCHDOG depends on WDT imply WATCHDOG help - Select this to enable Xilinx Axi watchdog timer, which can be found on some - Xilinx Microblaze Platforms. + Select this to enable Xilinx Axi watchdog timer, which can be found on some + Xilinx Microblaze Platforms. config WDT_TANGIER bool "Intel Tangier watchdog timer support" diff --git a/test/py/tests/test_gpio.py b/test/py/tests/test_gpio.py new file mode 100644 index 0000000000..8c64f686b0 --- /dev/null +++ b/test/py/tests/test_gpio.py @@ -0,0 +1,37 @@ +# SPDX-License-Identifier: GPL-2.0+ + +import pytest + +@pytest.mark.boardspec('sandbox') +@pytest.mark.buildconfigspec('cmd_gpio') +def test_gpio_input(u_boot_console): + """Test that gpio input correctly returns the value of a gpio pin.""" + + response = u_boot_console.run_command('gpio input 0; echo rc:$?') + expected_response = 'rc:0' + assert(expected_response in response) + response = u_boot_console.run_command('gpio toggle 0; gpio input 0; echo rc:$?') + expected_response = 'rc:1' + assert(expected_response in response) + +@pytest.mark.boardspec('sandbox') +@pytest.mark.buildconfigspec('cmd_gpio') +def test_gpio_exit_statuses(u_boot_console): + """Test that non-input gpio commands correctly return the command + success/failure status.""" + + expected_response = 'rc:0' + response = u_boot_console.run_command('gpio clear 0; echo rc:$?') + assert(expected_response in response) + response = u_boot_console.run_command('gpio set 0; echo rc:$?') + assert(expected_response in response) + response = u_boot_console.run_command('gpio toggle 0; echo rc:$?') + assert(expected_response in response) + response = u_boot_console.run_command('gpio status -a; echo rc:$?') + assert(expected_response in response) + + expected_response = 'rc:1' + response = u_boot_console.run_command('gpio nonexistent-command; echo rc:$?') + assert(expected_response in response) + response = u_boot_console.run_command('gpio input 200; echo rc:$?') + assert(expected_response in response) |