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

ARM: dts: exynos: Add GPU/Mali 400 node to Exynos4

Add nodes for GPU (Mali 400) to Exynos4210 and Exynos4412. Describe the
GPU as much as possible however still few elements are missing:
1. Exynos4210 bus clock is not described in hardware manual therefore
the IP gate clock was provided,
2. Exynos4412: Not sure what to do with CLK_G3D clock responsible for
gating entire IP block (it is now being disabled as unused),
3. Regulator supplies on Trats board.

Limited testing on Odroid U3 (Exynos4412).

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>

+114
+36
arch/arm/boot/dts/exynos4.dtsi
··· 51 51 serial3 = &serial_3; 52 52 }; 53 53 54 + gpu: gpu@13000000 { 55 + compatible = "samsung,exynos4210-mali", "arm,mali-400"; 56 + reg = <0x13000000 0x10000>; 57 + interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>, 58 + <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>, 59 + <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 60 + <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, 61 + <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>, 62 + <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>, 63 + <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, 64 + <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, 65 + <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>, 66 + <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, 67 + <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; 68 + interrupt-names = "gp", 69 + "gpmmu", 70 + "pp0", 71 + "ppmmu0", 72 + "pp1", 73 + "ppmmu1", 74 + "pp2", 75 + "ppmmu2", 76 + "pp3", 77 + "ppmmu3", 78 + "pmu"; 79 + /* 80 + * CLK_G3D is not actually bus clock but a IP-level clock. 81 + * The bus clock is not described in hardware manual. 82 + */ 83 + clocks = <&clock CLK_G3D>, 84 + <&clock CLK_SCLK_G3D>; 85 + clock-names = "bus", "core"; 86 + power-domains = <&pd_g3d>; 87 + status = "disabled"; 88 + }; 89 + 54 90 pmu: pmu { 55 91 compatible = "arm,cortex-a9-pmu"; 56 92 interrupt-parent = <&combiner>;
+5
arch/arm/boot/dts/exynos4210-origen.dts
··· 132 132 status = "okay"; 133 133 }; 134 134 135 + &gpu { 136 + mali-supply = <&buck3_reg>; 137 + status = "okay"; 138 + }; 139 + 135 140 &hsotg { 136 141 vusb_d-supply = <&ldo3_reg>; 137 142 vusb_a-supply = <&ldo8_reg>;
+4
arch/arm/boot/dts/exynos4210-trats.dts
··· 239 239 status = "okay"; 240 240 }; 241 241 242 + &gpu { 243 + status = "okay"; 244 + }; 245 + 242 246 &hsotg { 243 247 vusb_d-supply = <&vusb_reg>; 244 248 vusb_a-supply = <&vusbdac_reg>;
+5
arch/arm/boot/dts/exynos4210-universal_c210.dts
··· 262 262 }; 263 263 }; 264 264 265 + &gpu { 266 + mali-supply = <&buck2_reg>; 267 + status = "okay"; 268 + }; 269 + 265 270 &hdmi { 266 271 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 267 272 pinctrl-names = "default";
+17
arch/arm/boot/dts/exynos4210.dtsi
··· 449 449 samsung,lcd-wb; 450 450 }; 451 451 452 + &gpu { 453 + operating-points-v2 = <&gpu_opp_table>; 454 + 455 + gpu_opp_table: opp_table { 456 + compatible = "operating-points-v2"; 457 + 458 + opp-160000000 { 459 + opp-hz = /bits/ 64 <160000000>; 460 + opp-microvolt = <950000>; 461 + }; 462 + opp-267000000 { 463 + opp-hz = /bits/ 64 <267000000>; 464 + opp-microvolt = <1050000>; 465 + }; 466 + }; 467 + }; 468 + 452 469 &mdma1 { 453 470 power-domains = <&pd_lcd0>; 454 471 };
+5
arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
··· 115 115 cpu0-supply = <&buck2_reg>; 116 116 }; 117 117 118 + &gpu { 119 + mali-supply = <&buck4_reg>; 120 + status = "okay"; 121 + }; 122 + 118 123 &hsotg { 119 124 vusb_d-supply = <&ldo15_reg>; 120 125 vusb_a-supply = <&ldo12_reg>;
+5
arch/arm/boot/dts/exynos4412-midas.dtsi
··· 453 453 status = "okay"; 454 454 }; 455 455 456 + &gpu { 457 + mali-supply = <&buck4_reg>; 458 + status = "okay"; 459 + }; 460 + 456 461 &hdmi { 457 462 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 458 463 pinctrl-names = "default";
+5
arch/arm/boot/dts/exynos4412-odroid-common.dtsi
··· 229 229 assigned-clock-rates = <0>, <176000000>; 230 230 }; 231 231 232 + &gpu { 233 + mali-supply = <&buck4_reg>; 234 + status = "okay"; 235 + }; 236 + 232 237 &hdmi { 233 238 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 234 239 pinctrl-names = "default";
+7
arch/arm/boot/dts/exynos4412-prime.dtsi
··· 38 38 cooling-device = <&cpu0 15 15>, <&cpu1 15 15>, 39 39 <&cpu2 15 15>, <&cpu3 15 15>; 40 40 }; 41 + 42 + &gpu_opp_table { 43 + opp-533000000 { 44 + opp-hz = /bits/ 64 <533000000>; 45 + opp-microvolt = <1075000>; 46 + }; 47 + };
+25
arch/arm/boot/dts/exynos4412.dtsi
··· 716 716 cpu-offset = <0x4000>; 717 717 }; 718 718 719 + &gpu { 720 + operating-points-v2 = <&gpu_opp_table>; 721 + 722 + gpu_opp_table: opp_table { 723 + compatible = "operating-points-v2"; 724 + 725 + opp-160000000 { 726 + opp-hz = /bits/ 64 <160000000>; 727 + opp-microvolt = <875000>; 728 + }; 729 + opp-267000000 { 730 + opp-hz = /bits/ 64 <267000000>; 731 + opp-microvolt = <900000>; 732 + }; 733 + opp-350000000 { 734 + opp-hz = /bits/ 64 <350000000>; 735 + opp-microvolt = <950000>; 736 + }; 737 + opp-440000000 { 738 + opp-hz = /bits/ 64 <440000000>; 739 + opp-microvolt = <1025000>; 740 + }; 741 + }; 742 + }; 743 + 719 744 &hdmi { 720 745 compatible = "samsung,exynos4212-hdmi"; 721 746 };