Linux-6.18.2/Documentation/devicetree/bindings/gpio/loongson,ls-gpio.yaml
2025-12-23 20:06:59 +08:00

169 lines
4.9 KiB
YAML

# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/gpio/loongson,ls-gpio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Loongson GPIO controller.
maintainers:
- Yinbo Zhu <zhuyinbo@loongson.cn>
properties:
compatible:
oneOf:
- enum:
- loongson,ls2k-gpio
- loongson,ls2k0300-gpio
- loongson,ls2k0500-gpio0
- loongson,ls2k0500-gpio1
- loongson,ls2k2000-gpio0
- loongson,ls2k2000-gpio1
- loongson,ls2k2000-gpio2
- loongson,ls3a5000-gpio
- loongson,ls3a6000-gpio # Loongson-3A6000 node GPIO
- loongson,ls7a-gpio
- loongson,ls7a2000-gpio1 # LS7A2000 chipset GPIO
- loongson,ls7a2000-gpio2 # LS7A2000 ACPI GPIO
- items:
- const: loongson,ls2k1000-gpio
- const: loongson,ls2k-gpio
- items:
- const: loongson,ls7a1000-gpio
- const: loongson,ls7a-gpio
reg:
maxItems: 1
ngpios:
minimum: 1
maximum: 128
"#gpio-cells":
const: 2
gpio-controller: true
gpio-ranges: true
interrupts:
minItems: 1
maxItems: 64
"#interrupt-cells":
const: 2
interrupt-controller: true
resets:
maxItems: 1
required:
- compatible
- reg
- ngpios
- "#gpio-cells"
- gpio-controller
- gpio-ranges
- interrupts
allOf:
- if:
properties:
compatible:
contains:
const: loongson,ls2k0300-gpio
then:
required:
- "#interrupt-cells"
- interrupt-controller
- resets
else:
properties:
"#interrupts-cells": false
interrupt-controller: false
resets: false
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
gpio0: gpio@1fe00500 {
compatible = "loongson,ls2k1000-gpio", "loongson,ls2k-gpio";
reg = <0x1fe00500 0x38>;
ngpios = <64>;
#gpio-cells = <2>;
gpio-controller;
gpio-ranges = <&pctrl 0 0 15>,
<&pctrl 16 16 15>,
<&pctrl 32 32 10>,
<&pctrl 44 44 20>;
interrupt-parent = <&liointc1>;
interrupts = <28 IRQ_TYPE_LEVEL_LOW>,
<29 IRQ_TYPE_LEVEL_LOW>,
<30 IRQ_TYPE_LEVEL_LOW>,
<30 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<26 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<>,
<>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>,
<27 IRQ_TYPE_LEVEL_LOW>;
};