18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/pinctrl/actions,s500-pinctrl.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Actions Semi S500 SoC pinmux & GPIO controller 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimaintainers: 108c2ecf20Sopenharmony_ci - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 118c2ecf20Sopenharmony_ci - Cristian Ciocaltea <cristian.ciocaltea@gmail.com> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_cidescription: | 148c2ecf20Sopenharmony_ci Pinmux & GPIO controller manages pin multiplexing & configuration including 158c2ecf20Sopenharmony_ci GPIO function selection & GPIO attributes configuration. Please refer to 168c2ecf20Sopenharmony_ci pinctrl-bindings.txt in this directory for common binding part and usage. 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ciproperties: 198c2ecf20Sopenharmony_ci compatible: 208c2ecf20Sopenharmony_ci const: actions,s500-pinctrl 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci reg: 238c2ecf20Sopenharmony_ci items: 248c2ecf20Sopenharmony_ci - description: GPIO Output + GPIO Input + GPIO Data 258c2ecf20Sopenharmony_ci - description: Multiplexing Control 268c2ecf20Sopenharmony_ci - description: PAD Pull Control + PAD Schmitt Trigger Enable + PAD Control 278c2ecf20Sopenharmony_ci - description: PAD Drive Capacity Select 288c2ecf20Sopenharmony_ci minItems: 1 298c2ecf20Sopenharmony_ci maxItems: 4 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci clocks: 328c2ecf20Sopenharmony_ci maxItems: 1 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci gpio-controller: true 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci gpio-ranges: 378c2ecf20Sopenharmony_ci maxItems: 1 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci '#gpio-cells': 408c2ecf20Sopenharmony_ci description: 418c2ecf20Sopenharmony_ci Specifies the pin number and flags, as defined in 428c2ecf20Sopenharmony_ci include/dt-bindings/gpio/gpio.h 438c2ecf20Sopenharmony_ci const: 2 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci interrupt-controller: true 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci '#interrupt-cells': 488c2ecf20Sopenharmony_ci description: 498c2ecf20Sopenharmony_ci Specifies the pin number and flags, as defined in 508c2ecf20Sopenharmony_ci include/dt-bindings/interrupt-controller/irq.h 518c2ecf20Sopenharmony_ci const: 2 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci interrupts: 548c2ecf20Sopenharmony_ci description: 558c2ecf20Sopenharmony_ci One interrupt per each of the 5 GPIO ports supported by the controller, 568c2ecf20Sopenharmony_ci sorted by port number ascending order. 578c2ecf20Sopenharmony_ci minItems: 5 588c2ecf20Sopenharmony_ci maxItems: 5 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_cipatternProperties: 618c2ecf20Sopenharmony_ci '-pins$': 628c2ecf20Sopenharmony_ci type: object 638c2ecf20Sopenharmony_ci patternProperties: 648c2ecf20Sopenharmony_ci '^(.*-)?pinmux$': 658c2ecf20Sopenharmony_ci type: object 668c2ecf20Sopenharmony_ci description: 678c2ecf20Sopenharmony_ci Pinctrl node's client devices specify pin muxes using subnodes, 688c2ecf20Sopenharmony_ci which in turn use the standard properties below. 698c2ecf20Sopenharmony_ci $ref: pinmux-node.yaml# 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci properties: 728c2ecf20Sopenharmony_ci groups: 738c2ecf20Sopenharmony_ci description: 748c2ecf20Sopenharmony_ci List of gpio pin groups affected by the functions specified in 758c2ecf20Sopenharmony_ci this subnode. 768c2ecf20Sopenharmony_ci items: 778c2ecf20Sopenharmony_ci oneOf: 788c2ecf20Sopenharmony_ci - enum: [lcd0_d18_mfp, rmii_crs_dv_mfp, rmii_txd0_mfp, 798c2ecf20Sopenharmony_ci rmii_txd1_mfp, rmii_txen_mfp, rmii_rxen_mfp, rmii_rxd1_mfp, 808c2ecf20Sopenharmony_ci rmii_rxd0_mfp, rmii_ref_clk_mfp, i2s_d0_mfp, i2s_pcm1_mfp, 818c2ecf20Sopenharmony_ci i2s0_pcm0_mfp, i2s1_pcm0_mfp, i2s_d1_mfp, ks_in2_mfp, 828c2ecf20Sopenharmony_ci ks_in1_mfp, ks_in0_mfp, ks_in3_mfp, ks_out0_mfp, 838c2ecf20Sopenharmony_ci ks_out1_mfp, ks_out2_mfp, lvds_o_pn_mfp, dsi_dn0_mfp, 848c2ecf20Sopenharmony_ci dsi_dp2_mfp, lcd0_d17_mfp, dsi_dp3_mfp, dsi_dn3_mfp, 858c2ecf20Sopenharmony_ci dsi_dp0_mfp, lvds_ee_pn_mfp, spi0_i2c_pcm_mfp, 868c2ecf20Sopenharmony_ci spi0_i2s_pcm_mfp, dsi_dnp1_cp_mfp, lvds_e_pn_mfp, 878c2ecf20Sopenharmony_ci dsi_dn2_mfp, uart2_rtsb_mfp, uart2_ctsb_mfp, uart3_rtsb_mfp, 888c2ecf20Sopenharmony_ci uart3_ctsb_mfp, sd0_d0_mfp, sd0_d1_mfp, sd0_d2_d3_mfp, 898c2ecf20Sopenharmony_ci sd1_d0_d3_mfp, sd0_cmd_mfp, sd0_clk_mfp, sd1_cmd_mfp, 908c2ecf20Sopenharmony_ci uart0_rx_mfp, clko_25m_mfp, csi_cn_cp_mfp, sens0_ckout_mfp, 918c2ecf20Sopenharmony_ci uart0_tx_mfp, i2c0_mfp, csi_dn_dp_mfp, sen0_pclk_mfp, 928c2ecf20Sopenharmony_ci pcm1_in_mfp, pcm1_clk_mfp, pcm1_sync_mfp, pcm1_out_mfp, 938c2ecf20Sopenharmony_ci dnand_data_wr_mfp, dnand_acle_ce0_mfp, nand_ceb2_mfp, 948c2ecf20Sopenharmony_ci nand_ceb3_mfp] 958c2ecf20Sopenharmony_ci minItems: 1 968c2ecf20Sopenharmony_ci maxItems: 32 978c2ecf20Sopenharmony_ci 988c2ecf20Sopenharmony_ci function: 998c2ecf20Sopenharmony_ci description: 1008c2ecf20Sopenharmony_ci Specify the alternative function to be configured for the 1018c2ecf20Sopenharmony_ci given gpio pin groups. 1028c2ecf20Sopenharmony_ci enum: [nor, eth_rmii, eth_smii, spi0, spi1, spi2, spi3, sens0, 1038c2ecf20Sopenharmony_ci sens1, uart0, uart1, uart2, uart3, uart4, uart5, uart6, i2s0, 1048c2ecf20Sopenharmony_ci i2s1, pcm1, pcm0, ks, jtag, pwm0, pwm1, pwm2, pwm3, pwm4, pwm5, 1058c2ecf20Sopenharmony_ci p0, sd0, sd1, sd2, i2c0, i2c1, i2c3, dsi, lvds, usb30, clko_25m, 1068c2ecf20Sopenharmony_ci mipi_csi, nand, spdif, ts, lcd0] 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ci required: 1098c2ecf20Sopenharmony_ci - groups 1108c2ecf20Sopenharmony_ci - function 1118c2ecf20Sopenharmony_ci 1128c2ecf20Sopenharmony_ci additionalProperties: false 1138c2ecf20Sopenharmony_ci 1148c2ecf20Sopenharmony_ci '^(.*-)?pinconf$': 1158c2ecf20Sopenharmony_ci type: object 1168c2ecf20Sopenharmony_ci description: 1178c2ecf20Sopenharmony_ci Pinctrl node's client devices specify pin configurations using 1188c2ecf20Sopenharmony_ci subnodes, which in turn use the standard properties below. 1198c2ecf20Sopenharmony_ci $ref: pincfg-node.yaml# 1208c2ecf20Sopenharmony_ci 1218c2ecf20Sopenharmony_ci properties: 1228c2ecf20Sopenharmony_ci groups: 1238c2ecf20Sopenharmony_ci description: 1248c2ecf20Sopenharmony_ci List of gpio pin groups affected by the drive-strength property 1258c2ecf20Sopenharmony_ci specified in this subnode. 1268c2ecf20Sopenharmony_ci items: 1278c2ecf20Sopenharmony_ci oneOf: 1288c2ecf20Sopenharmony_ci - enum: [sirq_drv, rmii_txd01_txen_drv, rmii_rxer_drv, 1298c2ecf20Sopenharmony_ci rmii_crs_drv, rmii_rxd10_drv, rmii_ref_clk_drv, 1308c2ecf20Sopenharmony_ci smi_mdc_mdio_drv, i2s_d0_drv, i2s_bclk0_drv, i2s3_drv, 1318c2ecf20Sopenharmony_ci i2s13_drv, pcm1_drv, ks_in_drv, ks_out_drv, lvds_all_drv, 1328c2ecf20Sopenharmony_ci lcd_dsi_drv, dsi_drv, sd0_d0_d3_drv, sd1_d0_d3_drv, 1338c2ecf20Sopenharmony_ci sd0_cmd_drv, sd0_clk_drv, sd1_cmd_drv, sd1_clk_drv, 1348c2ecf20Sopenharmony_ci spi0_all_drv, uart0_rx_drv, uart0_tx_drv, uart2_all_drv, 1358c2ecf20Sopenharmony_ci i2c0_all_drv, i2c12_all_drv, sens0_pclk_drv, 1368c2ecf20Sopenharmony_ci sens0_ckout_drv, uart3_all_drv] 1378c2ecf20Sopenharmony_ci minItems: 1 1388c2ecf20Sopenharmony_ci maxItems: 32 1398c2ecf20Sopenharmony_ci 1408c2ecf20Sopenharmony_ci pins: 1418c2ecf20Sopenharmony_ci description: 1428c2ecf20Sopenharmony_ci List of gpio pins affected by the bias-pull-* and 1438c2ecf20Sopenharmony_ci input-schmitt-* properties specified in this subnode. 1448c2ecf20Sopenharmony_ci items: 1458c2ecf20Sopenharmony_ci oneOf: 1468c2ecf20Sopenharmony_ci - enum: [dnand_dqs, dnand_dqsn, eth_txd0, eth_txd1, eth_txen, 1478c2ecf20Sopenharmony_ci eth_rxer, eth_crs_dv, eth_rxd1, eth_rxd0, eth_ref_clk, 1488c2ecf20Sopenharmony_ci eth_mdc, eth_mdio, sirq0, sirq1, sirq2, i2s_d0, i2s_bclk0, 1498c2ecf20Sopenharmony_ci i2s_lrclk0, i2s_mclk0, i2s_d1, i2s_bclk1, i2s_lrclk1, 1508c2ecf20Sopenharmony_ci i2s_mclk1, ks_in0, ks_in1, ks_in2, ks_in3, ks_out0, ks_out1, 1518c2ecf20Sopenharmony_ci ks_out2, lvds_oep, lvds_oen, lvds_odp, lvds_odn, lvds_ocp, 1528c2ecf20Sopenharmony_ci lvds_ocn, lvds_obp, lvds_obn, lvds_oap, lvds_oan, lvds_eep, 1538c2ecf20Sopenharmony_ci lvds_een, lvds_edp, lvds_edn, lvds_ecp, lvds_ecn, lvds_ebp, 1548c2ecf20Sopenharmony_ci lvds_ebn, lvds_eap, lvds_ean, lcd0_d18, lcd0_d17, dsi_dp3, 1558c2ecf20Sopenharmony_ci dsi_dn3, dsi_dp1, dsi_dn1, dsi_cp, dsi_cn, dsi_dp0, dsi_dn0, 1568c2ecf20Sopenharmony_ci dsi_dp2, dsi_dn2, sd0_d0, sd0_d1, sd0_d2, sd0_d3, sd1_d0, 1578c2ecf20Sopenharmony_ci sd1_d1, sd1_d2, sd1_d3, sd0_cmd, sd0_clk, sd1_cmd, sd1_clk, 1588c2ecf20Sopenharmony_ci spi0_sclk, spi0_ss, spi0_miso, spi0_mosi, uart0_rx, 1598c2ecf20Sopenharmony_ci uart0_tx, i2c0_sclk, i2c0_sdata, sensor0_pclk, 1608c2ecf20Sopenharmony_ci sensor0_ckout, dnand_ale, dnand_cle, dnand_ceb0, dnand_ceb1, 1618c2ecf20Sopenharmony_ci dnand_ceb2, dnand_ceb3, uart2_rx, uart2_tx, uart2_rtsb, 1628c2ecf20Sopenharmony_ci uart2_ctsb, uart3_rx, uart3_tx, uart3_rtsb, uart3_ctsb, 1638c2ecf20Sopenharmony_ci pcm1_in, pcm1_clk, pcm1_sync, pcm1_out, i2c1_sclk, 1648c2ecf20Sopenharmony_ci i2c1_sdata, i2c2_sclk, i2c2_sdata, csi_dn0, csi_dp0, 1658c2ecf20Sopenharmony_ci csi_dn1, csi_dp1, csi_dn2, csi_dp2, csi_dn3, csi_dp3, 1668c2ecf20Sopenharmony_ci csi_cn, csi_cp, dnand_d0, dnand_d1, dnand_d2, dnand_d3, 1678c2ecf20Sopenharmony_ci dnand_d4, dnand_d5, dnand_d6, dnand_d7, dnand_rb, dnand_rdb, 1688c2ecf20Sopenharmony_ci dnand_rdbn, dnand_wrb, porb, clko_25m, bsel, pkg0, pkg1, 1698c2ecf20Sopenharmony_ci pkg2, pkg3] 1708c2ecf20Sopenharmony_ci minItems: 1 1718c2ecf20Sopenharmony_ci maxItems: 64 1728c2ecf20Sopenharmony_ci 1738c2ecf20Sopenharmony_ci bias-pull-up: true 1748c2ecf20Sopenharmony_ci bias-pull-down: true 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_ci drive-strength: 1778c2ecf20Sopenharmony_ci description: 1788c2ecf20Sopenharmony_ci Selects the drive strength for the specified pins, in mA. 1798c2ecf20Sopenharmony_ci enum: [2, 4, 8, 12] 1808c2ecf20Sopenharmony_ci 1818c2ecf20Sopenharmony_ci input-schmitt-enable: true 1828c2ecf20Sopenharmony_ci input-schmitt-disable: true 1838c2ecf20Sopenharmony_ci 1848c2ecf20Sopenharmony_ci additionalProperties: false 1858c2ecf20Sopenharmony_ci 1868c2ecf20Sopenharmony_ci additionalProperties: false 1878c2ecf20Sopenharmony_ci 1888c2ecf20Sopenharmony_cirequired: 1898c2ecf20Sopenharmony_ci - compatible 1908c2ecf20Sopenharmony_ci - reg 1918c2ecf20Sopenharmony_ci - clocks 1928c2ecf20Sopenharmony_ci - gpio-controller 1938c2ecf20Sopenharmony_ci - gpio-ranges 1948c2ecf20Sopenharmony_ci - '#gpio-cells' 1958c2ecf20Sopenharmony_ci - interrupt-controller 1968c2ecf20Sopenharmony_ci - '#interrupt-cells' 1978c2ecf20Sopenharmony_ci - interrupts 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_ciadditionalProperties: false 2008c2ecf20Sopenharmony_ci 2018c2ecf20Sopenharmony_ciexamples: 2028c2ecf20Sopenharmony_ci - | 2038c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 2048c2ecf20Sopenharmony_ci pinctrl: pinctrl@b01b0000 { 2058c2ecf20Sopenharmony_ci compatible = "actions,s500-pinctrl"; 2068c2ecf20Sopenharmony_ci reg = <0xb01b0000 0x40>, <0xb01b0040 0x10>, 2078c2ecf20Sopenharmony_ci <0xb01b0060 0x18>, <0xb01b0080 0xc>; 2088c2ecf20Sopenharmony_ci clocks = <&cmu 55>; 2098c2ecf20Sopenharmony_ci gpio-controller; 2108c2ecf20Sopenharmony_ci gpio-ranges = <&pinctrl 0 0 132>; 2118c2ecf20Sopenharmony_ci #gpio-cells = <2>; 2128c2ecf20Sopenharmony_ci interrupt-controller; 2138c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 2148c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>, 2158c2ecf20Sopenharmony_ci <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>, 2168c2ecf20Sopenharmony_ci <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>, 2178c2ecf20Sopenharmony_ci <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, 2188c2ecf20Sopenharmony_ci <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_ci mmc0_pins: mmc0-pins { 2218c2ecf20Sopenharmony_ci pinmux { 2228c2ecf20Sopenharmony_ci groups = "sd0_d0_mfp", "sd0_d1_mfp", "sd0_d2_d3_mfp", 2238c2ecf20Sopenharmony_ci "sd0_cmd_mfp", "sd0_clk_mfp"; 2248c2ecf20Sopenharmony_ci function = "sd0"; 2258c2ecf20Sopenharmony_ci }; 2268c2ecf20Sopenharmony_ci 2278c2ecf20Sopenharmony_ci drv-pinconf { 2288c2ecf20Sopenharmony_ci groups = "sd0_d0_d3_drv", "sd0_cmd_drv", "sd0_clk_drv"; 2298c2ecf20Sopenharmony_ci drive-strength = <8>; 2308c2ecf20Sopenharmony_ci }; 2318c2ecf20Sopenharmony_ci 2328c2ecf20Sopenharmony_ci bias-pinconf { 2338c2ecf20Sopenharmony_ci pins = "sd0_d0", "sd0_d1", "sd0_d2", 2348c2ecf20Sopenharmony_ci "sd0_d3", "sd0_cmd"; 2358c2ecf20Sopenharmony_ci bias-pull-up; 2368c2ecf20Sopenharmony_ci }; 2378c2ecf20Sopenharmony_ci }; 2388c2ecf20Sopenharmony_ci }; 2398c2ecf20Sopenharmony_ci 2408c2ecf20Sopenharmony_ci... 241