Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0dae7f58 authored by Matti Vaittinen's avatar Matti Vaittinen Committed by Lee Jones
Browse files

clk: bd718x7: Support ROHM BD70528 clk block



ROHM BD70528 is an ultra low power PMIC with similar 32K clk as
bd718x7. Only difference (from clk perspective) is register address.
Add support for controlling BD70528 clk using bd718x7 driver.

Signed-off-by: default avatarMatti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
Acked-by: default avatarStephen Boyd <sboyd@kernel.org>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
parent 21b7c58f
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -293,10 +293,10 @@ config COMMON_CLK_STM32H7

config COMMON_CLK_BD718XX
	tristate "Clock driver for ROHM BD718x7 PMIC"
	depends on MFD_ROHM_BD718XX
	depends on MFD_ROHM_BD718XX || MFD_ROHM_BD70528
	help
	  This driver supports ROHM BD71837 and ROHM BD71847
	  PMICs clock gates.
	  This driver supports ROHM BD71837, ROHM BD71847 and
	  ROHM BD70528 PMICs clock gates.

config COMMON_CLK_FIXED_MMIO
	bool "Clock driver for Memory Mapped Fixed values"
+16 −4
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <linux/mfd/rohm-bd718x7.h>
#include <linux/mfd/rohm-bd70528.h>
#include <linux/clk-provider.h>
#include <linux/clkdev.h>
#include <linux/regmap.h>
@@ -86,9 +87,20 @@ static int bd71837_clk_probe(struct platform_device *pdev)
		dev_err(&pdev->dev, "No parent clk found\n");
		return -EINVAL;
	}

	switch (mfd->chip_type) {
	case ROHM_CHIP_TYPE_BD71837:
	case ROHM_CHIP_TYPE_BD71847:
		c->reg = BD718XX_REG_OUT32K;
		c->mask = BD718XX_OUT32K_EN;
		break;
	case ROHM_CHIP_TYPE_BD70528:
		c->reg = BD70528_REG_CLK_OUT;
		c->mask = BD70528_CLK_OUT_EN_MASK;
		break;
	default:
		dev_err(&pdev->dev, "Unknown clk chip\n");
		return -EINVAL;
	}
	c->mfd = mfd;
	c->pdev = pdev;
	c->hw.init = &init;
@@ -119,5 +131,5 @@ static struct platform_driver bd71837_clk = {
module_platform_driver(bd71837_clk);

MODULE_AUTHOR("Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>");
MODULE_DESCRIPTION("BD71837/BD71847 chip clk driver");
MODULE_DESCRIPTION("BD71837/BD71847/BD70528 chip clk driver");
MODULE_LICENSE("GPL");