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