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