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

media: dt-bindings: samsung,exynos4212-fimc-is: replace duplicate pmu node with phandle

The FIMC IS camera must access the PMU (Power Management Unit) IO memory
to control camera power. This was achieved by duplicating the PMU node
as its child like:

soc@0 {
system-controller@10020000 { ... }; // Real PMU

camera@11800000 {
fimc-is@12000000 {
// FIMC IS camera node
pmu@10020000 {
reg = <0x10020000 0x3000>; // Fake PMU node
};
};
};
};

This is not a correct representation of the hardware. Mapping the PMU
(Power Management Unit) IO memory should be via syscon-like phandle
(samsung,pmu-syscon, already used for other drivers), not by duplicating
"pmu" Devicetree node inside the FIMC IS.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>

authored by

Krzysztof Kozlowski and committed by
Hans Verkuil
99e6eaab 29d3e0b8

+11 -9
+10 -5
Documentation/devicetree/bindings/media/samsung,exynos4212-fimc-is.yaml
··· 75 75 power-domains: 76 76 maxItems: 1 77 77 78 + samsung,pmu-syscon: 79 + $ref: /schemas/types.yaml#/definitions/phandle 80 + description: 81 + Power Management Unit (PMU) system controller interface, used to 82 + power/start the ISP. 83 + 78 84 patternProperties: 79 85 "^pmu@[0-9a-f]+$": 80 86 type: object 81 87 additionalProperties: false 88 + deprecated: true 82 89 description: 83 90 Node representing the SoC's Power Management Unit (duplicated with the 84 - correct PMU node in the SoC). 91 + correct PMU node in the SoC). Deprecated, use samsung,pmu-syscon. 85 92 86 93 properties: 87 94 reg: ··· 138 131 - clock-names 139 132 - interrupts 140 133 - ranges 134 + - samsung,pmu-syscon 141 135 - '#size-cells' 142 136 143 137 additionalProperties: false ··· 187 179 <&sysmmu_fimc_fd>, <&sysmmu_fimc_mcuctl>; 188 180 iommu-names = "isp", "drc", "fd", "mcuctl"; 189 181 power-domains = <&pd_isp>; 182 + samsung,pmu-syscon = <&pmu_system_controller>; 190 183 191 184 #address-cells = <1>; 192 185 #size-cells = <1>; 193 186 ranges; 194 - 195 - pmu@10020000 { 196 - reg = <0x10020000 0x3000>; 197 - }; 198 187 199 188 i2c-isp@12140000 { 200 189 compatible = "samsung,exynos4212-i2c-isp";
+1 -4
Documentation/devicetree/bindings/media/samsung,fimc.yaml
··· 236 236 <&sysmmu_fimc_fd>, <&sysmmu_fimc_mcuctl>; 237 237 iommu-names = "isp", "drc", "fd", "mcuctl"; 238 238 power-domains = <&pd_isp>; 239 + samsung,pmu-syscon = <&pmu_system_controller>; 239 240 240 241 #address-cells = <1>; 241 242 #size-cells = <1>; 242 243 ranges; 243 - 244 - pmu@10020000 { 245 - reg = <0x10020000 0x3000>; 246 - }; 247 244 248 245 i2c-isp@12140000 { 249 246 compatible = "samsung,exynos4212-i2c-isp";