162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/pinctrl/actions,s500-pinctrl.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Actions Semi S500 SoC pinmux & GPIO controller 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 1162306a36Sopenharmony_ci - Cristian Ciocaltea <cristian.ciocaltea@gmail.com> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cidescription: | 1462306a36Sopenharmony_ci Pinmux & GPIO controller manages pin multiplexing & configuration including 1562306a36Sopenharmony_ci GPIO function selection & GPIO attributes configuration. Please refer to 1662306a36Sopenharmony_ci pinctrl-bindings.txt in this directory for common binding part and usage. 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ciproperties: 1962306a36Sopenharmony_ci compatible: 2062306a36Sopenharmony_ci const: actions,s500-pinctrl 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci reg: 2362306a36Sopenharmony_ci items: 2462306a36Sopenharmony_ci - description: GPIO Output + GPIO Input + GPIO Data 2562306a36Sopenharmony_ci - description: Multiplexing Control 2662306a36Sopenharmony_ci - description: PAD Pull Control + PAD Schmitt Trigger Enable + PAD Control 2762306a36Sopenharmony_ci - description: PAD Drive Capacity Select 2862306a36Sopenharmony_ci minItems: 1 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci clocks: 3162306a36Sopenharmony_ci maxItems: 1 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci gpio-controller: true 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci gpio-ranges: 3662306a36Sopenharmony_ci maxItems: 1 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci '#gpio-cells': 3962306a36Sopenharmony_ci description: 4062306a36Sopenharmony_ci Specifies the pin number and flags, as defined in 4162306a36Sopenharmony_ci include/dt-bindings/gpio/gpio.h 4262306a36Sopenharmony_ci const: 2 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci interrupt-controller: true 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci '#interrupt-cells': 4762306a36Sopenharmony_ci description: 4862306a36Sopenharmony_ci Specifies the pin number and flags, as defined in 4962306a36Sopenharmony_ci include/dt-bindings/interrupt-controller/irq.h 5062306a36Sopenharmony_ci const: 2 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci interrupts: 5362306a36Sopenharmony_ci description: 5462306a36Sopenharmony_ci One interrupt per each of the 5 GPIO ports supported by the controller, 5562306a36Sopenharmony_ci sorted by port number ascending order. 5662306a36Sopenharmony_ci minItems: 5 5762306a36Sopenharmony_ci maxItems: 5 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_cipatternProperties: 6062306a36Sopenharmony_ci '-pins$': 6162306a36Sopenharmony_ci type: object 6262306a36Sopenharmony_ci patternProperties: 6362306a36Sopenharmony_ci '^(.*-)?pinmux$': 6462306a36Sopenharmony_ci type: object 6562306a36Sopenharmony_ci description: 6662306a36Sopenharmony_ci Pinctrl node's client devices specify pin muxes using subnodes, 6762306a36Sopenharmony_ci which in turn use the standard properties below. 6862306a36Sopenharmony_ci $ref: pinmux-node.yaml# 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci properties: 7162306a36Sopenharmony_ci groups: 7262306a36Sopenharmony_ci description: 7362306a36Sopenharmony_ci List of gpio pin groups affected by the functions specified in 7462306a36Sopenharmony_ci this subnode. 7562306a36Sopenharmony_ci items: 7662306a36Sopenharmony_ci oneOf: 7762306a36Sopenharmony_ci - enum: [lcd0_d18_mfp, rmii_crs_dv_mfp, rmii_txd0_mfp, 7862306a36Sopenharmony_ci rmii_txd1_mfp, rmii_txen_mfp, rmii_rxen_mfp, rmii_rxd1_mfp, 7962306a36Sopenharmony_ci rmii_rxd0_mfp, rmii_ref_clk_mfp, i2s_d0_mfp, i2s_pcm1_mfp, 8062306a36Sopenharmony_ci i2s0_pcm0_mfp, i2s1_pcm0_mfp, i2s_d1_mfp, ks_in2_mfp, 8162306a36Sopenharmony_ci ks_in1_mfp, ks_in0_mfp, ks_in3_mfp, ks_out0_mfp, 8262306a36Sopenharmony_ci ks_out1_mfp, ks_out2_mfp, lvds_o_pn_mfp, dsi_dn0_mfp, 8362306a36Sopenharmony_ci dsi_dp2_mfp, lcd0_d17_mfp, dsi_dp3_mfp, dsi_dn3_mfp, 8462306a36Sopenharmony_ci dsi_dp0_mfp, lvds_ee_pn_mfp, spi0_i2c_pcm_mfp, 8562306a36Sopenharmony_ci spi0_i2s_pcm_mfp, dsi_dnp1_cp_mfp, lvds_e_pn_mfp, 8662306a36Sopenharmony_ci dsi_dn2_mfp, uart2_rtsb_mfp, uart2_ctsb_mfp, uart3_rtsb_mfp, 8762306a36Sopenharmony_ci uart3_ctsb_mfp, sd0_d0_mfp, sd0_d1_mfp, sd0_d2_d3_mfp, 8862306a36Sopenharmony_ci sd1_d0_d3_mfp, sd0_cmd_mfp, sd0_clk_mfp, sd1_cmd_mfp, 8962306a36Sopenharmony_ci uart0_rx_mfp, clko_25m_mfp, csi_cn_cp_mfp, sens0_ckout_mfp, 9062306a36Sopenharmony_ci uart0_tx_mfp, i2c0_mfp, csi_dn_dp_mfp, sen0_pclk_mfp, 9162306a36Sopenharmony_ci pcm1_in_mfp, pcm1_clk_mfp, pcm1_sync_mfp, pcm1_out_mfp, 9262306a36Sopenharmony_ci dnand_data_wr_mfp, dnand_acle_ce0_mfp, nand_ceb2_mfp, 9362306a36Sopenharmony_ci nand_ceb3_mfp] 9462306a36Sopenharmony_ci minItems: 1 9562306a36Sopenharmony_ci maxItems: 32 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ci function: 9862306a36Sopenharmony_ci description: 9962306a36Sopenharmony_ci Specify the alternative function to be configured for the 10062306a36Sopenharmony_ci given gpio pin groups. 10162306a36Sopenharmony_ci enum: [nor, eth_rmii, eth_smii, spi0, spi1, spi2, spi3, sens0, 10262306a36Sopenharmony_ci sens1, uart0, uart1, uart2, uart3, uart4, uart5, uart6, i2s0, 10362306a36Sopenharmony_ci i2s1, pcm1, pcm0, ks, jtag, pwm0, pwm1, pwm2, pwm3, pwm4, pwm5, 10462306a36Sopenharmony_ci p0, sd0, sd1, sd2, i2c0, i2c1, i2c3, dsi, lvds, usb30, clko_25m, 10562306a36Sopenharmony_ci mipi_csi, nand, spdif, ts, lcd0] 10662306a36Sopenharmony_ci 10762306a36Sopenharmony_ci required: 10862306a36Sopenharmony_ci - groups 10962306a36Sopenharmony_ci - function 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ci additionalProperties: false 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ci '^(.*-)?pinconf$': 11462306a36Sopenharmony_ci type: object 11562306a36Sopenharmony_ci description: 11662306a36Sopenharmony_ci Pinctrl node's client devices specify pin configurations using 11762306a36Sopenharmony_ci subnodes, which in turn use the standard properties below. 11862306a36Sopenharmony_ci $ref: pincfg-node.yaml# 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ci properties: 12162306a36Sopenharmony_ci groups: 12262306a36Sopenharmony_ci description: 12362306a36Sopenharmony_ci List of gpio pin groups affected by the drive-strength property 12462306a36Sopenharmony_ci specified in this subnode. 12562306a36Sopenharmony_ci items: 12662306a36Sopenharmony_ci oneOf: 12762306a36Sopenharmony_ci - enum: [sirq_drv, rmii_txd01_txen_drv, rmii_rxer_drv, 12862306a36Sopenharmony_ci rmii_crs_drv, rmii_rxd10_drv, rmii_ref_clk_drv, 12962306a36Sopenharmony_ci smi_mdc_mdio_drv, i2s_d0_drv, i2s_bclk0_drv, i2s3_drv, 13062306a36Sopenharmony_ci i2s13_drv, pcm1_drv, ks_in_drv, ks_out_drv, lvds_all_drv, 13162306a36Sopenharmony_ci lcd_dsi_drv, dsi_drv, sd0_d0_d3_drv, sd1_d0_d3_drv, 13262306a36Sopenharmony_ci sd0_cmd_drv, sd0_clk_drv, sd1_cmd_drv, sd1_clk_drv, 13362306a36Sopenharmony_ci spi0_all_drv, uart0_rx_drv, uart0_tx_drv, uart2_all_drv, 13462306a36Sopenharmony_ci i2c0_all_drv, i2c12_all_drv, sens0_pclk_drv, 13562306a36Sopenharmony_ci sens0_ckout_drv, uart3_all_drv] 13662306a36Sopenharmony_ci minItems: 1 13762306a36Sopenharmony_ci maxItems: 32 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ci pins: 14062306a36Sopenharmony_ci description: 14162306a36Sopenharmony_ci List of gpio pins affected by the bias-pull-* and 14262306a36Sopenharmony_ci input-schmitt-* properties specified in this subnode. 14362306a36Sopenharmony_ci items: 14462306a36Sopenharmony_ci oneOf: 14562306a36Sopenharmony_ci - enum: [dnand_dqs, dnand_dqsn, eth_txd0, eth_txd1, eth_txen, 14662306a36Sopenharmony_ci eth_rxer, eth_crs_dv, eth_rxd1, eth_rxd0, eth_ref_clk, 14762306a36Sopenharmony_ci eth_mdc, eth_mdio, sirq0, sirq1, sirq2, i2s_d0, i2s_bclk0, 14862306a36Sopenharmony_ci i2s_lrclk0, i2s_mclk0, i2s_d1, i2s_bclk1, i2s_lrclk1, 14962306a36Sopenharmony_ci i2s_mclk1, ks_in0, ks_in1, ks_in2, ks_in3, ks_out0, ks_out1, 15062306a36Sopenharmony_ci ks_out2, lvds_oep, lvds_oen, lvds_odp, lvds_odn, lvds_ocp, 15162306a36Sopenharmony_ci lvds_ocn, lvds_obp, lvds_obn, lvds_oap, lvds_oan, lvds_eep, 15262306a36Sopenharmony_ci lvds_een, lvds_edp, lvds_edn, lvds_ecp, lvds_ecn, lvds_ebp, 15362306a36Sopenharmony_ci lvds_ebn, lvds_eap, lvds_ean, lcd0_d18, lcd0_d17, dsi_dp3, 15462306a36Sopenharmony_ci dsi_dn3, dsi_dp1, dsi_dn1, dsi_cp, dsi_cn, dsi_dp0, dsi_dn0, 15562306a36Sopenharmony_ci dsi_dp2, dsi_dn2, sd0_d0, sd0_d1, sd0_d2, sd0_d3, sd1_d0, 15662306a36Sopenharmony_ci sd1_d1, sd1_d2, sd1_d3, sd0_cmd, sd0_clk, sd1_cmd, sd1_clk, 15762306a36Sopenharmony_ci spi0_sclk, spi0_ss, spi0_miso, spi0_mosi, uart0_rx, 15862306a36Sopenharmony_ci uart0_tx, i2c0_sclk, i2c0_sdata, sensor0_pclk, 15962306a36Sopenharmony_ci sensor0_ckout, dnand_ale, dnand_cle, dnand_ceb0, dnand_ceb1, 16062306a36Sopenharmony_ci dnand_ceb2, dnand_ceb3, uart2_rx, uart2_tx, uart2_rtsb, 16162306a36Sopenharmony_ci uart2_ctsb, uart3_rx, uart3_tx, uart3_rtsb, uart3_ctsb, 16262306a36Sopenharmony_ci pcm1_in, pcm1_clk, pcm1_sync, pcm1_out, i2c1_sclk, 16362306a36Sopenharmony_ci i2c1_sdata, i2c2_sclk, i2c2_sdata, csi_dn0, csi_dp0, 16462306a36Sopenharmony_ci csi_dn1, csi_dp1, csi_dn2, csi_dp2, csi_dn3, csi_dp3, 16562306a36Sopenharmony_ci csi_cn, csi_cp, dnand_d0, dnand_d1, dnand_d2, dnand_d3, 16662306a36Sopenharmony_ci dnand_d4, dnand_d5, dnand_d6, dnand_d7, dnand_rb, dnand_rdb, 16762306a36Sopenharmony_ci dnand_rdbn, dnand_wrb, porb, clko_25m, bsel, pkg0, pkg1, 16862306a36Sopenharmony_ci pkg2, pkg3] 16962306a36Sopenharmony_ci minItems: 1 17062306a36Sopenharmony_ci maxItems: 64 17162306a36Sopenharmony_ci 17262306a36Sopenharmony_ci bias-pull-up: true 17362306a36Sopenharmony_ci bias-pull-down: true 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ci drive-strength: 17662306a36Sopenharmony_ci description: 17762306a36Sopenharmony_ci Selects the drive strength for the specified pins, in mA. 17862306a36Sopenharmony_ci enum: [2, 4, 8, 12] 17962306a36Sopenharmony_ci 18062306a36Sopenharmony_ci input-schmitt-enable: true 18162306a36Sopenharmony_ci input-schmitt-disable: true 18262306a36Sopenharmony_ci 18362306a36Sopenharmony_ci additionalProperties: false 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci additionalProperties: false 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_ciallOf: 18862306a36Sopenharmony_ci - $ref: pinctrl.yaml# 18962306a36Sopenharmony_ci 19062306a36Sopenharmony_cirequired: 19162306a36Sopenharmony_ci - compatible 19262306a36Sopenharmony_ci - reg 19362306a36Sopenharmony_ci - clocks 19462306a36Sopenharmony_ci - gpio-controller 19562306a36Sopenharmony_ci - gpio-ranges 19662306a36Sopenharmony_ci - '#gpio-cells' 19762306a36Sopenharmony_ci - interrupt-controller 19862306a36Sopenharmony_ci - '#interrupt-cells' 19962306a36Sopenharmony_ci - interrupts 20062306a36Sopenharmony_ci 20162306a36Sopenharmony_ciadditionalProperties: false 20262306a36Sopenharmony_ci 20362306a36Sopenharmony_ciexamples: 20462306a36Sopenharmony_ci - | 20562306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 20662306a36Sopenharmony_ci pinctrl: pinctrl@b01b0000 { 20762306a36Sopenharmony_ci compatible = "actions,s500-pinctrl"; 20862306a36Sopenharmony_ci reg = <0xb01b0000 0x40>, <0xb01b0040 0x10>, 20962306a36Sopenharmony_ci <0xb01b0060 0x18>, <0xb01b0080 0xc>; 21062306a36Sopenharmony_ci clocks = <&cmu 55>; 21162306a36Sopenharmony_ci gpio-controller; 21262306a36Sopenharmony_ci gpio-ranges = <&pinctrl 0 0 132>; 21362306a36Sopenharmony_ci #gpio-cells = <2>; 21462306a36Sopenharmony_ci interrupt-controller; 21562306a36Sopenharmony_ci #interrupt-cells = <2>; 21662306a36Sopenharmony_ci interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>, 21762306a36Sopenharmony_ci <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>, 21862306a36Sopenharmony_ci <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>, 21962306a36Sopenharmony_ci <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>, 22062306a36Sopenharmony_ci <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>; 22162306a36Sopenharmony_ci 22262306a36Sopenharmony_ci mmc0_pins: mmc0-pins { 22362306a36Sopenharmony_ci pinmux { 22462306a36Sopenharmony_ci groups = "sd0_d0_mfp", "sd0_d1_mfp", "sd0_d2_d3_mfp", 22562306a36Sopenharmony_ci "sd0_cmd_mfp", "sd0_clk_mfp"; 22662306a36Sopenharmony_ci function = "sd0"; 22762306a36Sopenharmony_ci }; 22862306a36Sopenharmony_ci 22962306a36Sopenharmony_ci drv-pinconf { 23062306a36Sopenharmony_ci groups = "sd0_d0_d3_drv", "sd0_cmd_drv", "sd0_clk_drv"; 23162306a36Sopenharmony_ci drive-strength = <8>; 23262306a36Sopenharmony_ci }; 23362306a36Sopenharmony_ci 23462306a36Sopenharmony_ci bias-pinconf { 23562306a36Sopenharmony_ci pins = "sd0_d0", "sd0_d1", "sd0_d2", 23662306a36Sopenharmony_ci "sd0_d3", "sd0_cmd"; 23762306a36Sopenharmony_ci bias-pull-up; 23862306a36Sopenharmony_ci }; 23962306a36Sopenharmony_ci }; 24062306a36Sopenharmony_ci }; 24162306a36Sopenharmony_ci 24262306a36Sopenharmony_ci... 243