Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

arm64: dts: allwinner: h5: Add device node for Mali-450 GPU

The H5 has a Mali-450 GPU with 4 Pixel Processor cores.

Interestingly, while the datasheet lists an interrupt line for the GPU's
PMU, the hardware block itself doesn't seem to have it. Reads from the
PMU address range all return zero, and writes are ignored.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>

authored by

Chen-Yu Tsai and committed by
Maxime Ripard
bb39ed07 cd3f03df

+43
+43
arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi
··· 92 92 <GIC_PPI 10 93 93 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 94 94 }; 95 + 96 + soc { 97 + mali: gpu@1e80000 { 98 + compatible = "allwinner,sun50i-h5-mali", "arm,mali-450"; 99 + reg = <0x01e80000 0x30000>; 100 + /* 101 + * While the datasheet lists an interrupt for the 102 + * PMU, the actual silicon does not have the PMU 103 + * block. Reads all return zero, and writes are 104 + * ignored. 105 + */ 106 + interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, 107 + <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>, 108 + <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>, 109 + <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, 110 + <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, 111 + <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, 112 + <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>, 113 + <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, 114 + <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>, 115 + <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>, 116 + <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>, 117 + <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 118 + interrupt-names = "gp", 119 + "gpmmu", 120 + "pp", 121 + "pp0", 122 + "ppmmu0", 123 + "pp1", 124 + "ppmmu1", 125 + "pp2", 126 + "ppmmu2", 127 + "pp3", 128 + "ppmmu3", 129 + "pmu"; 130 + clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>; 131 + clock-names = "bus", "core"; 132 + resets = <&ccu RST_BUS_GPU>; 133 + 134 + assigned-clocks = <&ccu CLK_GPU>; 135 + assigned-clock-rates = <384000000>; 136 + }; 137 + }; 95 138 }; 96 139 97 140 &ccu {