Thread (29 messages) 29 messages, 5 authors, 2025-02-21

Re: [PATCH 3/8] dt-bindings: media: nxp: Add Wave6 video codec device

From: Krzysztof Kozlowski <krzk@kernel.org>
Date: 2025-02-20 08:32:11
Also in: linux-devicetree, linux-media, lkml

On 20/02/2025 08:35, Nas Chung wrote:
Hi, Krzysztof.
quoted
-----Original Message-----
From: Krzysztof Kozlowski <krzk@kernel.org>
Sent: Wednesday, February 19, 2025 9:32 PM
To: Nas Chung <nas.chung@chipsnmedia.com>
Cc: mchehab@kernel.org; hverkuil@xs4all.nl; sebastian.fricke@collabora.com;
robh@kernel.org; krzk+dt@kernel.org; conor+dt@kernel.org; linux-
media@vger.kernel.org; devicetree@vger.kernel.org; linux-
kernel@vger.kernel.org; linux-imx@nxp.com; linux-arm-
kernel@lists.infradead.org; jackson.lee [off-list ref];
lafley.kim [off-list ref]
Subject: Re: [PATCH 3/8] dt-bindings: media: nxp: Add Wave6 video codec
device

On 18/02/2025 10:21, Nas Chung wrote:
quoted
For example:
vpu: video-codec@4c480000 {
        compatible = "nxp,imx95-vpu";
        reg = <0x0 0x4c480000 0x0 0x50000>;
	ranges = <0x0 0x0 0x4c480000 0x50000>;

        vpuctrl: vpu-ctrl@40000 {
          compatible = "nxp,imx95-vpu-ctrl";
	  reg = <0x40000 0x10000>;
        };

        vpucore0: vpu-core@00000 {
          compatible = "nxp,imx95-vpu-core";
          reg = <0x00000 0x10000>;
        };

        vpucore1: vpu-core@10000 {
          compatible = "nxp,imx95-vpu-core";
          reg = <0x10000 0x10000>;
        };

        vpucore2: vpu-core@20000 {
          compatible = "nxp,imx95-vpu-core";
          reg = <0x20000 0x10000>;
        };

        vpucore3: vpu-core@30000 {
          compatible = "nxp,imx95-vpu-core";
Why do you need compatible here? Could it be anything else?
I will update the driver based on the final DT.
quoted
quoted
          reg = <0x30000 0x10000>;
Where is the rest of resources? You created children only for one
resource - address space?
Sorry for the confusion.
I believe the final example looks like the one below.

vpu: video-codec@4c480000 {
        compatible = "nxp,imx95-vpu";
        reg = <0x0 0x4c480000 0x0 0x50000>;
        ranges = <0x0 0x0 0x4c480000 0x50000>;

        vpuctrl: vpu-ctrl@40000 {
          compatible = "nxp,imx95-vpu-ctrl";
          reg = <0x40000 0x10000>;
          clocks = <&scmi_clk 115>,
                  <&vpu_blk_ctrl IMX95_CLK_VPUBLK_WAVE>;
          clock-names = "vpu", "vpublk_wave";
          power-domains = <&scmi_devpd 21>, <&scmi_perf 10>;
          power-domain-names = "vpumix", "vpuperf";
          memory-region = <&vpu_boot>;
          #cooling-cells = <2>;
          sram = <&sram1>;
        };

        vpucore0: vpu-core@00000 {
          compatible = "nxp,imx95-vpu-core";
          reg = <0x00000 0x10000>;
          interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
          clocks = <&scmi_clk 115>,
                  <&vpu_blk_ctrl IMX95_CLK_VPUBLK_WAVE>;

These are the same resources for every block so for entire device. Why
they are no in top level node?
          clock-names = "vpu", "vpublk_wave";
          power-domains = <&scmi_devpd 21>;
Same here

Everything else also looks duplicated... All my previous comments - from
first email - stand. Don't design DT to match your Linu driver structure.

Best regards,
Krzysztof
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help