xref: /linux/Documentation/devicetree/bindings/pinctrl/actions,s500-pinctrl.yaml (revision 49cd1dd15f74d73d4752b2c4f23f99b0753d2b3d)
1aebebcf9SCristian Ciocaltea# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2aebebcf9SCristian Ciocaltea%YAML 1.2
3aebebcf9SCristian Ciocaltea---
4aebebcf9SCristian Ciocaltea$id: http://devicetree.org/schemas/pinctrl/actions,s500-pinctrl.yaml#
5aebebcf9SCristian Ciocaltea$schema: http://devicetree.org/meta-schemas/core.yaml#
6aebebcf9SCristian Ciocaltea
7aebebcf9SCristian Ciocalteatitle: Actions Semi S500 SoC pinmux & GPIO controller
8aebebcf9SCristian Ciocaltea
9aebebcf9SCristian Ciocalteamaintainers:
10aebebcf9SCristian Ciocaltea  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
11aebebcf9SCristian Ciocaltea  - Cristian Ciocaltea <cristian.ciocaltea@gmail.com>
12aebebcf9SCristian Ciocaltea
13aebebcf9SCristian Ciocalteadescription: |
14aebebcf9SCristian Ciocaltea  Pinmux & GPIO controller manages pin multiplexing & configuration including
15aebebcf9SCristian Ciocaltea  GPIO function selection & GPIO attributes configuration. Please refer to
16aebebcf9SCristian Ciocaltea  pinctrl-bindings.txt in this directory for common binding part and usage.
17aebebcf9SCristian Ciocaltea
18aebebcf9SCristian Ciocalteaproperties:
19aebebcf9SCristian Ciocaltea  compatible:
20aebebcf9SCristian Ciocaltea    const: actions,s500-pinctrl
21aebebcf9SCristian Ciocaltea
22aebebcf9SCristian Ciocaltea  reg:
23aebebcf9SCristian Ciocaltea    items:
24aebebcf9SCristian Ciocaltea      - description: GPIO Output + GPIO Input + GPIO Data
25aebebcf9SCristian Ciocaltea      - description: Multiplexing Control
26aebebcf9SCristian Ciocaltea      - description: PAD Pull Control + PAD Schmitt Trigger Enable + PAD Control
27aebebcf9SCristian Ciocaltea      - description: PAD Drive Capacity Select
28aebebcf9SCristian Ciocaltea    minItems: 1
29aebebcf9SCristian Ciocaltea
30aebebcf9SCristian Ciocaltea  clocks:
31aebebcf9SCristian Ciocaltea    maxItems: 1
32aebebcf9SCristian Ciocaltea
33aebebcf9SCristian Ciocaltea  gpio-controller: true
34aebebcf9SCristian Ciocaltea
35aebebcf9SCristian Ciocaltea  gpio-ranges:
36aebebcf9SCristian Ciocaltea    maxItems: 1
37aebebcf9SCristian Ciocaltea
38aebebcf9SCristian Ciocaltea  '#gpio-cells':
39aebebcf9SCristian Ciocaltea    description:
40aebebcf9SCristian Ciocaltea      Specifies the pin number and flags, as defined in
41aebebcf9SCristian Ciocaltea      include/dt-bindings/gpio/gpio.h
42aebebcf9SCristian Ciocaltea    const: 2
43aebebcf9SCristian Ciocaltea
44aebebcf9SCristian Ciocaltea  interrupt-controller: true
45aebebcf9SCristian Ciocaltea
46aebebcf9SCristian Ciocaltea  '#interrupt-cells':
47aebebcf9SCristian Ciocaltea    description:
48aebebcf9SCristian Ciocaltea      Specifies the pin number and flags, as defined in
49aebebcf9SCristian Ciocaltea      include/dt-bindings/interrupt-controller/irq.h
50aebebcf9SCristian Ciocaltea    const: 2
51aebebcf9SCristian Ciocaltea
52aebebcf9SCristian Ciocaltea  interrupts:
53aebebcf9SCristian Ciocaltea    description:
54aebebcf9SCristian Ciocaltea      One interrupt per each of the 5 GPIO ports supported by the controller,
55aebebcf9SCristian Ciocaltea      sorted by port number ascending order.
56aebebcf9SCristian Ciocaltea    minItems: 5
57aebebcf9SCristian Ciocaltea    maxItems: 5
58aebebcf9SCristian Ciocaltea
59aebebcf9SCristian CiocalteapatternProperties:
60aebebcf9SCristian Ciocaltea  '-pins$':
61aebebcf9SCristian Ciocaltea    type: object
62aebebcf9SCristian Ciocaltea    patternProperties:
63aebebcf9SCristian Ciocaltea      '^(.*-)?pinmux$':
64aebebcf9SCristian Ciocaltea        type: object
65aebebcf9SCristian Ciocaltea        description:
66aebebcf9SCristian Ciocaltea          Pinctrl node's client devices specify pin muxes using subnodes,
67aebebcf9SCristian Ciocaltea          which in turn use the standard properties below.
68aebebcf9SCristian Ciocaltea        $ref: pinmux-node.yaml#
69aebebcf9SCristian Ciocaltea
70aebebcf9SCristian Ciocaltea        properties:
71aebebcf9SCristian Ciocaltea          groups:
72aebebcf9SCristian Ciocaltea            description:
73aebebcf9SCristian Ciocaltea              List of gpio pin groups affected by the functions specified in
74aebebcf9SCristian Ciocaltea              this subnode.
75aebebcf9SCristian Ciocaltea            items:
76aebebcf9SCristian Ciocaltea              oneOf:
77aebebcf9SCristian Ciocaltea                - enum: [lcd0_d18_mfp, rmii_crs_dv_mfp, rmii_txd0_mfp,
78aebebcf9SCristian Ciocaltea                         rmii_txd1_mfp, rmii_txen_mfp, rmii_rxen_mfp, rmii_rxd1_mfp,
79aebebcf9SCristian Ciocaltea                         rmii_rxd0_mfp, rmii_ref_clk_mfp, i2s_d0_mfp, i2s_pcm1_mfp,
80aebebcf9SCristian Ciocaltea                         i2s0_pcm0_mfp, i2s1_pcm0_mfp, i2s_d1_mfp, ks_in2_mfp,
81aebebcf9SCristian Ciocaltea                         ks_in1_mfp, ks_in0_mfp, ks_in3_mfp, ks_out0_mfp,
82aebebcf9SCristian Ciocaltea                         ks_out1_mfp, ks_out2_mfp, lvds_o_pn_mfp, dsi_dn0_mfp,
83aebebcf9SCristian Ciocaltea                         dsi_dp2_mfp, lcd0_d17_mfp, dsi_dp3_mfp, dsi_dn3_mfp,
84aebebcf9SCristian Ciocaltea                         dsi_dp0_mfp, lvds_ee_pn_mfp, spi0_i2c_pcm_mfp,
85aebebcf9SCristian Ciocaltea                         spi0_i2s_pcm_mfp, dsi_dnp1_cp_mfp, lvds_e_pn_mfp,
86aebebcf9SCristian Ciocaltea                         dsi_dn2_mfp, uart2_rtsb_mfp, uart2_ctsb_mfp, uart3_rtsb_mfp,
87aebebcf9SCristian Ciocaltea                         uart3_ctsb_mfp, sd0_d0_mfp, sd0_d1_mfp, sd0_d2_d3_mfp,
88aebebcf9SCristian Ciocaltea                         sd1_d0_d3_mfp, sd0_cmd_mfp, sd0_clk_mfp, sd1_cmd_mfp,
89aebebcf9SCristian Ciocaltea                         uart0_rx_mfp, clko_25m_mfp, csi_cn_cp_mfp, sens0_ckout_mfp,
90aebebcf9SCristian Ciocaltea                         uart0_tx_mfp, i2c0_mfp, csi_dn_dp_mfp, sen0_pclk_mfp,
91aebebcf9SCristian Ciocaltea                         pcm1_in_mfp, pcm1_clk_mfp, pcm1_sync_mfp, pcm1_out_mfp,
92aebebcf9SCristian Ciocaltea                         dnand_data_wr_mfp, dnand_acle_ce0_mfp, nand_ceb2_mfp,
93aebebcf9SCristian Ciocaltea                         nand_ceb3_mfp]
94aebebcf9SCristian Ciocaltea            minItems: 1
95aebebcf9SCristian Ciocaltea            maxItems: 32
96aebebcf9SCristian Ciocaltea
97aebebcf9SCristian Ciocaltea          function:
98aebebcf9SCristian Ciocaltea            description:
99aebebcf9SCristian Ciocaltea              Specify the alternative function to be configured for the
100aebebcf9SCristian Ciocaltea              given gpio pin groups.
101aebebcf9SCristian Ciocaltea            enum: [nor, eth_rmii, eth_smii, spi0, spi1, spi2, spi3, sens0,
102aebebcf9SCristian Ciocaltea                   sens1, uart0, uart1, uart2, uart3, uart4, uart5, uart6, i2s0,
103aebebcf9SCristian Ciocaltea                   i2s1, pcm1, pcm0, ks, jtag, pwm0, pwm1, pwm2, pwm3, pwm4, pwm5,
104aebebcf9SCristian Ciocaltea                   p0, sd0, sd1, sd2, i2c0, i2c1, i2c3, dsi, lvds, usb30, clko_25m,
105aebebcf9SCristian Ciocaltea                   mipi_csi, nand, spdif, ts, lcd0]
106aebebcf9SCristian Ciocaltea
107aebebcf9SCristian Ciocaltea        required:
108aebebcf9SCristian Ciocaltea          - groups
109aebebcf9SCristian Ciocaltea          - function
110aebebcf9SCristian Ciocaltea
111aebebcf9SCristian Ciocaltea        additionalProperties: false
112aebebcf9SCristian Ciocaltea
113aebebcf9SCristian Ciocaltea      '^(.*-)?pinconf$':
114aebebcf9SCristian Ciocaltea        type: object
115aebebcf9SCristian Ciocaltea        description:
116aebebcf9SCristian Ciocaltea          Pinctrl node's client devices specify pin configurations using
117aebebcf9SCristian Ciocaltea          subnodes, which in turn use the standard properties below.
118aebebcf9SCristian Ciocaltea        $ref: pincfg-node.yaml#
119aebebcf9SCristian Ciocaltea
120aebebcf9SCristian Ciocaltea        properties:
121aebebcf9SCristian Ciocaltea          groups:
122aebebcf9SCristian Ciocaltea            description:
123aebebcf9SCristian Ciocaltea              List of gpio pin groups affected by the drive-strength property
124aebebcf9SCristian Ciocaltea              specified in this subnode.
125aebebcf9SCristian Ciocaltea            items:
126aebebcf9SCristian Ciocaltea              oneOf:
127aebebcf9SCristian Ciocaltea                - enum: [sirq_drv, rmii_txd01_txen_drv, rmii_rxer_drv,
128aebebcf9SCristian Ciocaltea                         rmii_crs_drv, rmii_rxd10_drv, rmii_ref_clk_drv,
129aebebcf9SCristian Ciocaltea                         smi_mdc_mdio_drv, i2s_d0_drv, i2s_bclk0_drv, i2s3_drv,
130aebebcf9SCristian Ciocaltea                         i2s13_drv, pcm1_drv, ks_in_drv, ks_out_drv, lvds_all_drv,
131aebebcf9SCristian Ciocaltea                         lcd_dsi_drv, dsi_drv, sd0_d0_d3_drv, sd1_d0_d3_drv,
132aebebcf9SCristian Ciocaltea                         sd0_cmd_drv, sd0_clk_drv, sd1_cmd_drv, sd1_clk_drv,
133aebebcf9SCristian Ciocaltea                         spi0_all_drv, uart0_rx_drv, uart0_tx_drv, uart2_all_drv,
134aebebcf9SCristian Ciocaltea                         i2c0_all_drv, i2c12_all_drv, sens0_pclk_drv,
135aebebcf9SCristian Ciocaltea                         sens0_ckout_drv, uart3_all_drv]
136aebebcf9SCristian Ciocaltea            minItems: 1
137aebebcf9SCristian Ciocaltea            maxItems: 32
138aebebcf9SCristian Ciocaltea
139aebebcf9SCristian Ciocaltea          pins:
140aebebcf9SCristian Ciocaltea            description:
141aebebcf9SCristian Ciocaltea              List of gpio pins affected by the bias-pull-* and
142aebebcf9SCristian Ciocaltea              input-schmitt-* properties specified in this subnode.
143aebebcf9SCristian Ciocaltea            items:
144aebebcf9SCristian Ciocaltea              oneOf:
145aebebcf9SCristian Ciocaltea                - enum: [dnand_dqs, dnand_dqsn, eth_txd0, eth_txd1, eth_txen,
146aebebcf9SCristian Ciocaltea                         eth_rxer, eth_crs_dv, eth_rxd1, eth_rxd0, eth_ref_clk,
147aebebcf9SCristian Ciocaltea                         eth_mdc, eth_mdio, sirq0, sirq1, sirq2, i2s_d0, i2s_bclk0,
148aebebcf9SCristian Ciocaltea                         i2s_lrclk0, i2s_mclk0, i2s_d1, i2s_bclk1, i2s_lrclk1,
149aebebcf9SCristian Ciocaltea                         i2s_mclk1, ks_in0, ks_in1, ks_in2, ks_in3, ks_out0, ks_out1,
150aebebcf9SCristian Ciocaltea                         ks_out2, lvds_oep, lvds_oen, lvds_odp, lvds_odn, lvds_ocp,
151aebebcf9SCristian Ciocaltea                         lvds_ocn, lvds_obp, lvds_obn, lvds_oap, lvds_oan, lvds_eep,
152aebebcf9SCristian Ciocaltea                         lvds_een, lvds_edp, lvds_edn, lvds_ecp, lvds_ecn, lvds_ebp,
153aebebcf9SCristian Ciocaltea                         lvds_ebn, lvds_eap, lvds_ean, lcd0_d18, lcd0_d17, dsi_dp3,
154aebebcf9SCristian Ciocaltea                         dsi_dn3, dsi_dp1, dsi_dn1, dsi_cp, dsi_cn, dsi_dp0, dsi_dn0,
155aebebcf9SCristian Ciocaltea                         dsi_dp2, dsi_dn2, sd0_d0, sd0_d1, sd0_d2, sd0_d3, sd1_d0,
156aebebcf9SCristian Ciocaltea                         sd1_d1, sd1_d2, sd1_d3, sd0_cmd, sd0_clk, sd1_cmd, sd1_clk,
157aebebcf9SCristian Ciocaltea                         spi0_sclk, spi0_ss, spi0_miso, spi0_mosi, uart0_rx,
158aebebcf9SCristian Ciocaltea                         uart0_tx, i2c0_sclk, i2c0_sdata, sensor0_pclk,
159aebebcf9SCristian Ciocaltea                         sensor0_ckout, dnand_ale, dnand_cle, dnand_ceb0, dnand_ceb1,
160aebebcf9SCristian Ciocaltea                         dnand_ceb2, dnand_ceb3, uart2_rx, uart2_tx, uart2_rtsb,
161aebebcf9SCristian Ciocaltea                         uart2_ctsb, uart3_rx, uart3_tx, uart3_rtsb, uart3_ctsb,
162aebebcf9SCristian Ciocaltea                         pcm1_in, pcm1_clk, pcm1_sync, pcm1_out, i2c1_sclk,
163aebebcf9SCristian Ciocaltea                         i2c1_sdata, i2c2_sclk, i2c2_sdata, csi_dn0, csi_dp0,
164aebebcf9SCristian Ciocaltea                         csi_dn1, csi_dp1, csi_dn2, csi_dp2, csi_dn3, csi_dp3,
165aebebcf9SCristian Ciocaltea                         csi_cn, csi_cp, dnand_d0, dnand_d1, dnand_d2, dnand_d3,
166aebebcf9SCristian Ciocaltea                         dnand_d4, dnand_d5, dnand_d6, dnand_d7, dnand_rb, dnand_rdb,
167aebebcf9SCristian Ciocaltea                         dnand_rdbn, dnand_wrb, porb, clko_25m, bsel, pkg0, pkg1,
168aebebcf9SCristian Ciocaltea                         pkg2, pkg3]
169aebebcf9SCristian Ciocaltea            minItems: 1
170aebebcf9SCristian Ciocaltea            maxItems: 64
171aebebcf9SCristian Ciocaltea
172aebebcf9SCristian Ciocaltea          bias-pull-up: true
173aebebcf9SCristian Ciocaltea          bias-pull-down: true
174aebebcf9SCristian Ciocaltea
175aebebcf9SCristian Ciocaltea          drive-strength:
176aebebcf9SCristian Ciocaltea            description:
177aebebcf9SCristian Ciocaltea              Selects the drive strength for the specified pins, in mA.
178aebebcf9SCristian Ciocaltea            enum: [2, 4, 8, 12]
179aebebcf9SCristian Ciocaltea
180aebebcf9SCristian Ciocaltea          input-schmitt-enable: true
181aebebcf9SCristian Ciocaltea          input-schmitt-disable: true
182aebebcf9SCristian Ciocaltea
183aebebcf9SCristian Ciocaltea        additionalProperties: false
184aebebcf9SCristian Ciocaltea
185aebebcf9SCristian Ciocaltea    additionalProperties: false
186aebebcf9SCristian Ciocaltea
187c09acbc4SRafał MiłeckiallOf:
188*49cd1dd1SRob Herring  - $ref: pinctrl.yaml#
189c09acbc4SRafał Miłecki
190aebebcf9SCristian Ciocaltearequired:
191aebebcf9SCristian Ciocaltea  - compatible
192aebebcf9SCristian Ciocaltea  - reg
193aebebcf9SCristian Ciocaltea  - clocks
194aebebcf9SCristian Ciocaltea  - gpio-controller
195aebebcf9SCristian Ciocaltea  - gpio-ranges
196aebebcf9SCristian Ciocaltea  - '#gpio-cells'
197aebebcf9SCristian Ciocaltea  - interrupt-controller
198aebebcf9SCristian Ciocaltea  - '#interrupt-cells'
199aebebcf9SCristian Ciocaltea  - interrupts
200aebebcf9SCristian Ciocaltea
201aebebcf9SCristian CiocalteaadditionalProperties: false
202aebebcf9SCristian Ciocaltea
203aebebcf9SCristian Ciocalteaexamples:
204aebebcf9SCristian Ciocaltea  - |
205aebebcf9SCristian Ciocaltea    #include <dt-bindings/interrupt-controller/arm-gic.h>
206aebebcf9SCristian Ciocaltea    pinctrl: pinctrl@b01b0000 {
207aebebcf9SCristian Ciocaltea        compatible = "actions,s500-pinctrl";
208aebebcf9SCristian Ciocaltea        reg = <0xb01b0000 0x40>, <0xb01b0040 0x10>,
209aebebcf9SCristian Ciocaltea              <0xb01b0060 0x18>, <0xb01b0080 0xc>;
210aebebcf9SCristian Ciocaltea        clocks = <&cmu 55>;
211aebebcf9SCristian Ciocaltea        gpio-controller;
212aebebcf9SCristian Ciocaltea        gpio-ranges = <&pinctrl 0 0 132>;
213aebebcf9SCristian Ciocaltea        #gpio-cells = <2>;
214aebebcf9SCristian Ciocaltea        interrupt-controller;
215aebebcf9SCristian Ciocaltea        #interrupt-cells = <2>;
216aebebcf9SCristian Ciocaltea        interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
217aebebcf9SCristian Ciocaltea                     <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
218aebebcf9SCristian Ciocaltea                     <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
219aebebcf9SCristian Ciocaltea                     <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
220aebebcf9SCristian Ciocaltea                     <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
221aebebcf9SCristian Ciocaltea
222aebebcf9SCristian Ciocaltea        mmc0_pins: mmc0-pins {
223aebebcf9SCristian Ciocaltea            pinmux {
224aebebcf9SCristian Ciocaltea                groups = "sd0_d0_mfp", "sd0_d1_mfp", "sd0_d2_d3_mfp",
225aebebcf9SCristian Ciocaltea                         "sd0_cmd_mfp", "sd0_clk_mfp";
226aebebcf9SCristian Ciocaltea                function = "sd0";
227aebebcf9SCristian Ciocaltea            };
228aebebcf9SCristian Ciocaltea
229aebebcf9SCristian Ciocaltea            drv-pinconf {
230aebebcf9SCristian Ciocaltea                groups = "sd0_d0_d3_drv", "sd0_cmd_drv", "sd0_clk_drv";
231aebebcf9SCristian Ciocaltea                drive-strength = <8>;
232aebebcf9SCristian Ciocaltea            };
233aebebcf9SCristian Ciocaltea
234aebebcf9SCristian Ciocaltea            bias-pinconf {
235aebebcf9SCristian Ciocaltea                pins = "sd0_d0", "sd0_d1", "sd0_d2",
236aebebcf9SCristian Ciocaltea                       "sd0_d3", "sd0_cmd";
237aebebcf9SCristian Ciocaltea                bias-pull-up;
238aebebcf9SCristian Ciocaltea            };
239aebebcf9SCristian Ciocaltea        };
240aebebcf9SCristian Ciocaltea    };
241aebebcf9SCristian Ciocaltea
242aebebcf9SCristian Ciocaltea...
243