public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzk@kernel.org>
To: Yu-Chun Lin <eleanor.lin@realtek.com>
Cc: linusw@kernel.org, robh@kernel.org, krzk+dt@kernel.org,
	 conor+dt@kernel.org, bartosz.golaszewski@oss.qualcomm.com,
	afaerber@suse.com,  james.tai@realtek.com, cy.huang@realtek.com,
	stanley_chang@realtek.com,  tychang@realtek.com,
	linux-gpio@vger.kernel.org, devicetree@vger.kernel.org,
	 linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	 linux-realtek-soc@lists.infradead.org
Subject: Re: [PATCH v2 11/14] dt-bindings: pinctrl: realtek: Add RTD1625 pinctrl binding
Date: Sat, 7 Mar 2026 14:09:58 +0100	[thread overview]
Message-ID: <20260307-large-wondrous-coot-4f4ee7@quoll> (raw)
In-Reply-To: <20260306075244.1170399-12-eleanor.lin@realtek.com>

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
> 


  reply	other threads:[~2026-03-07 13:10 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-06  7:52 [PATCH v2 00/14] pinctrl: realtek: Core improvements and RTD1625 support Yu-Chun Lin
2026-03-06  7:52 ` [PATCH v2 01/14] pinctrl: realtek: Cleanup license string Yu-Chun Lin
2026-03-06  7:52 ` [PATCH v2 02/14] pinctrl: realtek: Fix return value and silence log for unsupported configs Yu-Chun Lin
2026-03-06  7:52 ` [PATCH v2 03/14] pinctrl: realtek: Switch to use devm functions Yu-Chun Lin
2026-03-06  7:52 ` [PATCH v2 04/14] pinctrl: realtek: Simplify error handling with dev_err_probe() Yu-Chun Lin
2026-03-06  7:52 ` [PATCH v2 05/14] pinctrl: realtek: Fix grammar in error messages Yu-Chun Lin
2026-03-06  7:52 ` [PATCH v2 06/14] pinctrl: realtek: Support system suspend and resume Yu-Chun Lin
2026-03-06  7:52 ` [PATCH v2 07/14] dt-bindings: pincfg-node: Add input-voltage-microvolt property Yu-Chun Lin
2026-03-07 12:51   ` Krzysztof Kozlowski
2026-03-09  9:12     ` Yu-Chun Lin [林祐君]
2026-03-06  7:52 ` [PATCH v2 08/14] pinctrl: pinconf-generic: Add properties 'input-voltage-microvolt' Yu-Chun Lin
2026-03-06  7:52 ` [PATCH v2 09/14] dt-bindings: pinctrl: realtek: Rename 'realtek,duty-cycle' to 'realtek,pulse-width-adjust' Yu-Chun Lin
2026-03-07 12:53   ` Krzysztof Kozlowski
2026-03-09  9:18     ` Yu-Chun Lin [林祐君]
2026-03-09 10:17       ` Krzysztof Kozlowski
2026-03-09 11:00         ` Yu-Chun Lin [林祐君]
2026-03-10  9:28           ` Linus Walleij
2026-03-06  7:52 ` [PATCH v2 10/14] " Yu-Chun Lin
2026-03-06  7:52 ` [PATCH v2 11/14] dt-bindings: pinctrl: realtek: Add RTD1625 pinctrl binding Yu-Chun Lin
2026-03-07 13:09   ` Krzysztof Kozlowski [this message]
2026-03-09  9:35     ` Yu-Chun Lin [林祐君]
2026-03-06  7:52 ` [PATCH v2 12/14] pinctrl: realtek: Add support for slew rate, input voltage and high VIL Yu-Chun Lin
2026-03-06  7:52 ` [PATCH v2 14/14] arm64: dts: realtek: Add pinctrl support for RTD1625 Yu-Chun Lin
2026-03-10  9:30 ` [PATCH v2 00/14] pinctrl: realtek: Core improvements and RTD1625 support Linus Walleij
     [not found] ` <20260306075244.1170399-14-eleanor.lin@realtek.com>
2026-03-10  9:48   ` [PATCH v2 13/14] pinctrl: realtek: Add rtd1625 pinctrl driver Linus Walleij

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260307-large-wondrous-coot-4f4ee7@quoll \
    --to=krzk@kernel.org \
    --cc=afaerber@suse.com \
    --cc=bartosz.golaszewski@oss.qualcomm.com \
    --cc=conor+dt@kernel.org \
    --cc=cy.huang@realtek.com \
    --cc=devicetree@vger.kernel.org \
    --cc=eleanor.lin@realtek.com \
    --cc=james.tai@realtek.com \
    --cc=krzk+dt@kernel.org \
    --cc=linusw@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-realtek-soc@lists.infradead.org \
    --cc=robh@kernel.org \
    --cc=stanley_chang@realtek.com \
    --cc=tychang@realtek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox