mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 01:04:41 +01:00
rtc: bd70528: Support BD72720 rtc
The BD72720 has similar RTC block as a few other ROHM PMICs. Add support for BD72720 RTC. Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com> Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Link: https://patch.msgid.link/3241773f0f8e8d8e591a8e948495686cfdee4875.1765804226.git.mazziesaccount@gmail.com Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
parent
da4950b591
commit
0234e0033e
2 changed files with 16 additions and 8 deletions
|
|
@ -570,7 +570,8 @@ config RTC_DRV_BD70528
|
|||
depends on MFD_ROHM_BD71828
|
||||
help
|
||||
If you say Y here you will get support for the RTC
|
||||
block on ROHM BD71815 and BD71828 Power Management IC.
|
||||
block on ROHM BD71815, BD71828 and BD72720 Power
|
||||
Management ICs.
|
||||
|
||||
This driver can also be built as a module. If so, the module
|
||||
will be called rtc-bd70528.
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
#include <linux/bcd.h>
|
||||
#include <linux/mfd/rohm-bd71815.h>
|
||||
#include <linux/mfd/rohm-bd71828.h>
|
||||
#include <linux/mfd/rohm-bd72720.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
|
@ -262,13 +263,13 @@ static int bd70528_probe(struct platform_device *pdev)
|
|||
|
||||
/*
|
||||
* See also BD718XX_ALM_EN_OFFSET:
|
||||
* This works for BD71828 and BD71815 as they have same offset
|
||||
* between ALM0 start and ALM0_MASK. If new ICs are to be
|
||||
* added this requires proper check as ALM0_MASK is not located
|
||||
* at the end of ALM0 block - but after all ALM blocks so if
|
||||
* amount of ALMs differ the offset to enable/disable is likely
|
||||
* to be incorrect and enable/disable must be given as own
|
||||
* reg address here.
|
||||
* This works for BD71828, BD71815, and BD72720 as they all
|
||||
* have same offset between the ALM0 start and the ALM0_MASK.
|
||||
* If new ICs are to be added this requires proper check as
|
||||
* the ALM0_MASK is not located at the end of ALM0 block -
|
||||
* but after all ALM blocks. If amount of ALMs differ, the
|
||||
* offset to enable/disable is likely to be incorrect and
|
||||
* enable/disable must be given as own reg address here.
|
||||
*/
|
||||
bd_rtc->bd718xx_alm_block_start = BD71815_REG_RTC_ALM_START;
|
||||
hour_reg = BD71815_REG_HOUR;
|
||||
|
|
@ -278,6 +279,11 @@ static int bd70528_probe(struct platform_device *pdev)
|
|||
bd_rtc->bd718xx_alm_block_start = BD71828_REG_RTC_ALM_START;
|
||||
hour_reg = BD71828_REG_RTC_HOUR;
|
||||
break;
|
||||
case ROHM_CHIP_TYPE_BD72720:
|
||||
bd_rtc->reg_time_start = BD72720_REG_RTC_START;
|
||||
bd_rtc->bd718xx_alm_block_start = BD72720_REG_RTC_ALM_START;
|
||||
hour_reg = BD72720_REG_RTC_HOUR;
|
||||
break;
|
||||
default:
|
||||
dev_err(&pdev->dev, "Unknown chip\n");
|
||||
return -ENOENT;
|
||||
|
|
@ -337,6 +343,7 @@ static int bd70528_probe(struct platform_device *pdev)
|
|||
static const struct platform_device_id bd718x7_rtc_id[] = {
|
||||
{ "bd71828-rtc", ROHM_CHIP_TYPE_BD71828 },
|
||||
{ "bd71815-rtc", ROHM_CHIP_TYPE_BD71815 },
|
||||
{ "bd72720-rtc", ROHM_CHIP_TYPE_BD72720 },
|
||||
{ },
|
||||
};
|
||||
MODULE_DEVICE_TABLE(platform, bd718x7_rtc_id);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue