[1/3] media: dt-bindings: samsung,exynos4212-fimc-is: replace duplicate pmu node with phandle
Commit Message
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.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
.../media/samsung,exynos4212-fimc-is.yaml | 15 ++++++++++-----
.../devicetree/bindings/media/samsung,fimc.yaml | 5 +----
2 files changed, 11 insertions(+), 9 deletions(-)
Comments
On Sat, 22 Jul 2023 13:54:39 +0200, Krzysztof Kozlowski wrote:
> 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.
>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
> .../media/samsung,exynos4212-fimc-is.yaml | 15 ++++++++++-----
> .../devicetree/bindings/media/samsung,fimc.yaml | 5 +----
> 2 files changed, 11 insertions(+), 9 deletions(-)
>
Reviewed-by: Rob Herring <robh@kernel.org>
@@ -75,13 +75,20 @@ properties:
power-domains:
maxItems: 1
+ samsung,pmu-syscon:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description:
+ Power Management Unit (PMU) system controller interface, used to
+ power/start the ISP.
+
patternProperties:
"^pmu@[0-9a-f]+$":
type: object
additionalProperties: false
+ deprecated: true
description:
Node representing the SoC's Power Management Unit (duplicated with the
- correct PMU node in the SoC).
+ correct PMU node in the SoC). Deprecated, use samsung,pmu-syscon.
properties:
reg:
@@ -131,6 +138,7 @@ required:
- clock-names
- interrupts
- ranges
+ - samsung,pmu-syscon
- '#size-cells'
additionalProperties: false
@@ -179,15 +187,12 @@ examples:
<&sysmmu_fimc_fd>, <&sysmmu_fimc_mcuctl>;
iommu-names = "isp", "drc", "fd", "mcuctl";
power-domains = <&pd_isp>;
+ samsung,pmu-syscon = <&pmu_system_controller>;
#address-cells = <1>;
#size-cells = <1>;
ranges;
- pmu@10020000 {
- reg = <0x10020000 0x3000>;
- };
-
i2c-isp@12140000 {
compatible = "samsung,exynos4212-i2c-isp";
reg = <0x12140000 0x100>;
@@ -236,15 +236,12 @@ examples:
<&sysmmu_fimc_fd>, <&sysmmu_fimc_mcuctl>;
iommu-names = "isp", "drc", "fd", "mcuctl";
power-domains = <&pd_isp>;
+ samsung,pmu-syscon = <&pmu_system_controller>;
#address-cells = <1>;
#size-cells = <1>;
ranges;
- pmu@10020000 {
- reg = <0x10020000 0x3000>;
- };
-
i2c-isp@12140000 {
compatible = "samsung,exynos4212-i2c-isp";
reg = <0x12140000 0x100>;