
Hi David
On Thu, Jun 18, 2020 at 9:21 PM David Woodhouse dwmw2@infradead.org wrote:
On Thu, 2020-06-18 at 16:52 +0100, David Woodhouse wrote:
So... whose bug is that? :)
Looks like the pinctrl driver. This *ought* to work (with the caveat that I really ought to make two pinctrl setups and change between them according to the voltage, like the Linux DT and mtk-sd driver do).
--- a/arch/arm/dts/mt7623n-bananapi-bpi-r2.dts +++ b/arch/arm/dts/mt7623n-bananapi-bpi-r2.dts @@ -133,12 +133,14 @@ "MSDC0_DAT2", "MSDC0_DAT3", "MSDC0_DAT4", "MSDC0_DAT5", "MSDC0_DAT6", "MSDC0_DAT7"; input-enable;
bias-pull-up;
drive-strength = <2>;
bias-pull-up = <3>; }; conf-clk { pins = "MSDC0_CLK";
bias-pull-down;
drive-strength = <2>;
bias-pull-down = <3>; }; conf-rst {
But it doesn't work. Partly because the U-Boot mtk pinctrl driver doesn't support the R0 R1 bits encoded in that <3>, and partly because it doesn't *even* get pullup/pulldown right at all; it sets the bit in the GPIO_PULLSEL registers but *not* the PUPD bit in the correct register for MSDC and other pins.
So change them manually, make it work, You have the board. I don't have any MediaTek board at the moment. Can you implement the missed part?
Michael