Re: [PATCH v2 11/14] dt-bindings: pinctrl: realtek: Add RTD1625 pinctrl binding
From: Krzysztof Kozlowski
Date: Sat Mar 07 2026 - 08:10:11 EST
On Fri, Mar 06, 2026 at 03:52:41PM +0800, Yu-Chun Lin wrote:
> + input-voltage-microvolt:
> + description: |
> + Select the input receiver voltage domain for the pin.
> + Valid arguments are:
> + - 1800000: 1.8V input logic level
> + - 3300000: 3.3V input logic level
> + enum: [1800000, 3300000]
> +
> + drive-push-pull: true
> +
> + power-source:
> + description: |
> + Valid arguments are described as below:
> + 0: power supply of 1.8V
> + 1: power supply of 3.3V
> + enum: [0, 1]
Isn't this duplicating input-voltage-microvolt? Where do you use it in
the driver?
> +
> + slew-rate:
> + description: |
> + Valid arguments are described as below:
> + 0: ~1ns falling time
> + 1: ~10ns falling time
> + 2: ~20ns falling time
> + 3: ~30ns falling time
> + enum: [0, 1, 2, 3]
If you have specific values, why not using 1/10/20/30?
> +
> + realtek,drive-strength-p:
> + description: |
> + Some of pins can be driven using the P-MOS and N-MOS transistor to
> + achieve finer adjustments. The block-diagram representation is as
> + follows:
> + VDD
> + |
> + ||--+
> + +-----o|| P-MOS-FET
> + | ||--+
> + IN --+ +----- out
> + | ||--+
> + +------|| N-MOS-FET
> + ||--+
> + |
> + GND
> + The driving strength of the P-MOS/N-MOS transistors impacts the
> + waveform's rise/fall times. Greater driving strength results in
> + shorter rise/fall times. Each P-MOS and N-MOS transistor offers
> + 8 configurable levels (0 to 7), with higher values indicating
> + greater driving strength, contributing to achieving the desired
> + speed.
> +
> + The realtek,drive-strength-p is used to control the driving strength
> + of the P-MOS output.
> +
> + This value is not a simple count of transistors. Instead, it
> + represents a weighted configuration. There is a base driving
> + capability (even at value 0), and each bit adds a different weight to
> + the total strength. The resulting current is non-linear and varies
> + significantly based on the IO voltage (1.8V vs 3.3V) and the specific
> + pad group.
> + $ref: /schemas/types.yaml#/definitions/uint32
> + minimum: 0
> + maximum: 7
> +
> + realtek,drive-strength-n:
> + description: |
> + Similar to the realtek,drive-strength-p, the realtek,drive-strength-n
> + is used to control the driving strength of the N-MOS output.
> +
> + This property uses the same weighted configuration logic where values
> + 0-7 represent non-linear strength adjustments rather than a transistor
> + count.
> +
> + Higher values indicate greater driving strength, resulting in shorter
> + fall times.
> + $ref: /schemas/types.yaml#/definitions/uint32
> + minimum: 0
> + maximum: 7
> +
> + realtek,pulse-width-adjust:
> + description: |
> + An integer describing the level to adjust the output pulse width, it
> + provides a fixed nanosecond-level adjustment to the rising/falling
> + edges of an existing signal. It is used for Signal Integrity tuning
> + (adding/subtracting delay to fine-tune the high/low duration), rather
> + than generating a specific PWM frequency.
> +
> + Valid arguments are described as below:
> + 0: 0ns
> + 2: + 0.25ns
> + 3: + 0.5ns
> + 4: -0.25ns
> + 5: -0.5ns
> + $ref: /schemas/types.yaml#/definitions/uint32
> + enum: [0, 2, 3, 4, 5]
> +
> + realtek,high-vil-microvolt:
> + description: |
> + The threshold value for the input receiver's LOW recognition (VIL).
> +
> + This property is used to address specific HDMI I2C compatibility
> + issues where some sinks (TVs) have weak pull-down capabilities and
> + fail to pull the bus voltage below the standard VIL threshold
> + (~0.7V).
> +
> + Setting this property to 1100000 (1.1V) enables a specialized input
> + receiver mode that raises the effective VIL threshold to improve
> + detection.
> + enum: [1100000]
> +
> + required:
> + - pins
> +
> + additionalProperties: false
> +
> +required:
> + - compatible
> + - reg
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + pinctrl@4e000 {
> + compatible = "realtek,rtd1625-iso-pinctrl";
> + reg = <0x4e000 0x130>;
> +
> + emmc-hs200-pins {
> + pins = "emmc_clk",
> + "emmc_cmd",
> + "emmc_data_0",
> + "emmc_data_1",
> + "emmc_data_2",
> + "emmc_data_3",
> + "emmc_data_4",
> + "emmc_data_5",
> + "emmc_data_6",
> + "emmc_data_7";
> + function = "emmc";
> + realtek,drive-strength-p = <0x2>;
> + realtek,drive-strength-n = <0x2>;
These are not hex, but simple decimals
> + };
> +
> + i2c-0-pins {
> + pins = "gpio_12",
> + "gpio_13";
> + function = "i2c0";
> + drive-strength = <4>;
> + };
> + };
> --
> 2.34.1
>