• Vladimir Oltean's avatar
    net: mscc: ocelot: convert QSYS_SWITCH_PORT_MODE and SYS_PORT_MODE to regfields · 886e1387
    Vladimir Oltean authored
    Currently Felix and Ocelot share the same bit layout in these per-port
    registers, but Seville does not. So we need reg_fields for that.
    
    Actually since these are per-port registers, we need to also specify the
    number of ports, and register size per port, and use the regmap API for
    multiple ports.
    
    There's a more subtle point to be made about the other 2 register
    fields:
    - QSYS_SWITCH_PORT_MODE_SCH_NEXT_CFG
    - QSYS_SWITCH_PORT_MODE_INGRESS_DROP_MODE
    which we are not writing any longer, for 2 reasons:
    - Using the previous API (ocelot_write_rix), we were only writing 1 for
      Felix and Ocelot, which was their hardware-default value, and which
      there wasn't any intention in changing.
    - In the case of SCH_NEXT_CFG, in fact Seville does not have this
      register field at all, and therefore, if we want to have common code
      we would be required to not write to it.
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    886e1387
ocelot_io.c 2.8 KB