0001 # SPDX-License-Identifier: GPL-2.0-only
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/gpu/arm,mali-utgard.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: ARM Mali Utgard GPU
0008
0009 maintainers:
0010 - Rob Herring <robh@kernel.org>
0011 - Maxime Ripard <mripard@kernel.org>
0012 - Heiko Stuebner <heiko@sntech.de>
0013
0014 properties:
0015 $nodename:
0016 pattern: '^gpu@[a-f0-9]+$'
0017 compatible:
0018 oneOf:
0019 - items:
0020 - const: allwinner,sun8i-a23-mali
0021 - const: allwinner,sun7i-a20-mali
0022 - const: arm,mali-400
0023 - items:
0024 - enum:
0025 - allwinner,sun4i-a10-mali
0026 - allwinner,sun7i-a20-mali
0027 - allwinner,sun8i-h3-mali
0028 - allwinner,sun8i-r40-mali
0029 - allwinner,sun50i-a64-mali
0030 - rockchip,rk3036-mali
0031 - rockchip,rk3066-mali
0032 - rockchip,rk3188-mali
0033 - rockchip,rk3228-mali
0034 - samsung,exynos4210-mali
0035 - stericsson,db8500-mali
0036 - const: arm,mali-400
0037 - items:
0038 - enum:
0039 - allwinner,sun50i-h5-mali
0040 - amlogic,meson8-mali
0041 - amlogic,meson8b-mali
0042 - amlogic,meson-gxbb-mali
0043 - amlogic,meson-gxl-mali
0044 - hisilicon,hi6220-mali
0045 - mediatek,mt7623-mali
0046 - rockchip,rk3328-mali
0047 - const: arm,mali-450
0048
0049 # "arm,mali-300"
0050
0051 reg:
0052 maxItems: 1
0053
0054 interrupts:
0055 minItems: 4
0056 maxItems: 20
0057
0058 interrupt-names:
0059 allOf:
0060 - additionalItems: true
0061 minItems: 4
0062 maxItems: 20
0063 items:
0064 # At least enforce the first 2 interrupts
0065 - const: gp
0066 - const: gpmmu
0067 - items:
0068 # Not ideal as any order and combination are allowed
0069 enum:
0070 - gp # Geometry Processor interrupt
0071 - gpmmu # Geometry Processor MMU interrupt
0072 - pp # Pixel Processor broadcast interrupt (mali-450 only)
0073 - pp0 # Pixel Processor X interrupt (X from 0 to 7)
0074 - ppmmu0 # Pixel Processor X MMU interrupt (X from 0 to 7)
0075 - pp1
0076 - ppmmu1
0077 - pp2
0078 - ppmmu2
0079 - pp3
0080 - ppmmu3
0081 - pp4
0082 - ppmmu4
0083 - pp5
0084 - ppmmu5
0085 - pp6
0086 - ppmmu6
0087 - pp7
0088 - ppmmu7
0089 - pmu # Power Management Unit interrupt (optional)
0090 - combined # stericsson,db8500-mali only
0091
0092 clocks:
0093 maxItems: 2
0094
0095 clock-names:
0096 items:
0097 - const: bus
0098 - const: core
0099
0100 memory-region: true
0101
0102 mali-supply: true
0103
0104 opp-table: true
0105
0106 power-domains:
0107 maxItems: 1
0108
0109 resets:
0110 maxItems: 1
0111
0112 operating-points-v2: true
0113
0114 "#cooling-cells":
0115 const: 2
0116
0117 required:
0118 - compatible
0119 - reg
0120 - interrupts
0121 - interrupt-names
0122 - clocks
0123 - clock-names
0124
0125 additionalProperties: false
0126
0127 allOf:
0128 - if:
0129 properties:
0130 compatible:
0131 contains:
0132 enum:
0133 - allwinner,sun4i-a10-mali
0134 - allwinner,sun7i-a20-mali
0135 - allwinner,sun8i-r40-mali
0136 - allwinner,sun50i-a64-mali
0137 - allwinner,sun50i-h5-mali
0138 - amlogic,meson8-mali
0139 - amlogic,meson8b-mali
0140 - hisilicon,hi6220-mali
0141 - mediatek,mt7623-mali
0142 - rockchip,rk3036-mali
0143 - rockchip,rk3066-mali
0144 - rockchip,rk3188-mali
0145 - rockchip,rk3228-mali
0146 - rockchip,rk3328-mali
0147 then:
0148 required:
0149 - resets
0150
0151 examples:
0152 - |
0153 #include <dt-bindings/interrupt-controller/irq.h>
0154 #include <dt-bindings/interrupt-controller/arm-gic.h>
0155
0156 mali: gpu@1c40000 {
0157 compatible = "allwinner,sun7i-a20-mali", "arm,mali-400";
0158 reg = <0x01c40000 0x10000>;
0159 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
0160 <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
0161 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
0162 <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
0163 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
0164 <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
0165 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
0166 interrupt-names = "gp",
0167 "gpmmu",
0168 "pp0",
0169 "ppmmu0",
0170 "pp1",
0171 "ppmmu1",
0172 "pmu";
0173 clocks = <&ccu 1>, <&ccu 2>;
0174 clock-names = "bus", "core";
0175 resets = <&ccu 1>;
0176 #cooling-cells = <2>;
0177 };
0178
0179 ...