linux-loongson/Documentation/devicetree/bindings/pinctrl/eswin,eic7700-pinctrl.yaml
Yulin Lu 0a11110bfc dt-bindings: pinctrl: eswin: Document for EIC7700 SoC
Add EIC7700 pinctrl device for all configurable pins.
For the EIC7700 pinctrl registers, each register (32 bits)
controls the characteristics of a single pin.
It supports setting function multiplexing, Schmitt trigger,
drive strength, pull-up/pull-down, and input enable.

Co-developed-by: Samuel Holland <samuel.holland@sifive.com>
Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
Signed-off-by: Yulin Lu <luyulin@eswincomputing.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/20250612104811.1206-1-luyulin@eswincomputing.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2025-06-18 14:02:28 +02:00

157 lines
5.6 KiB
YAML

# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/pinctrl/eswin,eic7700-pinctrl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Eswin Eic7700 Pinctrl
maintainers:
- Yulin Lu <luyulin@eswincomputing.com>
allOf:
- $ref: pinctrl.yaml#
description: |
eic7700 pin configuration nodes act as a container for an arbitrary number of
subnodes. Each of these subnodes represents some desired configuration for one or
more pins. This configuration can include the mux function to select on those pin(s),
and various pin configuration parameters, such as input-enable, pull-up, etc.
properties:
compatible:
const: eswin,eic7700-pinctrl
reg:
maxItems: 1
vrgmii-supply:
description:
Regulator supply for the RGMII interface IO power domain.
This property should reference a regulator that provides either 1.8V or 3.3V,
depending on the board-level voltage configuration required by the RGMII interface.
patternProperties:
'-grp$':
type: object
additionalProperties: false
patternProperties:
'-pins$':
type: object
properties:
pins:
description:
For eic7700, specifies the name(s) of one or more pins to be configured by
this node.
items:
enum: [ chip_mode, mode_set0, mode_set1, mode_set2, mode_set3, xin,
rst_out_n, key_reset_n, gpio0, por_sel, jtag0_tck, jtag0_tms,
jtag0_tdi, jtag0_tdo, gpio5, spi2_cs0_n, jtag1_tck, jtag1_tms,
jtag1_tdi, jtag1_tdo, gpio11, spi2_cs1_n, pcie_clkreq_n,
pcie_wake_n, pcie_perst_n, hdmi_scl, hdmi_sda, hdmi_cec,
jtag2_trst, rgmii0_clk_125, rgmii0_txen, rgmii0_txclk,
rgmii0_txd0, rgmii0_txd1, rgmii0_txd2, rgmii0_txd3, i2s0_bclk,
i2s0_wclk, i2s0_sdi, i2s0_sdo, i2s_mclk, rgmii0_rxclk,
rgmii0_rxdv, rgmii0_rxd0, rgmii0_rxd1, rgmii0_rxd2, rgmii0_rxd3,
i2s2_bclk, i2s2_wclk, i2s2_sdi, i2s2_sdo, gpio27, gpio28, gpio29,
rgmii0_mdc, rgmii0_mdio, rgmii0_intb, rgmii1_clk_125, rgmii1_txen,
rgmii1_txclk, rgmii1_txd0, rgmii1_txd1, rgmii1_txd2, rgmii1_txd3,
i2s1_bclk, i2s1_wclk, i2s1_sdi, i2s1_sdo, gpio34, rgmii1_rxclk,
rgmii1_rxdv, rgmii1_rxd0, rgmii1_rxd1, rgmii1_rxd2, rgmii1_rxd3,
spi1_cs0_n, spi1_clk, spi1_d0, spi1_d1, spi1_d2, spi1_d3, spi1_cs1_n,
rgmii1_mdc, rgmii1_mdio, rgmii1_intb, usb0_pwren, usb1_pwren,
i2c0_scl, i2c0_sda, i2c1_scl, i2c1_sda, i2c2_scl, i2c2_sda,
i2c3_scl, i2c3_sda, i2c4_scl, i2c4_sda, i2c5_scl, i2c5_sda,
uart0_tx, uart0_rx, uart1_tx, uart1_rx, uart1_cts, uart1_rts,
uart2_tx, uart2_rx, jtag2_tck, jtag2_tms, jtag2_tdi, jtag2_tdo,
fan_pwm, fan_tach, mipi_csi0_xvs, mipi_csi0_xhs, mipi_csi0_mclk,
mipi_csi1_xvs, mipi_csi1_xhs, mipi_csi1_mclk, mipi_csi2_xvs,
mipi_csi2_xhs, mipi_csi2_mclk, mipi_csi3_xvs, mipi_csi3_xhs,
mipi_csi3_mclk, mipi_csi4_xvs, mipi_csi4_xhs, mipi_csi4_mclk,
mipi_csi5_xvs, mipi_csi5_xhs, mipi_csi5_mclk, spi3_cs_n, spi3_clk,
spi3_di, spi3_do, gpio92, gpio93, s_mode, gpio95, spi0_cs_n,
spi0_clk, spi0_d0, spi0_d1, spi0_d2, spi0_d3, i2c10_scl,
i2c10_sda, i2c11_scl, i2c11_sda, gpio106, boot_sel0, boot_sel1,
boot_sel2, boot_sel3, gpio111, lpddr_ref_clk ]
function:
description:
Specify the alternative function to be configured for the
given pins.
enum: [ disabled, boot_sel, chip_mode, emmc, fan_tach,
gpio, hdmi, i2c, i2s, jtag, ddr_ref_clk_sel,
lpddr_ref_clk, mipi_csi, osc, pcie, pwm,
rgmii, reset, sata, sdio, spi, s_mode, uart, usb ]
input-schmitt-enable: true
input-schmitt-disable: true
bias-disable: true
bias-pull-down: true
bias-pull-up: true
input-enable: true
input-disable: true
drive-strength-microamp: true
required:
- pins
additionalProperties: false
allOf:
- $ref: pincfg-node.yaml#
- $ref: pinmux-node.yaml#
- if:
properties:
pins:
anyOf:
- pattern: '^rgmii'
- const: lpddr_ref_clk
then:
properties:
drive-strength-microamp:
enum: [3000, 6000, 9000, 12000, 15000, 18000, 21000, 24000]
else:
properties:
drive-strength-microamp:
enum: [6000, 9000, 12000, 15000, 18000, 21000, 24000, 27000]
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
pinctrl@51600080 {
compatible = "eswin,eic7700-pinctrl";
reg = <0x51600080 0x1fff80>;
vrgmii-supply = <&vcc_1v8>;
dev-active-grp {
/* group node defining 1 standard pin */
gpio10-pins {
pins = "jtag1_tdo";
function = "gpio";
input-enable;
bias-pull-up;
};
/* group node defining 2 I2C pins */
i2c6-pins {
pins = "uart1_cts", "uart1_rts";
function = "i2c";
};
};
};