mfd: ocelot: add ocelot-serdes capability

Add support for the Ocelot SERDES module to support functionality of all
non-internal phy ports.

Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Colin Foster 2023-03-17 11:54:08 -07:00 committed by David S. Miller
parent 672faa7bbf
commit c21ff0939d
1 changed files with 13 additions and 0 deletions

View File

@ -45,6 +45,9 @@
#define VSC7512_SIO_CTRL_RES_START 0x710700f8 #define VSC7512_SIO_CTRL_RES_START 0x710700f8
#define VSC7512_SIO_CTRL_RES_SIZE 0x00000100 #define VSC7512_SIO_CTRL_RES_SIZE 0x00000100
#define VSC7512_HSIO_RES_START 0x710d0000
#define VSC7512_HSIO_RES_SIZE 0x00000128
#define VSC7512_ANA_RES_START 0x71880000 #define VSC7512_ANA_RES_START 0x71880000
#define VSC7512_ANA_RES_SIZE 0x00010000 #define VSC7512_ANA_RES_SIZE 0x00010000
@ -129,8 +132,13 @@ static const struct resource vsc7512_sgpio_resources[] = {
DEFINE_RES_REG_NAMED(VSC7512_SIO_CTRL_RES_START, VSC7512_SIO_CTRL_RES_SIZE, "gcb_sio"), DEFINE_RES_REG_NAMED(VSC7512_SIO_CTRL_RES_START, VSC7512_SIO_CTRL_RES_SIZE, "gcb_sio"),
}; };
static const struct resource vsc7512_serdes_resources[] = {
DEFINE_RES_REG_NAMED(VSC7512_HSIO_RES_START, VSC7512_HSIO_RES_SIZE, "hsio"),
};
static const struct resource vsc7512_switch_resources[] = { static const struct resource vsc7512_switch_resources[] = {
DEFINE_RES_REG_NAMED(VSC7512_ANA_RES_START, VSC7512_ANA_RES_SIZE, "ana"), DEFINE_RES_REG_NAMED(VSC7512_ANA_RES_START, VSC7512_ANA_RES_SIZE, "ana"),
DEFINE_RES_REG_NAMED(VSC7512_HSIO_RES_START, VSC7512_HSIO_RES_SIZE, "hsio"),
DEFINE_RES_REG_NAMED(VSC7512_QS_RES_START, VSC7512_QS_RES_SIZE, "qs"), DEFINE_RES_REG_NAMED(VSC7512_QS_RES_START, VSC7512_QS_RES_SIZE, "qs"),
DEFINE_RES_REG_NAMED(VSC7512_QSYS_RES_START, VSC7512_QSYS_RES_SIZE, "qsys"), DEFINE_RES_REG_NAMED(VSC7512_QSYS_RES_START, VSC7512_QSYS_RES_SIZE, "qsys"),
DEFINE_RES_REG_NAMED(VSC7512_REW_RES_START, VSC7512_REW_RES_SIZE, "rew"), DEFINE_RES_REG_NAMED(VSC7512_REW_RES_START, VSC7512_REW_RES_SIZE, "rew"),
@ -176,6 +184,11 @@ static const struct mfd_cell vsc7512_devs[] = {
.use_of_reg = true, .use_of_reg = true,
.num_resources = ARRAY_SIZE(vsc7512_miim1_resources), .num_resources = ARRAY_SIZE(vsc7512_miim1_resources),
.resources = vsc7512_miim1_resources, .resources = vsc7512_miim1_resources,
}, {
.name = "ocelot-serdes",
.of_compatible = "mscc,vsc7514-serdes",
.num_resources = ARRAY_SIZE(vsc7512_serdes_resources),
.resources = vsc7512_serdes_resources,
}, { }, {
.name = "ocelot-ext-switch", .name = "ocelot-ext-switch",
.of_compatible = "mscc,vsc7512-switch", .of_compatible = "mscc,vsc7512-switch",