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

ARM: EXYNOS: Adds G-Scaler device from Device Tree

This patch adds,
- 4 G-Scaler devices to the DT device list
- G-Scaler specific entries to the machine file
- binding documentation for G-Scaler entries

Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
Signed-off-by: Leela Krishna Amudala <l.krishna@samsung.com>
Signed-off-by: Shaik Ameer Basha <shaik.ameer@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>

authored by

Shaik Ameer Basha and committed by
Kukjin Kim
1128658a 2822d318

+71
+30
Documentation/devicetree/bindings/media/exynos5-gsc.txt
··· 1 + * Samsung Exynos5 G-Scaler device 2 + 3 + G-Scaler is used for scaling and color space conversion on EXYNOS5 SoCs. 4 + 5 + Required properties: 6 + - compatible: should be "samsung,exynos5-gsc" 7 + - reg: should contain G-Scaler physical address location and length. 8 + - interrupts: should contain G-Scaler interrupt number 9 + 10 + Example: 11 + 12 + gsc_0: gsc@0x13e00000 { 13 + compatible = "samsung,exynos5-gsc"; 14 + reg = <0x13e00000 0x1000>; 15 + interrupts = <0 85 0>; 16 + }; 17 + 18 + Aliases: 19 + Each G-Scaler node should have a numbered alias in the aliases node, 20 + in the form of gscN, N = 0...3. G-Scaler driver uses these aliases 21 + to retrieve the device IDs using "of_alias_get_id()" call. 22 + 23 + Example: 24 + 25 + aliases { 26 + gsc0 =&gsc_0; 27 + gsc1 =&gsc_1; 28 + gsc2 =&gsc_2; 29 + gsc3 =&gsc_3; 30 + };
+28
arch/arm/boot/dts/exynos5250.dtsi
··· 27 27 spi0 = &spi_0; 28 28 spi1 = &spi_1; 29 29 spi2 = &spi_2; 30 + gsc0 = &gsc_0; 31 + gsc1 = &gsc_1; 32 + gsc2 = &gsc_2; 33 + gsc3 = &gsc_3; 30 34 }; 31 35 32 36 gic:interrupt-controller@10481000 { ··· 463 459 reg = <0x03860000 0x20>; 464 460 #gpio-cells = <4>; 465 461 }; 462 + }; 463 + 464 + gsc_0: gsc@0x13e00000 { 465 + compatible = "samsung,exynos5-gsc"; 466 + reg = <0x13e00000 0x1000>; 467 + interrupts = <0 85 0>; 468 + }; 469 + 470 + gsc_1: gsc@0x13e10000 { 471 + compatible = "samsung,exynos5-gsc"; 472 + reg = <0x13e10000 0x1000>; 473 + interrupts = <0 86 0>; 474 + }; 475 + 476 + gsc_2: gsc@0x13e20000 { 477 + compatible = "samsung,exynos5-gsc"; 478 + reg = <0x13e20000 0x1000>; 479 + interrupts = <0 87 0>; 480 + }; 481 + 482 + gsc_3: gsc@0x13e30000 { 483 + compatible = "samsung,exynos5-gsc"; 484 + reg = <0x13e30000 0x1000>; 485 + interrupts = <0 88 0>; 466 486 }; 467 487 };
+5
arch/arm/mach-exynos/include/mach/map.h
··· 121 121 #define EXYNOS4_PA_SYSMMU_MFC_L 0x13620000 122 122 #define EXYNOS4_PA_SYSMMU_MFC_R 0x13630000 123 123 124 + #define EXYNOS5_PA_GSC0 0x13E00000 125 + #define EXYNOS5_PA_GSC1 0x13E10000 126 + #define EXYNOS5_PA_GSC2 0x13E20000 127 + #define EXYNOS5_PA_GSC3 0x13E30000 128 + 124 129 #define EXYNOS5_PA_SYSMMU_MDMA1 0x10A40000 125 130 #define EXYNOS5_PA_SYSMMU_SSS 0x10A50000 126 131 #define EXYNOS5_PA_SYSMMU_2D 0x10A60000
+8
arch/arm/mach-exynos/mach-exynos5-dt.c
··· 56 56 OF_DEV_AUXDATA("arm,pl330", EXYNOS5_PA_PDMA0, "dma-pl330.0", NULL), 57 57 OF_DEV_AUXDATA("arm,pl330", EXYNOS5_PA_PDMA1, "dma-pl330.1", NULL), 58 58 OF_DEV_AUXDATA("arm,pl330", EXYNOS5_PA_MDMA1, "dma-pl330.2", NULL), 59 + OF_DEV_AUXDATA("samsung,exynos5-gsc", EXYNOS5_PA_GSC0, 60 + "exynos-gsc.0", NULL), 61 + OF_DEV_AUXDATA("samsung,exynos5-gsc", EXYNOS5_PA_GSC1, 62 + "exynos-gsc.1", NULL), 63 + OF_DEV_AUXDATA("samsung,exynos5-gsc", EXYNOS5_PA_GSC2, 64 + "exynos-gsc.2", NULL), 65 + OF_DEV_AUXDATA("samsung,exynos5-gsc", EXYNOS5_PA_GSC3, 66 + "exynos-gsc.3", NULL), 59 67 {}, 60 68 }; 61 69