The RK3399's MIPI DSI has 2 ports: in an out. The definition of
the port property necessitates the value of #address-cells to be 1.
Signed-off-by: Olivier Benjamin <olivier.benjamin@bootlin.com>
---
arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
index 5ebc380a24df86ba7172b0950b89cac56b61c507..5a7341fb6bcb0613af6f3ac31d99355a0f890e89 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
@@ -468,7 +468,7 @@ &mipi_dsi {
ports {
mipi_out: port@1 {
- #address-cells = <0>;
+ #address-cells = <1>;
#size-cells = <0>;
reg = <1>;
--
2.49.0
Hi (again),
On Wed Jun 18, 2025 at 12:32 AM CEST, Olivier Benjamin wrote:
> The RK3399's MIPI DSI has 2 ports: in an out. The definition of
> the port property necessitates the value of #address-cells to be 1.
>
> Signed-off-by: Olivier Benjamin <olivier.benjamin@bootlin.com>
> ---
> arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
> index 5ebc380a24df86ba7172b0950b89cac56b61c507..5a7341fb6bcb0613af6f3ac31d99355a0f890e89 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
> +++ b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
> @@ -468,7 +468,7 @@ &mipi_dsi {
>
> ports {
> mipi_out: port@1 {
> - #address-cells = <0>;
> + #address-cells = <1>;
> #size-cells = <0>;
> reg = <1>;
>
In rk3399-base.dtsi there is already a definition for mipi-in and
mipi-out. AFAICT what this change does is require a reg property on the
endpoint and I don't think that's correct.
It seems to me that all you need is a mipi_out_panel definition.
So what I came up with is this:
```sh
$ git diff
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
index 04ba4c4565d0..b175aeed99e2 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
@@ -466,18 +466,6 @@ &mipi_dsi {
status = "okay";
clock-master;
- ports {
- mipi_out: port@1 {
- #address-cells = <0>;
- #size-cells = <0>;
- reg = <1>;
-
- mipi_out_panel: endpoint {
- remote-endpoint = <&mipi_in_panel>;
- };
- };
- };
-
panel@0 {
compatible = "hannstar,hsd060bhw4";
reg = <0>;
@@ -495,6 +483,12 @@ mipi_in_panel: endpoint {
};
};
+&mipi_out {
+ mipi_out_panel: endpoint {
+ remote-endpoint = <&mipi_in_panel>;
+ };
+};
+
&pmu_io_domains {
pmu1830-supply = <&vcc_1v8>;
status = "okay";
```
I don't have a PPP so I can't verify it, but ``make CHECK_DTBS=y W=1
rockchip/rk3399-pinephone-pro.dtb`` no longer reports issues wrt
dsi@ff960000 (after I also fixed the panel compatible like in patch 1
and added a LCD1_RST pinctrl definition as indicated in my reply to
patch 3).
Cheers,
Diederik
On 6/18/25 15:50, Diederik de Haas wrote:
> Hi (again),
>
Hello again, I appreciate you taking the time!
> On Wed Jun 18, 2025 at 12:32 AM CEST, Olivier Benjamin wrote:
>> The RK3399's MIPI DSI has 2 ports: in an out. The definition of
>> the port property necessitates the value of #address-cells to be 1.
>>
>> Signed-off-by: Olivier Benjamin <olivier.benjamin@bootlin.com>
>> ---
>> arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
>> index 5ebc380a24df86ba7172b0950b89cac56b61c507..5a7341fb6bcb0613af6f3ac31d99355a0f890e89 100644
>> --- a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
>> +++ b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
>> @@ -468,7 +468,7 @@ &mipi_dsi {
>>
>> ports {
>> mipi_out: port@1 {
>> - #address-cells = <0>;
>> + #address-cells = <1>;
>> #size-cells = <0>;
>> reg = <1>;
>>
>
> In rk3399-base.dtsi there is already a definition for mipi-in and
> mipi-out. AFAICT what this change does is require a reg property on the
> endpoint and I don't think that's correct.
>
Those definitions do indeed exist in the base DTSI.
> It seems to me that all you need is a mipi_out_panel definition.
> So what I came up with is this:
>
> ```sh
> $ git diff
> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
> index 04ba4c4565d0..b175aeed99e2 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
> +++ b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
> @@ -466,18 +466,6 @@ &mipi_dsi {
> status = "okay";
> clock-master;
>
> - ports {
> - mipi_out: port@1 {
> - #address-cells = <0>;
> - #size-cells = <0>;
> - reg = <1>;
> -
> - mipi_out_panel: endpoint {
> - remote-endpoint = <&mipi_in_panel>;
> - };
> - };
> - };
> -
> panel@0 {
> compatible = "hannstar,hsd060bhw4";
> reg = <0>;
> @@ -495,6 +483,12 @@ mipi_in_panel: endpoint {
> };
> };
>
> +&mipi_out {
> + mipi_out_panel: endpoint {
> + remote-endpoint = <&mipi_in_panel>;
> + };
> +};
> +
> &pmu_io_domains {
> pmu1830-supply = <&vcc_1v8>;
> status = "okay";
> ```
>
Thanks for the suggestion, that looks like it might actually solve the
issue.
> I don't have a PPP so I can't verify it, but ``make CHECK_DTBS=y W=1
> rockchip/rk3399-pinephone-pro.dtb`` no longer reports issues wrt
> dsi@ff960000 (after I also fixed the panel compatible like in patch 1
> and added a LCD1_RST pinctrl definition as indicated in my reply to
> patch 3).
>
I'll test on my PPP and report back in v2.
> Cheers,
> Diederik
--
Olivier Benjamin, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
© 2016 - 2026 Red Hat, Inc.