[PATCH 09/14] net: ravb: Support up to two instances
Paul Barker
paul.barker.ct at bp.renesas.com
Thu Dec 5 20:12:27 CET 2024
Hi Marek,
On 28/10/2024 09:50, Paul Barker wrote:
> On 27/10/2024 16:25, Marek Vasut wrote:
>> On 10/24/24 5:24 PM, Paul Barker wrote:
>>> int ravb_of_to_plat(struct udevice *dev)
>>> {
>>> struct eth_pdata *pdata = dev_get_plat(dev);
>>> - const fdt32_t *cell;
>>> +
>>> + if (bb_miiphy_index >= bb_miiphy_buses_num) {
>>> + dev_err(dev, "ravb driver supports only 1 or 2 devices!\n");
>> Hmmmm, I really do not like this, can we make this dynamic ?
>>
>> Unless you want to take a look at this yourself, I can add it into my todo ?
>
> I think the real solution here would be to separate the bb_miiphy
> operations from the bus instance, so we would have something like:
>
> struct bb_miiphy_bus {
> struct bb_miiphy_ops *ops;
> void *priv;
> };
>
> struct bb_miiphy_ops {
> int (*init)(struct bb_miiphy_bus *bus);
> int (*mdio_active)(struct bb_miiphy_bus *bus);
> int (*mdio_tristate)(struct bb_miiphy_bus *bus);
> int (*set_mdio)(struct bb_miiphy_bus *bus, int v);
> int (*get_mdio)(struct bb_miiphy_bus *bus, int *v);
> int (*set_mdc)(struct bb_miiphy_bus *bus, int v);
> int (*delay)(struct bb_miiphy_bus *bus);
> };
>
> int bb_miiphy_bus_register(const char *name,
> struct bb_miiphy_ops *ops,
> void *priv);
>
> Where drivers will call `bb_miiphy_bus_register()` from the probe
> function, it will create a `struct bb_miiphy_bus` instance and a
> `struct mii_dev` instance then call `mdio_register()`. The driver can
> then support an arbitrary number of MDIO busses from a single constant
> `struct bb_miiphy_ops` instance.
>
> The bb_miiphy_getbus() function should be dropped from miiphy.c.
> Instead, the priv pointer in the `struct mii_dev` instance can point to
> the appropriate `struct bb_miiphy_bus` instance.
>
> It looks like all users of CONFIG_BITBANGMII also set
> CONFIG_BITBANGMII_MULTI, and there don't seem to be any targets that
> define the macros documented in README.bitbangMII (lines 15-22). So, we
> can drop the non-BITBANGMII_MULTI code from miiphybb.c and simplify
> things a lot.
>
> That's non-trivial but it's not a huge set of changes, maybe something
> we could target for v2024.04?
We've got several of the other patches from this series merged now after
v2 so I'm coming back to this one. I think we should take this patch
as-is and then follow up with general improvements to the bb_miiphy
support. Are you happy with that? If so I will re-send it along with a
re-worked version of patch 11 from this series (net: ravb: Add RZ/G2L
Support).
Thanks,
--
Paul Barker
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0x27F4B3459F002257.asc
Type: application/pgp-keys
Size: 3520 bytes
Desc: OpenPGP public key
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20241205/a82e7ec6/attachment-0001.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 236 bytes
Desc: OpenPGP digital signature
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20241205/a82e7ec6/attachment-0001.sig>
More information about the U-Boot
mailing list