On Wed, Feb 07, 2024 at 02:13:05PM +0100, Krzysztof Hałasa wrote: > Laurent, > > Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> writes: > > >> +++ b/drivers/media/i2c/adv7604.c > >> @@ -3205,7 +3205,7 @@ static int adv76xx_parse_dt(struct adv76xx_state *state) > >> np = state->i2c_clients[ADV76XX_PAGE_IO]->dev.of_node; > >> > >> /* Parse the endpoint. */ > >> - endpoint = of_graph_get_next_endpoint(np, NULL); > >> + endpoint = of_graph_get_endpoint_by_regs(np, 0, -1); > > > > I think this should be port 1 for the adv7611 and port2 for the adv7612. > > The adv7610 may need to use port 1 too, but the bindings likely need to > > be updated. > > To be honest I have no idea about ADV7611 and 7612. > The 7610 I have on Tinyrex "mobo" seems to be single port. One issue is that the commit that added the adv7610 compatible string to the DT bindings (commit 901a52c43359, "media: Add ADV7610 support for adv7604 driver - DT docs.") didn't extend the conditional rules further down in the file that defines what ports are needed. That's why I don't know what was intended. I believe the adv7610 should be treated like the adv7611, given that the driver has { .compatible = "adi,adv7610", .data = &adv76xx_chip_info[ADV7611] }, { .compatible = "adi,adv7611", .data = &adv76xx_chip_info[ADV7611] }, Could you send a patch to address that in the DT bindings ? > ADV7611 seems to be mostly a 7610 in a different package (LQFP 64 > instead of some BGA 76). The driver simply treats ADV7610 as a 7611. > > ADV7612 is apparently dual port (only one port can be used at a time) > though: > > [ADV7612] = { > .type = ADV7612, > .has_afe = false, > .max_port = ADV76XX_PAD_HDMI_PORT_A, /* B not supported */ > .num_dv_ports = 1, /* normally 2 */ > > > All related in-tree DTS entries (as of v6.8.0-rc1) seem to be ADV7612. > > To me it seems all known devices use the first port only. -- Regards, Laurent Pinchart