mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 06:31:58 +02:00
Add a generic pin configuration property "input-threshold-voltage-microvolt" to support hardware designs where the input logic threshold is decoupled from the power supply voltage. This property allows the pinctrl driver to configure the correct internal reference voltage for pins that need to accept input signals at a different voltage level than their power supply. For example, a pin powered by 3.3V may need to accept 1.8V logic signals. This defines the reference for VIH (Input High Voltage) and VIL (Input Low Voltage) thresholds, enabling proper signal detection across different voltage domains. Signed-off-by: Tzuyi Chang <tychang@realtek.com> Co-developed-by: Yu-Chun Lin <eleanor.lin@realtek.com> Signed-off-by: Yu-Chun Lin <eleanor.lin@realtek.com> Acked-by: Conor Dooley <conor.dooley@microchip.com> Signed-off-by: Linus Walleij <linusw@kernel.org>
267 lines
6.6 KiB
YAML
267 lines
6.6 KiB
YAML
# SPDX-License-Identifier: GPL-2.0-only
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/pinctrl/pincfg-node.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Generic Pin Configuration Node
|
|
|
|
maintainers:
|
|
- Linus Walleij <linusw@kernel.org>
|
|
|
|
description:
|
|
Many data items that are represented in a pin configuration node are common
|
|
and generic. Pin control bindings should use the properties defined below
|
|
where they are applicable; not all of these properties are relevant or useful
|
|
for all hardware or binding structures. Each individual binding document
|
|
should state which of these generic properties, if any, are used, and the
|
|
structure of the DT nodes that contain these properties.
|
|
|
|
properties:
|
|
bias-disable:
|
|
type: boolean
|
|
description: disable any pin bias
|
|
|
|
bias-high-impedance:
|
|
type: boolean
|
|
description: high impedance mode ("third-state", "floating")
|
|
|
|
bias-bus-hold:
|
|
type: boolean
|
|
description: latch weakly
|
|
|
|
bias-pull-up:
|
|
oneOf:
|
|
- type: boolean
|
|
- $ref: /schemas/types.yaml#/definitions/uint32
|
|
description: pull up the pin. Takes as optional argument on hardware
|
|
supporting it the pull strength in Ohm.
|
|
|
|
bias-pull-down:
|
|
oneOf:
|
|
- type: boolean
|
|
- $ref: /schemas/types.yaml#/definitions/uint32
|
|
description: pull down the pin. Takes as optional argument on hardware
|
|
supporting it the pull strength in Ohm.
|
|
|
|
bias-pull-pin-default:
|
|
oneOf:
|
|
- type: boolean
|
|
- $ref: /schemas/types.yaml#/definitions/uint32
|
|
description: use pin-default pull state. Takes as optional argument on
|
|
hardware supporting it the pull strength in Ohm.
|
|
|
|
drive-push-pull:
|
|
oneOf:
|
|
- type: boolean
|
|
- $ref: /schemas/types.yaml#/definitions/uint32
|
|
enum: [ 0, 1 ]
|
|
deprecated: true
|
|
description: drive actively high and low
|
|
|
|
drive-open-drain:
|
|
oneOf:
|
|
- type: boolean
|
|
- $ref: /schemas/types.yaml#/definitions/uint32
|
|
const: 1 # No known cases of 0
|
|
deprecated: true
|
|
description: drive with open drain
|
|
|
|
drive-open-source:
|
|
type: boolean
|
|
description: drive with open source
|
|
|
|
drive-strength:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
description: sink or source at most X mA
|
|
|
|
drive-strength-microamp:
|
|
description: sink or source at most X uA
|
|
|
|
input-enable:
|
|
type: boolean
|
|
description: enable input on pin (no effect on output, such as
|
|
enabling an input buffer)
|
|
|
|
input-disable:
|
|
type: boolean
|
|
description: disable input on pin (no effect on output, such as
|
|
disabling an input buffer)
|
|
|
|
input-schmitt-enable:
|
|
type: boolean
|
|
description: enable schmitt-trigger mode
|
|
|
|
input-schmitt-disable:
|
|
type: boolean
|
|
description: disable schmitt-trigger mode
|
|
|
|
input-schmitt-microvolt:
|
|
description: threshold strength for schmitt-trigger
|
|
|
|
input-debounce:
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
description: Takes the debounce time in usec as argument or 0 to disable
|
|
debouncing
|
|
|
|
power-source:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
description: select between different power supplies
|
|
|
|
low-power-enable:
|
|
type: boolean
|
|
description: enable low power mode
|
|
|
|
low-power-disable:
|
|
type: boolean
|
|
description: disable low power mode
|
|
|
|
output-disable:
|
|
type: boolean
|
|
description: disable output on a pin (such as disable an output buffer)
|
|
|
|
output-enable:
|
|
type: boolean
|
|
description: enable output on a pin without actively driving it
|
|
(such as enabling an output buffer)
|
|
|
|
output-impedance-ohms:
|
|
description: set the output impedance of a pin to at most X ohms
|
|
|
|
output-low:
|
|
type: boolean
|
|
description: set the pin to output mode with low level
|
|
|
|
output-high:
|
|
type: boolean
|
|
description: set the pin to output mode with high level
|
|
|
|
sleep-hardware-state:
|
|
type: boolean
|
|
description: indicate this is sleep related state which will be
|
|
programmed into the registers for the sleep state.
|
|
|
|
slew-rate:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
description: set the slew rate
|
|
|
|
skew-delay:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
description:
|
|
this affects the expected clock skew on input pins
|
|
and the delay before latching a value to an output
|
|
pin. Typically indicates how many double-inverters are
|
|
used to delay the signal.
|
|
|
|
skew-delay-input-ps:
|
|
description:
|
|
this affects the expected clock skew in ps on an input pin.
|
|
|
|
skew-delay-output-ps:
|
|
description:
|
|
this affects the expected delay in ps before latching a value to
|
|
an output pin.
|
|
|
|
input-threshold-voltage-microvolt:
|
|
description: Specifies the input voltage level of the pin in microvolts.
|
|
This defines the reference for VIH (Input High Voltage) and VIL
|
|
(Input Low Voltage) thresholds for proper signal detection.
|
|
|
|
allOf:
|
|
- if:
|
|
required:
|
|
- skew-delay
|
|
then:
|
|
properties:
|
|
skew-delay-input-ps: false
|
|
skew-delay-output-ps: false
|
|
|
|
- if:
|
|
required:
|
|
- input-disable
|
|
then:
|
|
properties:
|
|
input-enable: false
|
|
input-threshold-voltage-microvolt: false
|
|
|
|
- if:
|
|
required:
|
|
- output-disable
|
|
then:
|
|
properties:
|
|
output-enable: false
|
|
output-impedance-ohms: false
|
|
|
|
- if:
|
|
required:
|
|
- output-low
|
|
then:
|
|
properties:
|
|
output-high: false
|
|
|
|
- if:
|
|
required:
|
|
- low-power-enable
|
|
then:
|
|
properties:
|
|
low-power-disable: false
|
|
|
|
- if:
|
|
required:
|
|
- input-schmitt-disable
|
|
then:
|
|
properties:
|
|
input-schmitt-enable: false
|
|
input-schmitt-microvolt: false
|
|
|
|
- if:
|
|
required:
|
|
- drive-strength
|
|
then:
|
|
properties:
|
|
drive-strength-microamp: false
|
|
|
|
- if:
|
|
anyOf:
|
|
- required:
|
|
- drive-open-source
|
|
- required:
|
|
- drive-open-drain
|
|
- required:
|
|
- drive-push-pull
|
|
then:
|
|
oneOf:
|
|
- required:
|
|
- drive-open-source
|
|
- required:
|
|
- drive-open-drain
|
|
- required:
|
|
- drive-push-pull
|
|
|
|
- if:
|
|
anyOf:
|
|
- required:
|
|
- bias-disable
|
|
- required:
|
|
- bias-bus-hold
|
|
- required:
|
|
- bias-pull-up
|
|
- required:
|
|
- bias-pull-down
|
|
- required:
|
|
- bias-pull-pin-default
|
|
then:
|
|
oneOf:
|
|
- required:
|
|
- bias-disable
|
|
- required:
|
|
- bias-bus-hold
|
|
- required:
|
|
- bias-pull-up
|
|
- required:
|
|
- bias-pull-down
|
|
- required:
|
|
- bias-pull-pin-default
|
|
|
|
additionalProperties: true
|