u-boot/drivers
Daniel Golle bcfb23ec7e pinctrl: mediatek: set R1/R0 in case pullen/pullsel succeeded
Commit dafe0fbfb0 ("pinctrl: mediatek: rewrite mtk_pinconf_set and
related functions") changed the logic deciding to set R0 and R1
registers for V1 devices.

Before:
	/* Also set PUPD/R0/R1 if the pin has them */
	err = mtk_hw_set_value(dev, pin, PINCTRL_PIN_REG_PUPD, !pullup);
	if (err != -EINVAL) {
		mtk_hw_set_value(dev, pin, PINCTRL_PIN_REG_R0, r0);
		mtk_hw_set_value(dev, pin, PINCTRL_PIN_REG_R1, r1);
	}

After:
	/* try pupd_r1_r0 if pullen_pullsel return error */
	err = mtk_pinconf_bias_set_pullen_pullsel(dev, pin, disable, pullup,
						  val);
	if (err)
		return mtk_pinconf_bias_set_pupd_r1_r0(dev, pin, disable,
						       pullup, val);

Tracing mtk_pinconf_bias_set_pullen_pullsel shows that the function
always either returns 0 in case of success or -EINVAL in case any error
has occurred. Hence the logic responsible of the decision to program R0
and R1 has been inverted.

This leads to problems on BananaPi R2 (MT7623N) when booting from
SDMMC, it turns out accessing eMMC no longer works since
U-Boot 2022.07:

MT7623> mmc dev 0
Card did not respond to voltage select! : -110

The problem wasn't detected for a long time as both eMMC and SDMMC work
fine if they are used to boot from, and hence R0 and R1 were already
setup by the bootrom and/or preloader.

Fix the logic to restore the originally intended and correct behavior
and also change the descriptive comment accordingly.

Fixes: dafe0fbfb0 ("pinctrl: mediatek: rewrite mtk_pinconf_set and related functions")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Tested-By: Frank Wunderlich <frank-w@public-files.de>
2023-05-03 09:05:24 -04:00
..
adc adc: stm32mp15: add calibration support 2023-01-12 16:25:51 +01:00
ata ata: pci: enable bus mastering 2023-04-25 15:31:28 -04:00
axi WS cleanup: remove trailing empty lines 2021-09-30 08:08:56 -04:00
bios_emulator video: Rename structs and functions to avoid VBE 2022-08-12 08:14:23 -04:00
block sandbox: fix return type of os_filesize() 2023-04-28 11:30:17 -06:00
bootcount global: Move remaining CONFIG_SYS_* to CFG_SYS_* 2022-12-05 16:06:08 -05:00
bus bus: Optionally include TI sysc driver in SPL/TPL 2022-12-02 08:39:00 -05:00
button dm: button: add support for linux_code in button-gpio.c driver 2023-02-10 12:50:01 -05:00
cache cache: starfive: Add StarFive JH7110 support 2023-04-20 16:08:44 +08:00
clk Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sunxi 2023-04-30 21:29:50 -04:00
core core: fdtaddr: use map_sysmem() as cast for the return 2023-04-28 11:52:30 -06:00
cpu event: Correct dependencies on the EVENT framework 2023-01-18 12:46:13 -05:00
crypto Correct SPL uses of HW_WATCHDOG 2023-02-10 07:41:39 -05:00
ddr ddr: marvell: a38x: Perform DDR training sequence again for 2nd boot 2023-04-13 11:34:47 +02:00
demo demo: migrate uclass to livetree 2021-10-05 08:50:15 -04:00
dfu blk: Switch over to using uclass IDs 2022-09-16 11:05:16 -04:00
dma dma: ti: k3-udma: Fix channel hang on teardown 2023-03-22 12:51:15 -04:00
extcon extcon: add MAX14526 MUIC support 2023-05-02 14:23:58 -04:00
fastboot drivers: fastboot: zImage flashing is not supported for v3, v4 2023-04-04 14:50:47 -04:00
firmware firmware: psci: enable DM_FLAG_PRE_RELOC 2023-04-25 15:31:28 -04:00
fpga fpga: zynqmppl: fix fpga loads command for unencrypted use case 2023-03-09 13:15:00 +01:00
fuzz sandbox: Implement fuzzing engine driver 2022-06-23 12:58:19 -04:00
fwu-mdata FWU: Add FWU metadata access driver for GPT partitioned block devices 2022-10-31 14:47:32 -04:00
gpio Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sunxi 2023-04-30 21:29:50 -04:00
hwspinlock treewide: invaild -> invalid 2022-01-13 07:57:49 -05:00
i2c i2c: fsl_i2c: fix m68k transferts 2023-04-11 06:51:56 +02:00
input input: button_kbd: make driver complementary to gpio buttons 2023-03-30 15:09:59 -04:00
iommu iommu: Implement mapping IOMMUs for PCI devices 2023-01-27 14:47:58 -05:00
led led: led_pwm: typo 'iverted' on code comment 2022-11-02 13:58:17 -04:00
mailbox mailbox: zynqmp: Enable ipi mailbox driver for Versal NET 2022-09-26 14:23:29 +02:00
memory memory: atmel-ebi: add Atmel EBI (External Bus Interface) driver 2022-12-08 18:06:27 +02:00
mfd mfd: syscon: atmel-smc: Add new helpers to ease SMC regs manipulation 2022-12-08 18:06:27 +02:00
misc misc: add Qualcomm GENI SE QUP device driver 2023-05-02 14:23:58 -04:00
mmc mmc: rockchip_sdhci: Limit number of blocks read in a single command 2023-04-21 15:55:29 +08:00
mtd Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-spi 2023-05-01 13:29:52 -04:00
mux Correct SPL uses of MULTIPLEXER 2023-03-02 17:45:58 -05:00
net net: rswitch: Add Renesas Ethernet Switch 2023-04-16 16:18:29 +02:00
nvme bootstd: Add a new pre-scan priority for bootdevs 2023-01-23 18:11:41 -05:00
pch treewide: Simply conditions with the new OF_REAL 2021-09-25 09:46:15 -06:00
pci pci: auto: Remove PCI_CLASS_PROCESSOR_POWERPC autoconfig case 2023-05-02 08:55:15 -04:00
pci_endpoint dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
phy phy: sun4i-usb: Do not drive VBUS with external VBUS present 2023-04-28 01:30:40 +01:00
pinctrl pinctrl: mediatek: set R1/R0 in case pullen/pullsel succeeded 2023-05-03 09:05:24 -04:00
power power: regulator: Add a driver for the AXP USB power supply 2023-04-28 01:29:40 +01:00
pwm ARM: tegra: Fix Tegra PWM parent clock 2023-02-23 12:55:36 -07:00
qe global: Finish CONFIG -> CFG migration 2023-01-20 12:27:24 -05:00
ram arm: mach-k3: Remove empty sys_proto.h include 2023-04-24 13:18:48 -04:00
reboot-mode reboot-mode: Add NVMEM reboot mode 2023-01-11 11:54:50 -05:00
remoteproc remoteproc: ti_k3_arm64: Change the startup of arm64 core 2023-04-24 13:18:48 -04:00
reset reset: starfive: jh7110: Add reset driver for StarFive JH7110 SoC 2023-04-20 16:08:44 +08:00
rng rockchip: rng: add trngv1 for rk3588 2023-04-21 15:16:01 +08:00
rtc drivers: rtc: add max313xx series rtc driver 2023-03-30 15:09:59 -04:00
scsi scsi: typo supporedt 2023-04-01 10:11:50 +02:00
serial serial: msm-geni: correct oversampling value based on QUP hardware revision 2023-05-02 14:23:59 -04:00
smem smem: msm: add missing <linux/sizes.h> 2022-10-12 08:56:24 -04:00
soc soc: soc_ti_k3: fix revision array bounds checks 2023-04-25 15:31:27 -04:00
sound test: test sandbox sound driver more rigorously 2022-12-05 17:43:21 +01:00
spi Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-spi 2023-05-01 13:29:52 -04:00
spmi spmi: msm: add arbiter version 5 support 2021-10-31 08:46:44 -04:00
sysinfo sysinfo: gpio: fix loop over DT "revisions" array 2023-03-30 15:09:59 -04:00
sysreset sandbox: mark sandbox_exit() as no return. 2023-04-28 11:30:17 -06:00
tee drivers: tee: sandbox: Fix SCP03 control emulator 2023-04-28 11:30:17 -06:00
thermal thermal: add sandbox driver 2022-10-11 16:03:03 -04:00
timer Merge branch 'master' into next 2023-03-27 15:19:57 -04:00
tpm tpm: sandbox: Change the return code when device is already open 2023-02-28 09:44:25 +02:00
ufs global: Finish CONFIG -> CFG migration 2023-01-20 12:27:24 -05:00
usb sandbox: fix sandbox_hub_submit_control_msg() 2023-04-28 11:30:17 -06:00
video rockchip: video: Add support for RK3568 DSI Host 2023-04-21 15:16:01 +08:00
virtio virtio: Ensure PCI is set up first 2023-04-26 08:43:04 -04:00
w1 dm: treewide: Do not use the return value of simple uclass iterator 2022-10-29 07:36:33 -06:00
w1-eeprom dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
watchdog Merge branch 'for-2023.07' of https://source.denx.de/u-boot/custodians/u-boot-mpc8xx 2023-04-29 09:29:41 -04:00
xen xen: Limit execution to EL1 only 2023-04-25 15:31:28 -04:00
Kconfig dm: extcon: add an uclass for extcon 2023-05-02 14:23:34 -04:00
Makefile dm: extcon: add an uclass for extcon 2023-05-02 14:23:34 -04:00