[PATCH v2 11/14] dt-bindings: pinctrl: realtek: Add RTD1625 pinctrl binding

Yu-Chun Lin [林祐君] eleanor.lin at realtek.com
Mon Mar 9 02:35:15 PDT 2026


> 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?
> 

No, this is not a duplication. power-source is used to configure the output voltage,
whereas input-voltage-microvolt controls the input logic thresholds.

Both are handled in rtd_pconf_parse_conf(), which is called by rtd_pin_config_set().

> > +
> > +      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?
> 

I will use specific values in v3.

> > +
> > +      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 at 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
> 

I will change them to <2>.

Best Regards,
Yu-Chun

> > +        };
> > +
> > +        i2c-0-pins {
> > +            pins = "gpio_12",
> > +                   "gpio_13";
> > +            function = "i2c0";
> > +            drive-strength = <4>;
> > +        };
> > +    };
> > --
> > 2.34.1
> >


More information about the linux-arm-kernel mailing list