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/loongson,ls2k-pinctrl.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Loongson-2 SoC Pinctrl Controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - zhanghongchen <zhanghongchen@loongson.cn>
1162306a36Sopenharmony_ci  - Yinbo Zhu <zhuyinbo@loongson.cn>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciallOf:
1462306a36Sopenharmony_ci  - $ref: pinctrl.yaml#
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciproperties:
1762306a36Sopenharmony_ci  compatible:
1862306a36Sopenharmony_ci    const: loongson,ls2k-pinctrl
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci  reg:
2162306a36Sopenharmony_ci    maxItems: 1
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_cipatternProperties:
2462306a36Sopenharmony_ci  '-pins$':
2562306a36Sopenharmony_ci    type: object
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci    additionalProperties: false
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci    patternProperties:
3062306a36Sopenharmony_ci      'pinmux$':
3162306a36Sopenharmony_ci        type: object
3262306a36Sopenharmony_ci        description: node for pinctrl.
3362306a36Sopenharmony_ci        $ref: pinmux-node.yaml#
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci        unevaluatedProperties: false
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci        properties:
3862306a36Sopenharmony_ci          groups:
3962306a36Sopenharmony_ci            description:
4062306a36Sopenharmony_ci              One or more groups of pins to mux to a certain function
4162306a36Sopenharmony_ci            items:
4262306a36Sopenharmony_ci              enum: [gpio, sdio, can1, can0, pwm3, pwm2, pwm1, pwm0, i2c1, i2c0,
4362306a36Sopenharmony_ci                     nand, sata_led, i2s, hda]
4462306a36Sopenharmony_ci          function:
4562306a36Sopenharmony_ci            description:
4662306a36Sopenharmony_ci              The function that a group of pins is muxed to
4762306a36Sopenharmony_ci            enum: [gpio, sdio, can1, can0, pwm3, pwm2, pwm1, pwm0, i2c1, i2c0,
4862306a36Sopenharmony_ci                   nand, sata_led, i2s, hda]
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci        required:
5162306a36Sopenharmony_ci          - groups
5262306a36Sopenharmony_ci          - function
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_cirequired:
5562306a36Sopenharmony_ci  - compatible
5662306a36Sopenharmony_ci  - reg
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ciadditionalProperties: false
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ciexamples:
6162306a36Sopenharmony_ci  - |
6262306a36Sopenharmony_ci    pctrl: pinctrl@1fe00420 {
6362306a36Sopenharmony_ci        compatible = "loongson,ls2k-pinctrl";
6462306a36Sopenharmony_ci        reg = <0x1fe00420 0x18>;
6562306a36Sopenharmony_ci        sdio_pins_default: sdio-pins {
6662306a36Sopenharmony_ci            sdio-pinmux {
6762306a36Sopenharmony_ci                groups = "sdio";
6862306a36Sopenharmony_ci                function = "sdio";
6962306a36Sopenharmony_ci            };
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci            sdio-det-pinmux {
7262306a36Sopenharmony_ci                groups = "pwm2";
7362306a36Sopenharmony_ci                function = "gpio";
7462306a36Sopenharmony_ci            };
7562306a36Sopenharmony_ci        };
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci        pwm1_pins_default: pwm1-pins {
7862306a36Sopenharmony_ci            pinmux {
7962306a36Sopenharmony_ci                groups = "pwm1";
8062306a36Sopenharmony_ci                function = "pwm1";
8162306a36Sopenharmony_ci            };
8262306a36Sopenharmony_ci        };
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci        pwm0_pins_default: pwm0-pins {
8562306a36Sopenharmony_ci            pinmux {
8662306a36Sopenharmony_ci                groups = "pwm0";
8762306a36Sopenharmony_ci                function = "pwm0";
8862306a36Sopenharmony_ci            };
8962306a36Sopenharmony_ci        };
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci        i2c1_pins_default: i2c1-pins {
9262306a36Sopenharmony_ci            pinmux {
9362306a36Sopenharmony_ci                groups = "i2c1";
9462306a36Sopenharmony_ci                function = "i2c1";
9562306a36Sopenharmony_ci            };
9662306a36Sopenharmony_ci        };
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci        i2c0_pins_default: i2c0-pins {
9962306a36Sopenharmony_ci            pinmux {
10062306a36Sopenharmony_ci                groups = "i2c0";
10162306a36Sopenharmony_ci                function = "i2c0";
10262306a36Sopenharmony_ci            };
10362306a36Sopenharmony_ci        };
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci        nand_pins_default: nand-pins {
10662306a36Sopenharmony_ci            pinmux {
10762306a36Sopenharmony_ci                groups = "nand";
10862306a36Sopenharmony_ci                function = "nand";
10962306a36Sopenharmony_ci            };
11062306a36Sopenharmony_ci        };
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ci        hda_pins_default: hda-pins {
11362306a36Sopenharmony_ci            grp0-pinmux {
11462306a36Sopenharmony_ci                groups = "hda";
11562306a36Sopenharmony_ci                function = "hda";
11662306a36Sopenharmony_ci            };
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ci            grp1-pinmux {
11962306a36Sopenharmony_ci                groups = "i2s";
12062306a36Sopenharmony_ci                function = "gpio";
12162306a36Sopenharmony_ci            };
12262306a36Sopenharmony_ci        };
12362306a36Sopenharmony_ci    };
124