Re: [PATCH v2 11/14] dt-bindings: pinctrl: realtek: Add RTD1625 pinctrl binding
From: Krzysztof Kozlowski <krzk@kernel.org>
Date: 2026-03-07 13:10:00
Also in:
linux-devicetree, linux-gpio, lkml
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