[PATCH] arm64: dts: imx8mp-evk: Specify ADV7535 register addresses

Liu Ying posted 1 patch 1 week, 3 days ago
arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH] arm64: dts: imx8mp-evk: Specify ADV7535 register addresses
Posted by Liu Ying 1 week, 3 days ago
MIPI DSI to HDMI bridge ADV7535 CEC default register address is 0x3c
on an I2C bus.  And, OV5640 camera uses the same address on the same
I2C bus.  To resolve this conflict, use 0x3b as ADV7535 CEC register
address by specifying all ADV7535 register addresses.

Fixes: 6f6c18cba16f ("arm64: dts: imx8mp-evk: add camera ov5640 and related nodes")
Signed-off-by: Liu Ying <victor.liu@nxp.com>
---
 arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
index aedc09937716..d0a2bd975a18 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
@@ -602,7 +602,8 @@ ov5640_mipi_0_ep: endpoint {
 
 	hdmi@3d {
 		compatible = "adi,adv7535";
-		reg = <0x3d>;
+		reg = <0x3d>, <0x3f>, <0x3b>, <0x38>;
+		reg-names = "main", "edid", "cec", "packet";
 		interrupt-parent = <&gpio1>;
 		interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
 		adi,dsi-lanes = <4>;

---
base-commit: 09c0f7f1bcdbc3c37a5a760cbec76bf18f278406
change-id: 20260324-imx8mp-evk-adv7535-cec-reg-addr-2de67760133a

Best regards,
-- 
Liu Ying <victor.liu@nxp.com>
Re: [PATCH] arm64: dts: imx8mp-evk: Specify ADV7535 register addresses
Posted by Frank Li 1 week, 1 day ago
On Tue, 24 Mar 2026 13:52:03 +0800, Liu Ying wrote:
> MIPI DSI to HDMI bridge ADV7535 CEC default register address is 0x3c
> on an I2C bus.  And, OV5640 camera uses the same address on the same
> I2C bus.  To resolve this conflict, use 0x3b as ADV7535 CEC register
> address by specifying all ADV7535 register addresses.
> 
> 

Applied, thanks!

[1/1] arm64: dts: imx8mp-evk: Specify ADV7535 register addresses
      commit: 9f9dd832661b62091f75b88b8467d8441b546cf7

Best regards,
-- 
Frank Li <Frank.Li@nxp.com>
Re: [PATCH] arm64: dts: imx8mp-evk: Specify ADV7535 register addresses
Posted by Frank Li 1 week, 2 days ago
On Tue, Mar 24, 2026 at 01:52:03PM +0800, Liu Ying wrote:
> MIPI DSI to HDMI bridge ADV7535 CEC default register address is 0x3c
> on an I2C bus.  And, OV5640 camera uses the same address on the same
> I2C bus.  To resolve this conflict, use 0x3b as ADV7535 CEC register
> address by specifying all ADV7535 register addresses.

Does cec start address programmable?  generally i2c address is fixed or
controller by some gpio.

Frank
>
> Fixes: 6f6c18cba16f ("arm64: dts: imx8mp-evk: add camera ov5640 and related nodes")
> Signed-off-by: Liu Ying <victor.liu@nxp.com>
> ---
>  arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
> index aedc09937716..d0a2bd975a18 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
> @@ -602,7 +602,8 @@ ov5640_mipi_0_ep: endpoint {
>
>  	hdmi@3d {
>  		compatible = "adi,adv7535";
> -		reg = <0x3d>;
> +		reg = <0x3d>, <0x3f>, <0x3b>, <0x38>;
> +		reg-names = "main", "edid", "cec", "packet";
>  		interrupt-parent = <&gpio1>;
>  		interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
>  		adi,dsi-lanes = <4>;
>
> ---
> base-commit: 09c0f7f1bcdbc3c37a5a760cbec76bf18f278406
> change-id: 20260324-imx8mp-evk-adv7535-cec-reg-addr-2de67760133a
>
> Best regards,
> --
> Liu Ying <victor.liu@nxp.com>
>
Re: [PATCH] arm64: dts: imx8mp-evk: Specify ADV7535 register addresses
Posted by Liu Ying 1 week, 2 days ago
Hi Frank,

On Tue, Mar 24, 2026 at 10:42:59AM -0400, Frank Li wrote:
> On Tue, Mar 24, 2026 at 01:52:03PM +0800, Liu Ying wrote:
>> MIPI DSI to HDMI bridge ADV7535 CEC default register address is 0x3c
>> on an I2C bus.  And, OV5640 camera uses the same address on the same
>> I2C bus.  To resolve this conflict, use 0x3b as ADV7535 CEC register
>> address by specifying all ADV7535 register addresses.
> 
> Does cec start address programmable?  generally i2c address is fixed or
> controller by some gpio.

Yes, it's programmable.  Quote adi,adv7533.yaml:

  reg:
    description: |
      I2C slave addresses.

      The ADV7533/35 internal registers are split into four pages
      exposed through different I2C addresses, creating four register
      maps. Each map has it own I2C address and acts as a standard slave
      device on the I2C bus. The main address is mandatory, others are
      optional and revert to defaults if not specified.
    minItems: 1
    maxItems: 4

  reg-names:
    description:
      Names of maps with programmable addresses. It can contain any map
      needing a non-default address.
    minItems: 1
    items:
      - const: main
      - const: edid
      - const: cec
      - const: packet

> 
> Frank
>>
>> Fixes: 6f6c18cba16f ("arm64: dts: imx8mp-evk: add camera ov5640 and related nodes")
>> Signed-off-by: Liu Ying <victor.liu@nxp.com>
>> ---
>>  arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
>> index aedc09937716..d0a2bd975a18 100644
>> --- a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
>> +++ b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
>> @@ -602,7 +602,8 @@ ov5640_mipi_0_ep: endpoint {
>>
>>  	hdmi@3d {
>>  		compatible = "adi,adv7535";
>> -		reg = <0x3d>;
>> +		reg = <0x3d>, <0x3f>, <0x3b>, <0x38>;
>> +		reg-names = "main", "edid", "cec", "packet";
>>  		interrupt-parent = <&gpio1>;
>>  		interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
>>  		adi,dsi-lanes = <4>;
>>
>> ---
>> base-commit: 09c0f7f1bcdbc3c37a5a760cbec76bf18f278406
>> change-id: 20260324-imx8mp-evk-adv7535-cec-reg-addr-2de67760133a
>>
>> Best regards,
>> --
>> Liu Ying <victor.liu@nxp.com>
>>

-- 
Regards,
Liu Ying