RE: [PATCH 3/8] dt-bindings: media: nxp: Add Wave6 video codec device
From: Nas Chung
Date: Thu Feb 20 2025 - 02:36:19 EST
Hi, Krzysztof.
>-----Original Message-----
>From: Krzysztof Kozlowski <krzk@xxxxxxxxxx>
>Sent: Wednesday, February 19, 2025 9:32 PM
>To: Nas Chung <nas.chung@xxxxxxxxxxxxxxx>
>Cc: mchehab@xxxxxxxxxx; hverkuil@xxxxxxxxx; sebastian.fricke@xxxxxxxxxxxxx;
>robh@xxxxxxxxxx; krzk+dt@xxxxxxxxxx; conor+dt@xxxxxxxxxx; linux-
>media@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; linux-
>kernel@xxxxxxxxxxxxxxx; linux-imx@xxxxxxx; linux-arm-
>kernel@xxxxxxxxxxxxxxxxxxx; jackson.lee <jackson.lee@xxxxxxxxxxxxxxx>;
>lafley.kim <lafley.kim@xxxxxxxxxxxxxxx>
>Subject: Re: [PATCH 3/8] dt-bindings: media: nxp: Add Wave6 video codec
>device
>
>On 18/02/2025 10:21, Nas Chung wrote:
>> 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.
>
>> 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>;
clock-names = "vpu", "vpublk_wave";
power-domains = <&scmi_devpd 21>;
};
vpucore1: vpu-core@10000 {
compatible = "nxp,imx95-vpu-core";
reg = <0x10000 0x10000>;
interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&scmi_clk 115>,
<&vpu_blk_ctrl IMX95_CLK_VPUBLK_WAVE>;
clock-names = "vpu", "vpublk_wave";
power-domains = <&scmi_devpd 21>;
};
vpucore2: vpu-core@20000 {
compatible = "nxp,imx95-vpu-core";
reg = <0x20000 0x10000>;
interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&scmi_clk 115>,
<&vpu_blk_ctrl IMX95_CLK_VPUBLK_WAVE>;
clock-names = "vpu", "vpublk_wave";
power-domains = <&scmi_devpd 21>;
};
vpucore3: vpu-core@30000 {
compatible = "nxp,imx95-vpu-core";
reg = <0x30000 0x10000>;
interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&scmi_clk 115>,
<&vpu_blk_ctrl IMX95_CLK_VPUBLK_WAVE>;
clock-names = "vpu", "vpublk_wave";
power-domains = <&scmi_devpd 21>;
};
};
Thanks.
Nas.
>
>Best regards,
>Krzysztof