Add support for MAX8997 Clock Driver
Subsystems (5)
cover Add support for MAX8997 Clock Driver
During recent test on Exynos4210 based Origen board, I observed RTC1 probe is failing giving following error message:
[ 2.195817] s3c-rtc 10070000.rtc: failed to find rtc source clock [ 2.200475] s3c-rtc: probe of 10070000.rtc failed with error -2 [ 2.206597] i2c /dev entries driver
This is mainly because S3C-RTC expects two clocks "rtc" and "rtc_src". In case of Origen board this second clock is supplied by MAX8997 clock oscillator.
This patch series modified MAX8997 MFD driver for supporting regmap, and adds max8997-clk driver. Also it documentation where-ever required and extends RTC node in exynos4210-origen.dts for supporting both clocks.
After this patch series, RTC is getting probed properly on Origen board.
This patch series is tested for SMP boot on Origen board.
Pankaj Dubey (6):
mfd: max8997: Initialize max8997 register map
dt-bindings: clk: max8997: Add DT binding documentation
clk: Add driver for Maxim-8997 PMIC clocks
ARM: dts: Add clock provider specific properties to max8997 node
mfd: max8997: Add max8997-clk name in mfd_cell
ARM: dts: Extend the S3C RTC node with rtc_src clock
.../devicetree/bindings/clock/maxim,max8997.txt | 44 +++++++++++++ .../bindings/regulator/max8997-regulator.txt | 3 + arch/arm/boot/dts/exynos4210-origen.dts | 6 +- arch/arm/boot/dts/exynos4210-trats.dts | 3 +- drivers/clk/Kconfig | 10 +++ drivers/clk/Makefile | 1 + drivers/clk/clk-max8997.c | 76 ++++++++++++++++++++++ drivers/mfd/max8997.c | 15 +++++ include/dt-bindings/clock/maxim,max8997.h | 23 +++++++ include/linux/mfd/max8997-private.h | 3 + 10 files changed, 182 insertions(+), 2 deletions(-) create mode 100644 Documentation/devicetree/bindings/clock/maxim,max8997.txt create mode 100644 drivers/clk/clk-max8997.c create mode 100644 include/dt-bindings/clock/maxim,max8997.h
Signature · 1 line
2.7.4
PATCH 1/6 mfd: max8997: Initialize max8997 register map
This patch add regmap initialization to use register map in max8997-clk device driver
--- drivers/mfd/max8997.c | 14 ++++++++++++++ include/linux/mfd/max8997-private.h | 3 +++ 2 files changed, 17 insertions(+)
drivers/mfd/max8997.c +14 -0
@@ -175,11 +175,17 @@ static inline unsigned long max8997_i2c_get_driver_data(struct i2c_client *i2c,return id->driver_data; } +static const struct regmap_config max8997_regmap_config = { + .reg_bits =8 , + .val_bits =8 , +}; +static int max8997_i2c_probe (struct i2c_client *i2c,const struct i2c_device_id *id) {struct max8997_dev *max8997;struct max8997_platform_data *pdata =dev_get_platdata (&i2c->dev); +const struct regmap_config *config = &max8997_regmap_config;int ret =0 ; max8997 = devm_kzalloc(&i2c->dev, sizeof(struct max8997_dev),
@@ -202,6 +208,14 @@ static int max8997_i2c_probe(struct i2c_client *i2c,if (!pdata)return ret; + max8997->regmap =devm_regmap_init_i2c (i2c, config); +if (IS_ERR (max8997->regmap)) { + ret =PTR_ERR (max8997->regmap); +dev_err (max8997->dev,"Failed to allocate register map: %d\n" , + ret); +return ret; + } + max8997->pdata = pdata; max8997->ono = pdata->ono;
include/linux/mfd/max8997-private.h +3 -0
@@ -25,6 +25,7 @@#include <linux/i2c.h> #include <linux/export.h> #include <linux/irqdomain.h> +#include <linux/regmap.h> #define MAX8997_REG_INVALID (0xff)
@@ -388,6 +389,8 @@ struct max8997_dev {struct mutex iolock;unsigned long type; + +struct regmap *regmap;struct platform_device *battery;/* battery control (not fuel gauge) */ int irq;
Signature · 1 line
2.7.4
PATCH 1/6 mfd: max8997: Initialize max8997 register map
Hello Pankaj,
Quoted 6 lines · Pankaj Dubey
This patch add regmap initialization to use register map in max8997-clk device driver
CC Lee Jones <[email protected]>Signed-off-by Pankaj Dubey <[email protected]>---
Patch looks good to me. Now that the driver uses regmap, I think you should be able to get rid of drivers/mfd/max8997-irq.c and use the regmap IRQ chip like is done in most Maxim PMIC MFD drivers.
That can be done as a follow-up of this series though.
Best regards,
Signature · 3 lines
Javier Martinez Canillas Open Source Group Samsung Research America
PATCH 1/6 mfd: max8997: Initialize max8997 register map
Hi Javier,
Quoted 10 lines · Javier Martinez Canillas
Hello Pankaj,
Quoted 6 lines · Pankaj Dubey
This patch add regmap initialization to use register map in max8997-clk device driver
CC Lee Jones <[email protected]>Signed-off-by Pankaj Dubey <[email protected]>---
Quoted 8 lines
Patch looks good to me. Now that the driver uses regmap, I think you should be able to get rid of
drivers/mfd/max8997-irq.cand use the regmap IRQ chip like is done in most Maxim PMIC MFD drivers.That can be done as a follow-up of this series though.
Reviewed-by Javier Martinez Canillas <[email protected]>
Thanks for review.
You are right, that we can get rid of max8997-irq.c by using regmap IRQ chip, but I would like to take that as a separate follow-up series.
Thanks,
Pankaj Dubey
Quoted 9 lines
Best regards,
--
Javier Martinez Canillas
Open Source Group
Samsung Research America
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH 2/6 dt-bindings: clk: max8997: Add DT binding documentation
In reply to Pankaj DubeyAdd Device Tree binding documentation for the clocks outputs in the Maxim-8997 Power Management IC.
--- .../devicetree/bindings/clock/maxim,max8997.txt | 44 ++++++++++++++++++++++ .../bindings/regulator/max8997-regulator.txt | 3 ++ 2 files changed, 47 insertions(+) create mode 100644 Documentation/devicetree/bindings/clock/maxim,max8997.txt
Documentation/devicetree/bindings/clock/maxim,max8997.txt new file +44 -0
@@ -0,0 +1,44 @@ +Binding for Maxim MAX8997 32k clock generator block + +This is a part of device tree bindings of MAX8997 multi-function device. +More information can be found in bindings/regulator/max8997-regulator.txt file. + +The MAX8997 contains two 32.768khz clock outputs that can be controlled +(gated/ungated) over I2C. + +Following properties should be presend in main device node of the MFD chip. + +Required properties: + +- #clock-cells: from common clock binding; shall be set to 1. + +Optional properties: +- clock-output-names: From common clock binding. + +Each clock is assigned an identifier and client nodes can use this identifier +to specify the clock which they consume. Following indices are allowed: + - 0: 32khz_ap clock, + - 1: 32khz_cp clock, + +Clocks are defined as preprocessor macros in dt-bindings/clock/maxim,max8997.h +header and can be used in device tree sources. + +Example: Node of the MFD chip + + max8997: max8997_pmic at 66 { + compatible = "maxim,max8997-pmic"; + reg = <0x66>; + interrupt-parent = <&gpx0>; + interrupts = <4 0>, <3 0>; + #clock-cells = <1>; + /* ... */ + }; + +Example: Clock consumer node + + foo at 0 { + compatible = "bar,foo"; + /* ... */ + clocks = <&max8997 MAX8997_CLK_AP>; + clock-names = "my-clock"; + };
Documentation/devicetree/bindings/regulator/max8997-regulator.txt +3 -0
@@ -6,6 +6,9 @@ interfaced to the host controller using a i2c interface. Each sub-block is addressed by the host system using different i2c slave address. This document describes the bindings for 'pmic' sub-block of max8997. +Binding for the built-in 32k clock generator block is defined separately +in bindings/clk/maxim,max8997.txt file + Required properties: - compatible: Should be "maxim,max8997-pmic". - reg: Specifies the i2c slave address of the pmic block. It should be 0x66.
Signature · 1 line
2.7.4
PATCH 2/6 dt-bindings: clk: max8997: Add DT binding documentation
Hello Pankaj,
Quoted 9 lines · Pankaj Dubey
Add Device Tree binding documentation for the clocks outputs in the Maxim-8997 Power Management IC.
CC Michael Turquette <[email protected]>CC Rob Herring <[email protected]>CC devicetree at vger.kernel.orgCC linux-clk at vger.kernel.orgSigned-off-by Pankaj Dubey <[email protected]>---
Best regards,
Signature · 3 lines
Javier Martinez Canillas Open Source Group Samsung Research America
Rob Herring
maintainerPATCH 2/6 dt-bindings: clk: max8997: Add DT binding documentation
In reply to Pankaj DubeyQuoted 38 lines · Pankaj Dubey
Add Device Tree binding documentation for the clocks outputs in the Maxim-8997 Power Management IC.
CC Michael Turquette <[email protected]>CC Rob Herring <[email protected]>CC devicetree at vger.kernel.orgCC linux-clk at vger.kernel.orgSigned-off-by Pankaj Dubey <[email protected]>--- .../devicetree/bindings/clock/maxim,max8997.txt | 44 ++++++++++++++++++++++ .../bindings/regulator/max8997-regulator.txt | 3 ++ 2 files changed, 47 insertions(+) create mode 100644 Documentation/devicetree/bindings/clock/maxim,max8997.txtDocumentation/devicetree/bindings/clock/maxim,max8997.txt new file +18
-0@@ -0,0 +1,44 @@ +Binding for Maxim MAX8997 32k clock generator block + +This is a part of device tree bindings of MAX8997 multi-function device. +More information can be found in bindings/regulator/max8997-regulator.txt file. + +The MAX8997 contains two 32.768khz clock outputs that can be controlled +(gated/ungated) over I2C. + +Following properties should be presend in main device node of the MFD chip. + +Required properties: + +- #clock-cells: from common clock binding; shall be set to 1. + +Optional properties: +- clock-output-names: From common clock binding. + +Each clock is assigned an identifier and client nodes can use this identifier
Documentation/devicetree/bindings/clock/maxim,max8997.txt line 28
Quoted 10 lines
Documentation/devicetree/bindings/clock/maxim,max8997.txt new file +10
-0+to specify the clock which they consume. Following indices are allowed: + - 0: 32khz_ap clock, + - 1: 32khz_cp clock, + +Clocks are defined as preprocessor macros in dt-bindings/clock/maxim,max8997.h +header and can be used in device tree sources. + +Example: Node of the MFD chip + + max8997: max8997_pmic at 66 {
pmic at 66 {
With that:
PATCH 2/6 dt-bindings: clk: max8997: Add DT binding documentation
Hi Rob,
Quoted 52 lines · Rob Herring
Quoted 38 lines · Pankaj Dubey
Add Device Tree binding documentation for the clocks outputs in the Maxim-8997 Power Management IC.
CC Michael Turquette <[email protected]>CC Rob Herring <[email protected]>Signed-off-by Pankaj Dubey <[email protected]>--- .../devicetree/bindings/clock/maxim,max8997.txt | 44 ++++++++++++++++++++++ .../bindings/regulator/max8997-regulator.txt | 3 ++ 2 files changed, 47 insertions(+) create mode 100644 Documentation/devicetree/bindings/clock/maxim,max8997.txtDocumentation/devicetree/bindings/clock/maxim,max8997.txt new file +18
-0@@ -0,0 +1,44 @@ +Binding for Maxim MAX8997 32k clock generator block + +This is a part of device tree bindings of MAX8997 multi-function device. +More information can be found in bindings/regulator/max8997-regulator.txt file. + +The MAX8997 contains two 32.768khz clock outputs that can be controlled +(gated/ungated) over I2C. + +Following properties should be presend in main device node of the MFD chip. + +Required properties: + +- #clock-cells: from common clock binding; shall be set to 1. + +Optional properties: +- clock-output-names: From common clock binding. + +Each clock is assigned an identifier and client nodes can use this identifierDocumentation/devicetree/bindings/clock/maxim,max8997.txt line 28
Quoted 10 lines
Documentation/devicetree/bindings/clock/maxim,max8997.txt new file +10
-0+to specify the clock which they consume. Following indices are allowed: + - 0: 32khz_ap clock, + - 1: 32khz_cp clock, + +Clocks are defined as preprocessor macros in dt-bindings/clock/maxim,max8997.h +header and can be used in device tree sources. + +Example: Node of the MFD chip + + max8997: max8997_pmic@66 {pmic@66 {
Quoted 5 lines
With that:
Acked-by Rob Herring <[email protected]>
Thanks for review and ack.
With above mentioned change I will post v2 soon.
Thanks,
Pankaj Dubey
PATCH 3/6 clk: Add driver for Maxim-8997 PMIC clocks
In reply to Pankaj DubeyThe MAX8997 PMIC has 32.786kHz crystal oscillator which provides an accurate low frequency clock for MAX8997 internal circuit as well as external circuit. This patch adds support for these two clocks.
--- drivers/clk/Kconfig | 10 ++++ drivers/clk/Makefile | 1 + drivers/clk/clk-max8997.c | 76 +++++++++++++++++++++++++++++++ include/dt-bindings/clock/maxim,max8997.h | 23 ++++++++++ 4 files changed, 110 insertions(+) create mode 100644 drivers/clk/clk-max8997.c create mode 100644 include/dt-bindings/clock/maxim,max8997.h
drivers/clk/Kconfig +10 -0
@@ -48,6 +48,16 @@ config COMMON_CLK_MAX77802 ---help--- This driver supports Maxim 77802 crystal oscillator clock. +config COMMON_CLK_MAX8997 + tristate "Clock driver for Maxim 8997 MFD" + depends on MFD_MAX8997 + select COMMON_CLK_MAX_GEN + ---help--- + This driver supports Maxim 8997 crystal oscillator clock. + The 32.768kHz crystal oscillator clock provides an accurate + low frequency clock for MAX8997 internal circuit as well as + external circuit. + config COMMON_CLK_RK808 tristate "Clock driver for RK808/RK818" depends on MFD_RK808
drivers/clk/Makefile +1 -0
@@ -30,6 +30,7 @@ obj-$(CONFIG_MACH_LOONGSON32) += clk-ls1x.o obj-$(CONFIG_COMMON_CLK_MAX_GEN) += clk-max-gen.o obj-$(CONFIG_COMMON_CLK_MAX77686) += clk-max77686.o obj-$(CONFIG_COMMON_CLK_MAX77802) += clk-max77802.o +obj-$(CONFIG_COMMON_CLK_MAX8997) += clk-max8997.o obj-$(CONFIG_ARCH_MB86S7X) += clk-mb86s7x.o obj-$(CONFIG_ARCH_MOXART) += clk-moxart.o obj-$(CONFIG_ARCH_NOMADIK) += clk-nomadik.o
drivers/clk/clk-max8997.c new file +76 -0
76 lines not on this page · raw message
include/dt-bindings/clock/maxim,max8997.h new file +23 -0
@@ -0,0 +1,23 @@ +/* +* Copyright (c) 2016 Samsung Electronics Co., Ltd. +* Author: Pankaj Dubey <[email protected]> +* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. +* +* Device Tree binding constants clocks for the Maxim 8997 PMIC. +*/ + +#ifndef _DT_BINDINGS_CLOCK_MAXIM_MAX8997_CLOCK_H +#define _DT_BINDINGS_CLOCK_MAXIM_MAX8997_CLOCK_H + +/* Fixed rate clocks. */ + +#define MAX8997_CLK_AP 0 +#define MAX8997_CLK_CP 1 + +/* Total number of clocks. */ +#define MAX8997_CLKS_NUM (MAX8997_CLK_CP + 1) + +#endif /* _DT_BINDINGS_CLOCK_MAXIM_MAX8997_CLOCK_H */
Signature · 1 line
2.7.4
PATCH 3/6 clk: Add driver for Maxim-8997 PMIC clocks
Hello Pankaj,
Quoted 10 lines · Pankaj Dubey
The MAX8997 PMIC has 32.786kHz crystal oscillator which provides an accurate low frequency clock for MAX8997 internal circuit as well as external circuit. This patch adds support for these two clocks.
CC Michael Turquette <[email protected]>CC Rob Herring <[email protected]>CC devicetree at vger.kernel.orgCC linux-clk at vger.kernel.orgSigned-off-by Pankaj Dubey <[email protected]>---
What kernel version are you basing this on? The Maxim common clock code is going away for v4.9 and instead the clk-max77686 driver supports both 77686 and 77802 clocks. See commit 8ad313fe4e00 ("clk: max77686: Combine Maxim max77686 and max77802 driver").
Since the 8997 clock IP looks very similar to 77802 AFAICT, you should also extend the clk-max77686 driver to have 8997 support.
Best regards,
Signature · 3 lines
Javier Martinez Canillas Open Source Group Samsung Research America
PATCH 3/6 clk: Add driver for Maxim-8997 PMIC clocks
Hi Javier,
Quoted 7 lines · Javier Martinez Canillas
Hello Pankaj,
Quoted 4 lines · Pankaj Dubey
The MAX8997 PMIC has 32.786kHz crystal oscillator which provides an accurate low frequency clock for MAX8997 internal circuit as well as external circuit. This patch adds support for these two clocks.
Quoted 8 lines
Quoted 6 lines
CC Michael Turquette <[email protected]>CC Rob Herring <[email protected]>CC devicetree at vger.kernel.orgCC linux-clk at vger.kernel.orgSigned-off-by Pankaj Dubey <[email protected]>---
What kernel version are you basing this on? The Maxim common clock code
This patch series, I have prepared on Krzysztof's for-next which is 4.9-rc1,
Quoted 7 lines
is going away for v4.9 and instead the clk-max77686 driver supports both 77686 and 77802 clocks. See commit
8ad313fe4e00("clk: max77686: Combine Maxim max77686 and max77802 driver").Since the 8997 clock IP looks very similar to 77802 AFAICT, you should also extend the clk-max77686 driver to have 8997 support.
I was not aware of this change. I will check this and if I can reuse/extend max77686 for 8997 I will do it.
Thanks,
Pankaj Dubey
Quoted 10 lines
Best regards,
--
Javier Martinez Canillas
Open Source Group
Samsung Research America_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Krzysztof Kozlowski
maintainerPATCH 3/6 clk: Add driver for Maxim-8997 PMIC clocks
In reply to Pankaj DubeyQuoted 9 lines · Pankaj Dubey
The MAX8997 PMIC has 32.786kHz crystal oscillator which provides an accurate low frequency clock for MAX8997 internal circuit as well as external circuit. This patch adds support for these two clocks.
CC Michael Turquette <[email protected]>CC Rob Herring <[email protected]>CC devicetree at vger.kernel.orgCC linux-clk at vger.kernel.orgSigned-off-by Pankaj Dubey <[email protected]>
Quoted 5 lines
--- drivers/clk/Kconfig | 10 ++++ drivers/clk/Makefile | 1 + drivers/clk/clk-max8997.c | 76 +++++++++++++++++++++++++++++++ include/dt-bindings/clock/maxim,max8997.h | 23 ++++++++++
You need to split the dt-bindings header into separate one so others could pull it. Please also mention the dependencies between patches in cover letter, because it does not look like it could be applied as is.
Best regards,
Krzysztof
PATCH 4/6 ARM: dts: Add clock provider specific properties to max8997 node
In reply to Pankaj DubeyThis patch adds a label and #clock-cells property to device node of max8997 PMIC to allow using it as a clock provider.
--- arch/arm/boot/dts/exynos4210-origen.dts | 3 ++- arch/arm/boot/dts/exynos4210-trats.dts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-)
arch/arm/boot/dts/exynos4210-origen.dts +2 -1
@@ -147,11 +147,12 @@ pinctrl-0 = <&i2c0_bus>; pinctrl-names = "default"; - max8997_pmic at 66 { + max8997: max8997_pmic at 66 { compatible = "maxim,max8997-pmic"; reg = <0x66>; interrupt-parent = <&gpx0>; interrupts = <4 0>, <3 0>; + #clock-cells = <1>; max8997,pmic-buck1-dvs-voltage = <1350000>; max8997,pmic-buck2-dvs-voltage = <1100000>;
arch/arm/boot/dts/exynos4210-trats.dts +2 -1
@@ -295,12 +295,13 @@ pinctrl-names = "default"; status = "okay"; - max8997_pmic at 66 { + max8997: max8997_pmic at 66 { compatible = "maxim,max8997-pmic"; reg = <0x66>; interrupt-parent = <&gpx0>; interrupts = <7 0>; + #clock-cells = <1>; max8997,pmic-buck1-uses-gpio-dvs; max8997,pmic-buck2-uses-gpio-dvs;
Signature · 1 line
2.7.4
PATCH 4/6 ARM: dts: Add clock provider specific properties to max8997 node
Hello Pankaj,
Quoted 16 lines · Pankaj Dubey
This patch adds a label and #clock-cells property to device node of max8997 PMIC to allow using it as a clock provider.
CC Rob Herring <[email protected]>CC devicetree at vger.kernel.orgSigned-off-by Pankaj Dubey <[email protected]>--- arch/arm/boot/dts/exynos4210-origen.dts | 3 ++- arch/arm/boot/dts/exynos4210-trats.dts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-)arch/arm/boot/dts/exynos4210-origen.dts +0
-0
arch/arm/boot/dts/exynos4210-origen.dts line 150
Quoted 5 lines
arch/arm/boot/dts/exynos4210-origen.dts +1
-1@@ -147,11 +147,12 @@ pinctrl-0 = <&i2c0_bus>; pinctrl-names = "default"; - max8997_pmic at 66 { + max8997: max8997_pmic at 66 {
The ePAPR says that the node name should be "somewhat generic, reflecting the function of the device and not its precise programming model". So I think this should be instead:
max8997: pmic at 66 {[...]
arch/arm/boot/dts/exynos4210-origen.dts
Quoted 2 lines
arch/arm/boot/dts/exynos4210-origen.dts +1
-1- max8997_pmic at 66 { + max8997: max8997_pmic at 66 {
Same here.
The rest looks good to me.
Best regards,
Signature · 3 lines
Javier Martinez Canillas Open Source Group Samsung Research America
PATCH 5/6 mfd: max8997: Add max8997-clk name in mfd_cell
In reply to Pankaj DubeyThis patch add max8997-clk in mfd_cell max8997_devs in order to probe max8997-clk device driver.
--- drivers/mfd/max8997.c | 1 + 1 file changed, 1 insertion(+)
drivers/mfd/max8997.c +1 -0
@@ -48,6 +48,7 @@ static const struct mfd_cell max8997_devs[] = { { .name = "max8997-muic", }, { .name = "max8997-led", .id = 1 }, { .name = "max8997-led", .id = 2 }, + { .name = "max8997-clk",}, };#ifdef CONFIG_OF
Signature · 1 line
2.7.4
PATCH 5/6 mfd: max8997: Add max8997-clk name in mfd_cell
Hello Pankaj,
Quoted 6 lines · Pankaj Dubey
This patch add max8997-clk in
mfd_cellmax8997_devsin order to probe max8997-clk device driver.CC Lee Jones <[email protected]>Signed-off-by Pankaj Dubey <[email protected]>---
Best regards,
Signature · 3 lines
Javier Martinez Canillas Open Source Group Samsung Research America
PATCH 6/6 ARM: dts: Extend the S3C RTC node with rtc_src clock
In reply to Pankaj DubeyExtend the S3C RTC node with rtc_src clock so it could be operational. The rtc_src clock is provided by MAX8997.
--- arch/arm/boot/dts/exynos4210-origen.dts | 3 +++ 1 file changed, 3 insertions(+)
arch/arm/boot/dts/exynos4210-origen.dts +3 -0
@@ -18,6 +18,7 @@ #include "exynos4210.dtsi" #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/input/input.h> +#include <dt-bindings/clock/maxim,max8997.h> #include "exynos-mfc-reserved-memory.dtsi" / {
@@ -324,6 +325,8 @@ &rtc { status = "okay"; + clocks = <&clock CLK_RTC>, <&max8997 MAX8997_CLK_AP>; + clock-names = "rtc", "rtc_src"; }; &tmu {
Signature · 1 line
2.7.4
PATCH 6/6 ARM: dts: Extend the S3C RTC node with rtc_src clock
Hello Pankaj,
Quoted 7 lines · Pankaj Dubey
Extend the S3C RTC node with
rtc_srcclock so it could be operational. Thertc_srcclock is provided by MAX8997.CC Rob Herring <[email protected]>CC devicetree at vger.kernel.orgSigned-off-by Pankaj Dubey <[email protected]>---
Best regards,
Signature · 3 lines
Javier Martinez Canillas Open Source Group Samsung Research America
Krzysztof Kozlowski
maintainerPATCH 6/6 ARM: dts: Extend the S3C RTC node with rtc_src clock
In reply to Pankaj DubeyQuoted 15 lines · Pankaj Dubey
Extend the S3C RTC node with
rtc_srcclock so it could be operational. Thertc_srcclock is provided by MAX8997.CC Rob Herring <[email protected]>CC devicetree at vger.kernel.orgSigned-off-by Pankaj Dubey <[email protected]>--- arch/arm/boot/dts/exynos4210-origen.dts | 3 +++ 1 file changed, 3 insertions(+)arch/arm/boot/dts/exynos4210-origen.dts +0
-0
arch/arm/boot/dts/exynos4210-origen.dts line 21
Quoted 4 lines
arch/arm/boot/dts/exynos4210-origen.dts +1
-0@@ -18,6 +18,7 @@ #include "exynos4210.dtsi" #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/input/input.h> +#include <dt-bindings/clock/maxim,max8997.h>
Just a nit: put the system-wide includes in alphabetical order, so clock, gpio and finally input. It helps reducing conflicting changes (when more people add includes in the same time).
Beside that, looks good, but it requires a dt-bindings in separate patch so I could pull it.
Best regards,
Krzysztof
Krzysztof Kozlowski
maintainercover Add support for MAX8997 Clock Driver
In reply to Pankaj DubeyQuoted 14 lines · Pankaj Dubey
During recent test on Exynos4210 based Origen board, I observed RTC1 probe is failing giving following error message:
[ 2.195817] s3c-rtc 10070000.rtc: failed to find rtc source clock [ 2.200475] s3c-rtc: probe of 10070000.rtc failed with error -2 [ 2.206597] i2c /dev entries driverThis is mainly because S3C-RTC expects two clocks "rtc" and "
rtc_src". In case of Origen board this second clock is supplied by MAX8997 clock oscillator.
This patch series modified MAX8997 MFD driver for supporting regmap, and adds max8997-clk driver. Also it documentation where-ever required and extends RTC node inexynos4210-origen.dtsfor supporting both clocks.
Quoted 3 lines
After this patch series, RTC is getting probed properly on Origen board.
This patch series is tested for SMP boot on Origen board.
No need to re-invent the wheel:
https://lkml.org/lkml/2016/6/17/57
http://lists.infradead.org/pipermail/linux-arm-kernel/2016-June/437113.html
I won't be sending updates for these patches. Feel free to continue the work.
BR,
Krzysztof
Quoted 27 lines
Pankaj Dubey (6):
mfd: max8997: Initialize max8997 register map
dt-bindings: clk: max8997: Add DT binding documentation
clk: Add driver for Maxim-8997 PMIC clocks
ARM: dts: Add clock provider specific properties to max8997 node
mfd: max8997: Add max8997-clk name inmfd_cell
ARM: dts: Extend the S3C RTC node withrtc_srcclock.../devicetree/bindings/clock/maxim,max8997.txt | 44 +++++++++++++ .../bindings/regulator/max8997-regulator.txt | 3 + arch/arm/boot/dts/exynos4210-origen.dts | 6 +- arch/arm/boot/dts/exynos4210-trats.dts | 3 +- drivers/clk/Kconfig | 10 +++ drivers/clk/Makefile | 1 + drivers/clk/clk-max8997.c | 76 ++++++++++++++++++++++ drivers/mfd/max8997.c | 15 +++++ include/dt-bindings/clock/maxim,max8997.h | 23 +++++++ include/linux/mfd/max8997-private.h | 3 + 10 files changed, 182 insertions(+), 2 deletions(-) create mode 100644 Documentation/devicetree/bindings/clock/maxim,max8997.txt create mode 100644 drivers/clk/clk-max8997.c create mode 100644 include/dt-bindings/clock/maxim,max8997.hSignature · 1 line
2.7.4