diff --git a/drivers/mfd/rk630-i2c.c b/drivers/mfd/rk630-i2c.c index 9636458e137a..a6b0522bdd43 100644 --- a/drivers/mfd/rk630-i2c.c +++ b/drivers/mfd/rk630-i2c.c @@ -56,6 +56,13 @@ rk630_i2c_probe(struct i2c_client *client, const struct i2c_device_id *id) return ret; } + rk630->efuse = devm_regmap_init_i2c(client, &rk630_efuse_regmap_config); + if (IS_ERR(rk630->efuse)) { + ret = PTR_ERR(rk630->efuse); + dev_err(dev, "failed to allocate efuse register map: %d\n", ret); + return ret; + } + rk630->irq = client->irq; return rk630_core_probe(rk630); diff --git a/drivers/mfd/rk630-spi.c b/drivers/mfd/rk630-spi.c index b12843c583de..aae0f12fa0aa 100644 --- a/drivers/mfd/rk630-spi.c +++ b/drivers/mfd/rk630-spi.c @@ -221,6 +221,16 @@ rk630_spi_probe(struct spi_device *spi) ret); return ret; } + + rk630->efuse = devm_regmap_init(&spi->dev, &rk630_regmap, + &spi->dev, &rk630_efuse_regmap_config); + if (IS_ERR(rk630->efuse)) { + ret = PTR_ERR(rk630->efuse); + dev_err(rk630->dev, "Failed to initialize efuse regmap: %d\n", + ret); + return ret; + } + rk630->irq = spi->irq; ret = rk630_core_probe(rk630); diff --git a/drivers/mfd/rk630.c b/drivers/mfd/rk630.c index 788c09ef3923..220b6f0d8dd9 100644 --- a/drivers/mfd/rk630.c +++ b/drivers/mfd/rk630.c @@ -123,6 +123,10 @@ static const struct regmap_irq_chip rk630_irq_chip = { }; static const struct mfd_cell rk630_devs[] = { + { + .name = "rk630-efuse", + .of_compatible = "rockchip,rk630-efuse", + }, { .name = "rk630-tve", .of_compatible = "rockchip,rk630-tve",