xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/actions,s500-pinctrl.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
16be33864SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
26be33864SEmmanuel Vadot%YAML 1.2
36be33864SEmmanuel Vadot---
46be33864SEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/actions,s500-pinctrl.yaml#
56be33864SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
66be33864SEmmanuel Vadot
76be33864SEmmanuel Vadottitle: Actions Semi S500 SoC pinmux & GPIO controller
86be33864SEmmanuel Vadot
96be33864SEmmanuel Vadotmaintainers:
106be33864SEmmanuel Vadot  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
116be33864SEmmanuel Vadot  - Cristian Ciocaltea <cristian.ciocaltea@gmail.com>
126be33864SEmmanuel Vadot
136be33864SEmmanuel Vadotdescription: |
146be33864SEmmanuel Vadot  Pinmux & GPIO controller manages pin multiplexing & configuration including
156be33864SEmmanuel Vadot  GPIO function selection & GPIO attributes configuration. Please refer to
166be33864SEmmanuel Vadot  pinctrl-bindings.txt in this directory for common binding part and usage.
176be33864SEmmanuel Vadot
186be33864SEmmanuel Vadotproperties:
196be33864SEmmanuel Vadot  compatible:
206be33864SEmmanuel Vadot    const: actions,s500-pinctrl
216be33864SEmmanuel Vadot
226be33864SEmmanuel Vadot  reg:
236be33864SEmmanuel Vadot    items:
246be33864SEmmanuel Vadot      - description: GPIO Output + GPIO Input + GPIO Data
256be33864SEmmanuel Vadot      - description: Multiplexing Control
266be33864SEmmanuel Vadot      - description: PAD Pull Control + PAD Schmitt Trigger Enable + PAD Control
276be33864SEmmanuel Vadot      - description: PAD Drive Capacity Select
286be33864SEmmanuel Vadot    minItems: 1
296be33864SEmmanuel Vadot
306be33864SEmmanuel Vadot  clocks:
316be33864SEmmanuel Vadot    maxItems: 1
326be33864SEmmanuel Vadot
336be33864SEmmanuel Vadot  gpio-controller: true
346be33864SEmmanuel Vadot
356be33864SEmmanuel Vadot  gpio-ranges:
366be33864SEmmanuel Vadot    maxItems: 1
376be33864SEmmanuel Vadot
386be33864SEmmanuel Vadot  '#gpio-cells':
396be33864SEmmanuel Vadot    description:
406be33864SEmmanuel Vadot      Specifies the pin number and flags, as defined in
416be33864SEmmanuel Vadot      include/dt-bindings/gpio/gpio.h
426be33864SEmmanuel Vadot    const: 2
436be33864SEmmanuel Vadot
446be33864SEmmanuel Vadot  interrupt-controller: true
456be33864SEmmanuel Vadot
466be33864SEmmanuel Vadot  '#interrupt-cells':
476be33864SEmmanuel Vadot    description:
486be33864SEmmanuel Vadot      Specifies the pin number and flags, as defined in
496be33864SEmmanuel Vadot      include/dt-bindings/interrupt-controller/irq.h
506be33864SEmmanuel Vadot    const: 2
516be33864SEmmanuel Vadot
526be33864SEmmanuel Vadot  interrupts:
536be33864SEmmanuel Vadot    description:
546be33864SEmmanuel Vadot      One interrupt per each of the 5 GPIO ports supported by the controller,
556be33864SEmmanuel Vadot      sorted by port number ascending order.
566be33864SEmmanuel Vadot    minItems: 5
576be33864SEmmanuel Vadot    maxItems: 5
586be33864SEmmanuel Vadot
596be33864SEmmanuel VadotpatternProperties:
606be33864SEmmanuel Vadot  '-pins$':
616be33864SEmmanuel Vadot    type: object
626be33864SEmmanuel Vadot    patternProperties:
636be33864SEmmanuel Vadot      '^(.*-)?pinmux$':
646be33864SEmmanuel Vadot        type: object
656be33864SEmmanuel Vadot        description:
666be33864SEmmanuel Vadot          Pinctrl node's client devices specify pin muxes using subnodes,
676be33864SEmmanuel Vadot          which in turn use the standard properties below.
686be33864SEmmanuel Vadot        $ref: pinmux-node.yaml#
696be33864SEmmanuel Vadot
706be33864SEmmanuel Vadot        properties:
716be33864SEmmanuel Vadot          groups:
726be33864SEmmanuel Vadot            description:
736be33864SEmmanuel Vadot              List of gpio pin groups affected by the functions specified in
746be33864SEmmanuel Vadot              this subnode.
756be33864SEmmanuel Vadot            items:
766be33864SEmmanuel Vadot              oneOf:
776be33864SEmmanuel Vadot                - enum: [lcd0_d18_mfp, rmii_crs_dv_mfp, rmii_txd0_mfp,
786be33864SEmmanuel Vadot                         rmii_txd1_mfp, rmii_txen_mfp, rmii_rxen_mfp, rmii_rxd1_mfp,
796be33864SEmmanuel Vadot                         rmii_rxd0_mfp, rmii_ref_clk_mfp, i2s_d0_mfp, i2s_pcm1_mfp,
806be33864SEmmanuel Vadot                         i2s0_pcm0_mfp, i2s1_pcm0_mfp, i2s_d1_mfp, ks_in2_mfp,
816be33864SEmmanuel Vadot                         ks_in1_mfp, ks_in0_mfp, ks_in3_mfp, ks_out0_mfp,
826be33864SEmmanuel Vadot                         ks_out1_mfp, ks_out2_mfp, lvds_o_pn_mfp, dsi_dn0_mfp,
836be33864SEmmanuel Vadot                         dsi_dp2_mfp, lcd0_d17_mfp, dsi_dp3_mfp, dsi_dn3_mfp,
846be33864SEmmanuel Vadot                         dsi_dp0_mfp, lvds_ee_pn_mfp, spi0_i2c_pcm_mfp,
856be33864SEmmanuel Vadot                         spi0_i2s_pcm_mfp, dsi_dnp1_cp_mfp, lvds_e_pn_mfp,
866be33864SEmmanuel Vadot                         dsi_dn2_mfp, uart2_rtsb_mfp, uart2_ctsb_mfp, uart3_rtsb_mfp,
876be33864SEmmanuel Vadot                         uart3_ctsb_mfp, sd0_d0_mfp, sd0_d1_mfp, sd0_d2_d3_mfp,
886be33864SEmmanuel Vadot                         sd1_d0_d3_mfp, sd0_cmd_mfp, sd0_clk_mfp, sd1_cmd_mfp,
896be33864SEmmanuel Vadot                         uart0_rx_mfp, clko_25m_mfp, csi_cn_cp_mfp, sens0_ckout_mfp,
906be33864SEmmanuel Vadot                         uart0_tx_mfp, i2c0_mfp, csi_dn_dp_mfp, sen0_pclk_mfp,
916be33864SEmmanuel Vadot                         pcm1_in_mfp, pcm1_clk_mfp, pcm1_sync_mfp, pcm1_out_mfp,
926be33864SEmmanuel Vadot                         dnand_data_wr_mfp, dnand_acle_ce0_mfp, nand_ceb2_mfp,
936be33864SEmmanuel Vadot                         nand_ceb3_mfp]
946be33864SEmmanuel Vadot            minItems: 1
956be33864SEmmanuel Vadot            maxItems: 32
966be33864SEmmanuel Vadot
976be33864SEmmanuel Vadot          function:
986be33864SEmmanuel Vadot            description:
996be33864SEmmanuel Vadot              Specify the alternative function to be configured for the
1006be33864SEmmanuel Vadot              given gpio pin groups.
1016be33864SEmmanuel Vadot            enum: [nor, eth_rmii, eth_smii, spi0, spi1, spi2, spi3, sens0,
1026be33864SEmmanuel Vadot                   sens1, uart0, uart1, uart2, uart3, uart4, uart5, uart6, i2s0,
1036be33864SEmmanuel Vadot                   i2s1, pcm1, pcm0, ks, jtag, pwm0, pwm1, pwm2, pwm3, pwm4, pwm5,
1046be33864SEmmanuel Vadot                   p0, sd0, sd1, sd2, i2c0, i2c1, i2c3, dsi, lvds, usb30, clko_25m,
1056be33864SEmmanuel Vadot                   mipi_csi, nand, spdif, ts, lcd0]
1066be33864SEmmanuel Vadot
1076be33864SEmmanuel Vadot        required:
1086be33864SEmmanuel Vadot          - groups
1096be33864SEmmanuel Vadot          - function
1106be33864SEmmanuel Vadot
1116be33864SEmmanuel Vadot        additionalProperties: false
1126be33864SEmmanuel Vadot
1136be33864SEmmanuel Vadot      '^(.*-)?pinconf$':
1146be33864SEmmanuel Vadot        type: object
1156be33864SEmmanuel Vadot        description:
1166be33864SEmmanuel Vadot          Pinctrl node's client devices specify pin configurations using
1176be33864SEmmanuel Vadot          subnodes, which in turn use the standard properties below.
1186be33864SEmmanuel Vadot        $ref: pincfg-node.yaml#
1196be33864SEmmanuel Vadot
1206be33864SEmmanuel Vadot        properties:
1216be33864SEmmanuel Vadot          groups:
1226be33864SEmmanuel Vadot            description:
1236be33864SEmmanuel Vadot              List of gpio pin groups affected by the drive-strength property
1246be33864SEmmanuel Vadot              specified in this subnode.
1256be33864SEmmanuel Vadot            items:
1266be33864SEmmanuel Vadot              oneOf:
1276be33864SEmmanuel Vadot                - enum: [sirq_drv, rmii_txd01_txen_drv, rmii_rxer_drv,
1286be33864SEmmanuel Vadot                         rmii_crs_drv, rmii_rxd10_drv, rmii_ref_clk_drv,
1296be33864SEmmanuel Vadot                         smi_mdc_mdio_drv, i2s_d0_drv, i2s_bclk0_drv, i2s3_drv,
1306be33864SEmmanuel Vadot                         i2s13_drv, pcm1_drv, ks_in_drv, ks_out_drv, lvds_all_drv,
1316be33864SEmmanuel Vadot                         lcd_dsi_drv, dsi_drv, sd0_d0_d3_drv, sd1_d0_d3_drv,
1326be33864SEmmanuel Vadot                         sd0_cmd_drv, sd0_clk_drv, sd1_cmd_drv, sd1_clk_drv,
1336be33864SEmmanuel Vadot                         spi0_all_drv, uart0_rx_drv, uart0_tx_drv, uart2_all_drv,
1346be33864SEmmanuel Vadot                         i2c0_all_drv, i2c12_all_drv, sens0_pclk_drv,
1356be33864SEmmanuel Vadot                         sens0_ckout_drv, uart3_all_drv]
1366be33864SEmmanuel Vadot            minItems: 1
1376be33864SEmmanuel Vadot            maxItems: 32
1386be33864SEmmanuel Vadot
1396be33864SEmmanuel Vadot          pins:
1406be33864SEmmanuel Vadot            description:
1416be33864SEmmanuel Vadot              List of gpio pins affected by the bias-pull-* and
1426be33864SEmmanuel Vadot              input-schmitt-* properties specified in this subnode.
1436be33864SEmmanuel Vadot            items:
1446be33864SEmmanuel Vadot              oneOf:
1456be33864SEmmanuel Vadot                - enum: [dnand_dqs, dnand_dqsn, eth_txd0, eth_txd1, eth_txen,
1466be33864SEmmanuel Vadot                         eth_rxer, eth_crs_dv, eth_rxd1, eth_rxd0, eth_ref_clk,
1476be33864SEmmanuel Vadot                         eth_mdc, eth_mdio, sirq0, sirq1, sirq2, i2s_d0, i2s_bclk0,
1486be33864SEmmanuel Vadot                         i2s_lrclk0, i2s_mclk0, i2s_d1, i2s_bclk1, i2s_lrclk1,
1496be33864SEmmanuel Vadot                         i2s_mclk1, ks_in0, ks_in1, ks_in2, ks_in3, ks_out0, ks_out1,
1506be33864SEmmanuel Vadot                         ks_out2, lvds_oep, lvds_oen, lvds_odp, lvds_odn, lvds_ocp,
1516be33864SEmmanuel Vadot                         lvds_ocn, lvds_obp, lvds_obn, lvds_oap, lvds_oan, lvds_eep,
1526be33864SEmmanuel Vadot                         lvds_een, lvds_edp, lvds_edn, lvds_ecp, lvds_ecn, lvds_ebp,
1536be33864SEmmanuel Vadot                         lvds_ebn, lvds_eap, lvds_ean, lcd0_d18, lcd0_d17, dsi_dp3,
1546be33864SEmmanuel Vadot                         dsi_dn3, dsi_dp1, dsi_dn1, dsi_cp, dsi_cn, dsi_dp0, dsi_dn0,
1556be33864SEmmanuel Vadot                         dsi_dp2, dsi_dn2, sd0_d0, sd0_d1, sd0_d2, sd0_d3, sd1_d0,
1566be33864SEmmanuel Vadot                         sd1_d1, sd1_d2, sd1_d3, sd0_cmd, sd0_clk, sd1_cmd, sd1_clk,
1576be33864SEmmanuel Vadot                         spi0_sclk, spi0_ss, spi0_miso, spi0_mosi, uart0_rx,
1586be33864SEmmanuel Vadot                         uart0_tx, i2c0_sclk, i2c0_sdata, sensor0_pclk,
1596be33864SEmmanuel Vadot                         sensor0_ckout, dnand_ale, dnand_cle, dnand_ceb0, dnand_ceb1,
1606be33864SEmmanuel Vadot                         dnand_ceb2, dnand_ceb3, uart2_rx, uart2_tx, uart2_rtsb,
1616be33864SEmmanuel Vadot                         uart2_ctsb, uart3_rx, uart3_tx, uart3_rtsb, uart3_ctsb,
1626be33864SEmmanuel Vadot                         pcm1_in, pcm1_clk, pcm1_sync, pcm1_out, i2c1_sclk,
1636be33864SEmmanuel Vadot                         i2c1_sdata, i2c2_sclk, i2c2_sdata, csi_dn0, csi_dp0,
1646be33864SEmmanuel Vadot                         csi_dn1, csi_dp1, csi_dn2, csi_dp2, csi_dn3, csi_dp3,
1656be33864SEmmanuel Vadot                         csi_cn, csi_cp, dnand_d0, dnand_d1, dnand_d2, dnand_d3,
1666be33864SEmmanuel Vadot                         dnand_d4, dnand_d5, dnand_d6, dnand_d7, dnand_rb, dnand_rdb,
1676be33864SEmmanuel Vadot                         dnand_rdbn, dnand_wrb, porb, clko_25m, bsel, pkg0, pkg1,
1686be33864SEmmanuel Vadot                         pkg2, pkg3]
1696be33864SEmmanuel Vadot            minItems: 1
1706be33864SEmmanuel Vadot            maxItems: 64
1716be33864SEmmanuel Vadot
1726be33864SEmmanuel Vadot          bias-pull-up: true
1736be33864SEmmanuel Vadot          bias-pull-down: true
1746be33864SEmmanuel Vadot
1756be33864SEmmanuel Vadot          drive-strength:
1766be33864SEmmanuel Vadot            description:
1776be33864SEmmanuel Vadot              Selects the drive strength for the specified pins, in mA.
1786be33864SEmmanuel Vadot            enum: [2, 4, 8, 12]
1796be33864SEmmanuel Vadot
1806be33864SEmmanuel Vadot          input-schmitt-enable: true
1816be33864SEmmanuel Vadot          input-schmitt-disable: true
1826be33864SEmmanuel Vadot
1836be33864SEmmanuel Vadot        additionalProperties: false
1846be33864SEmmanuel Vadot
1856be33864SEmmanuel Vadot    additionalProperties: false
1866be33864SEmmanuel Vadot
187e67e8565SEmmanuel VadotallOf:
188*fac71e4eSEmmanuel Vadot  - $ref: pinctrl.yaml#
189e67e8565SEmmanuel Vadot
1906be33864SEmmanuel Vadotrequired:
1916be33864SEmmanuel Vadot  - compatible
1926be33864SEmmanuel Vadot  - reg
1936be33864SEmmanuel Vadot  - clocks
1946be33864SEmmanuel Vadot  - gpio-controller
1956be33864SEmmanuel Vadot  - gpio-ranges
1966be33864SEmmanuel Vadot  - '#gpio-cells'
1976be33864SEmmanuel Vadot  - interrupt-controller
1986be33864SEmmanuel Vadot  - '#interrupt-cells'
1996be33864SEmmanuel Vadot  - interrupts
2006be33864SEmmanuel Vadot
2016be33864SEmmanuel VadotadditionalProperties: false
2026be33864SEmmanuel Vadot
2036be33864SEmmanuel Vadotexamples:
2046be33864SEmmanuel Vadot  - |
2056be33864SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
2066be33864SEmmanuel Vadot    pinctrl: pinctrl@b01b0000 {
2076be33864SEmmanuel Vadot        compatible = "actions,s500-pinctrl";
2086be33864SEmmanuel Vadot        reg = <0xb01b0000 0x40>, <0xb01b0040 0x10>,
2096be33864SEmmanuel Vadot              <0xb01b0060 0x18>, <0xb01b0080 0xc>;
2106be33864SEmmanuel Vadot        clocks = <&cmu 55>;
2116be33864SEmmanuel Vadot        gpio-controller;
2126be33864SEmmanuel Vadot        gpio-ranges = <&pinctrl 0 0 132>;
2136be33864SEmmanuel Vadot        #gpio-cells = <2>;
2146be33864SEmmanuel Vadot        interrupt-controller;
2156be33864SEmmanuel Vadot        #interrupt-cells = <2>;
2166be33864SEmmanuel Vadot        interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
2176be33864SEmmanuel Vadot                     <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
2186be33864SEmmanuel Vadot                     <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
2196be33864SEmmanuel Vadot                     <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
2206be33864SEmmanuel Vadot                     <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
2216be33864SEmmanuel Vadot
2226be33864SEmmanuel Vadot        mmc0_pins: mmc0-pins {
2236be33864SEmmanuel Vadot            pinmux {
2246be33864SEmmanuel Vadot                groups = "sd0_d0_mfp", "sd0_d1_mfp", "sd0_d2_d3_mfp",
2256be33864SEmmanuel Vadot                         "sd0_cmd_mfp", "sd0_clk_mfp";
2266be33864SEmmanuel Vadot                function = "sd0";
2276be33864SEmmanuel Vadot            };
2286be33864SEmmanuel Vadot
2296be33864SEmmanuel Vadot            drv-pinconf {
2306be33864SEmmanuel Vadot                groups = "sd0_d0_d3_drv", "sd0_cmd_drv", "sd0_clk_drv";
2316be33864SEmmanuel Vadot                drive-strength = <8>;
2326be33864SEmmanuel Vadot            };
2336be33864SEmmanuel Vadot
2346be33864SEmmanuel Vadot            bias-pinconf {
2356be33864SEmmanuel Vadot                pins = "sd0_d0", "sd0_d1", "sd0_d2",
2366be33864SEmmanuel Vadot                       "sd0_d3", "sd0_cmd";
2376be33864SEmmanuel Vadot                bias-pull-up;
2386be33864SEmmanuel Vadot            };
2396be33864SEmmanuel Vadot        };
2406be33864SEmmanuel Vadot    };
2416be33864SEmmanuel Vadot
2426be33864SEmmanuel Vadot...
243