ARM Mali Bifrost GPU ==================== Required properties: - compatible : * Since Mali Bifrost GPU model/revision is fully discoverable by reading some determined registers, must contain the following: + "arm,mali-bifrost" * which must be preceded by one of the following vendor specifics: + "amlogic,meson-g12a-mali" - reg : Physical base address of the device and length of the register area. - interrupts : Contains the three IRQ lines required by Mali Bifrost devices, in the following defined order. - interrupt-names : Contains the names of IRQ resources in this exact defined order: "job", "mmu", "gpu". Optional properties: - clocks : Phandle to clock for the Mali Bifrost device. - mali-supply : Phandle to regulator for the Mali device. Refer to Documentation/devicetree/bindings/regulator/regulator.txt for details. - operating-points-v2 : Refer to Documentation/devicetree/bindings/opp/opp.txt for details. - resets : Phandle of the GPU reset line. Vendor-specific bindings ------------------------ The Mali GPU is integrated very differently from one SoC to another. In order to accommodate those differences, you have the option to specify one more vendor-specific compatible, among: - "amlogic,meson-g12a-mali" Required properties: - resets : Should contain phandles of : + GPU reset line + GPU APB glue reset line Example for a Mali-G31: gpu@ffa30000 { compatible = "amlogic,meson-g12a-mali", "arm,mali-bifrost"; reg = <0xffe40000 0x10000>; interrupts = , , ; interrupt-names = "job", "mmu", "gpu"; clocks = <&clk CLKID_MALI>; mali-supply = <&vdd_gpu>; operating-points-v2 = <&gpu_opp_table>; resets = <&reset RESET_DVALIN_CAPB3>, <&reset RESET_DVALIN>; }; gpu_opp_table: opp_table0 { compatible = "operating-points-v2"; opp@533000000 { opp-hz = /bits/ 64 <533000000>; opp-microvolt = <1250000>; }; opp@450000000 { opp-hz = /bits/ 64 <450000000>; opp-microvolt = <1150000>; }; opp@400000000 { opp-hz = /bits/ 64 <400000000>; opp-microvolt = <1125000>; }; opp@350000000 { opp-hz = /bits/ 64 <350000000>; opp-microvolt = <1075000>; }; opp@266000000 { opp-hz = /bits/ 64 <266000000>; opp-microvolt = <1025000>; }; opp@160000000 { opp-hz = /bits/ 64 <160000000>; opp-microvolt = <925000>; }; opp@100000000 { opp-hz = /bits/ 64 <100000000>; opp-microvolt = <912500>; }; };