This patchset factorizes the legacy DSA probing and the new MDIO probing functions with a few helpers.
This will allow us to use a compatible chip info to describe how to access the SMI device and its switch ID register at probe time. For the legacy probe, we fix the compatible info to 88E6085. For the MDIO probe, we will use the compatible info from the device node data. The first 5 patches are already reviewed. The next 3 patches are cosmetics, with no functional changes. The next 4 patches add probe helpers and pass the compatible info. The last 2 patches extend the info structure to store the SMI access mode and the location of the switch ID register. Changes since v2 [2]: - do not guess compatible model in legacy probe - add low level SMI API using a chip structure - allocate before probe and detection - add 3 cosmetic patches Changes since v1 [1]: - merge style fix from Ben Dooks - add Acked-by/Reviewed-by tags - drop one compatible string per model - detect the SMI device based on the compatible info - add an SMI ops structure [1] https://lkml.org/lkml/2016/6/8/1201 [2] https://lkml.org/lkml/2016/6/14/671 Vivien Didelot (14): net: dsa: mv88e6xxx: fix style issues net: dsa: mv88e6xxx: remove redundant assignments net: dsa: mv88e6xxx: use already declared variables net: dsa: mv88e6xxx: do not increment bus refcount net: dsa: mv88e6xxx: add switch register helpers net: dsa: mv88e6xxx: use gpio get optional variant net: dsa: mv88e6xxx: remove table args in info lookup net: dsa: mv88e6xxx: rename smi_mutex to reg_lock net: dsa: mv88e6xxx: add chip allocation helper net: dsa: mv88e6xxx: add SMI init helper net: dsa: mv88e6xxx: add detection helper net: dsa: mv88e6xxx: pass compatible info net: dsa: mv88e6xxx: add addressing mode to info net: dsa: mv88e6xxx: add port base address to info drivers/net/dsa/mv88e6xxx.c | 508 ++++++++++++++++++++++++++++---------------- drivers/net/dsa/mv88e6xxx.h | 27 ++- 2 files changed, 343 insertions(+), 192 deletions(-) -- 2.8.3