Thread (38 messages) 38 messages, 5 authors, 2025-08-20

Re: [PATCH 8/9] arm64: dts: mediatek: mt8183-kukui: Fix pull-down/up-adv values

From: Julien Massot <julien.massot@collabora.com>
Date: 2025-08-19 09:13:01
Also in: linux-clk, linux-devicetree, linux-gpio, linux-mediatek, linux-sound, lkml

Hi,
On Tue, 2025-08-19 at 13:29 +0800, Chen-Yu Tsai wrote:
On Tue, Aug 19, 2025 at 1:27 PM Chen-Yu Tsai [off-list ref] wrote:
quoted
On Mon, Aug 18, 2025 at 11:22 PM Linus Walleij [off-list ref] wrote:
quoted
On Wed, Aug 6, 2025 at 8:38 AM Chen-Yu Tsai [off-list ref] wrote:
quoted
On Fri, Aug 1, 2025 at 7:18 PM Julien Massot wrote
quoted
quoted
                pins-clk {
                        pinmux = <PINMUX_GPIO124__FUNC_MSDC0_CLK>;
                        drive-strength = <MTK_DRIVE_14mA>;
-                       mediatek,pull-down-adv = <10>;
+                       mediatek,pull-down-adv = <2>;
        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;

and so on.

ChenYu
I agree with ChenYu, the more standardized properties are the better it is.

All the custom properties makes sense for an engineer working with just
that one SoC (like the SoC vendor...) but for field engineers who have
to use different SoCs every day this is just a big mess for the mind.

The standard properties are clear, concise and tell you exactly what
they are about.

The argument should be in Ohms though, according to the standard
bindings, but maybe the value of MTK_PUPD_SET_R1R0_10 is
something like that?
For reasons I can't recall clearly these are just placeholder values
that the driver then maps to the R1 and R0 settings. But at least they
use the standard properties.

The reason was either one of the following or both:

  a. not every group of pins had the same resistance values for R1 & R0
  b. there are no known precise values; the values depend on the process
     and batch
I don't know for (b), but no there is a lot of different values for R1 & R0
From what I saw in the register table
We can have for the pull up resistors
75K / 200K
2K  / 75K
5K  / 20K
50k / 10K 

And for the pull down ones:

75k/2k
75k/75k
10k/50k

And we can have a combination of both resistors that will give odd values 
(e.g 1948 Ohm for 2k/75K, 545454 Ohm for 75k/200k) to express in the device tree 

Also, their customers seemed more accustomed to dealing with toggling
R1 & R0 vs setting some actual value. I presume that comes with the
uncertainty of the actual hardware value, and they just try which
combination works better.

ChenYu
Regards,
Julien
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help