mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
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>
This commit is contained in:
parent
9576e8d3c4
commit
0a11110bfc
1 changed files with 156 additions and 0 deletions
|
@ -0,0 +1,156 @@
|
|||
# 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";
|
||||
};
|
||||
};
|
||||
};
|
Loading…
Add table
Reference in a new issue