Message ID | 20201219013418.3474461-1-alexandre.belloni@bootlin.com |
---|---|
State | Accepted |
Commit | 3b8fc144d9454ec9d6ab31ae2a34d67bfc8274a1 |
Headers | show |
Series | dt-bindings: rtc: pcf2127: update bindings | expand |
On 19/12/2020 02.34, Alexandre Belloni wrote: > pcf2127, pcf2129 and pca2129 support start-year and reset-source. > No, the 2129 variant doesn't even have a reset output pin. Not sure if there's any way to reflect that, and it probably doesn't matter, since nobody's going to add the reset-source property to a 2129 node. But the commit message is a bit misleading. Rasmus
On 21/12/2020 22:17:54+0100, Rasmus Villemoes wrote: > On 19/12/2020 02.34, Alexandre Belloni wrote: > > pcf2127, pcf2129 and pca2129 support start-year and reset-source. > > > > No, the 2129 variant doesn't even have a reset output pin. Not sure if > there's any way to reflect that, and it probably doesn't matter, since > nobody's going to add the reset-source property to a 2129 node. But the > commit message is a bit misleading. > Ah sure, I forgot about that., the simplest way is then to not mov pcf/pca2129 out of trivial -- Alexandre Belloni, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
On 21/12/2020 22:17:54+0100, Rasmus Villemoes wrote: > On 19/12/2020 02.34, Alexandre Belloni wrote: > > pcf2127, pcf2129 and pca2129 support start-year and reset-source. > > > > No, the 2129 variant doesn't even have a reset output pin. Not sure if > there's any way to reflect that, and it probably doesn't matter, since > nobody's going to add the reset-source property to a 2129 node. But the > commit message is a bit misleading. > Actually no, the INT pin can be used as a reset, the pcf/pca2129 can be used as a watchdog and so it may need the reset-source property. -- Alexandre Belloni, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
On 26/01/2021 23.48, Alexandre Belloni wrote: > On 21/12/2020 22:17:54+0100, Rasmus Villemoes wrote: >> On 19/12/2020 02.34, Alexandre Belloni wrote: >>> pcf2127, pcf2129 and pca2129 support start-year and reset-source. >>> >> >> No, the 2129 variant doesn't even have a reset output pin. Not sure if >> there's any way to reflect that, and it probably doesn't matter, since >> nobody's going to add the reset-source property to a 2129 node. But the >> commit message is a bit misleading. >> > > Actually no, the INT pin can be used as a reset, the pcf/pca2129 > can be used as a watchdog and so it may need the reset-source property. Unless I'm missing something, that would require some rather creative extra circuitry: The interrupt pin is kept low until the appropriate bit in the rtc is cleared, so if that is routed directly to a reset pin on the SOC, the SOC would be kept in reset indefinitely. Rasmus
On 27/01/2021 14:07:59+0100, Rasmus Villemoes wrote: > On 26/01/2021 23.48, Alexandre Belloni wrote: > > On 21/12/2020 22:17:54+0100, Rasmus Villemoes wrote: > >> On 19/12/2020 02.34, Alexandre Belloni wrote: > >>> pcf2127, pcf2129 and pca2129 support start-year and reset-source. > >>> > >> > >> No, the 2129 variant doesn't even have a reset output pin. Not sure if > >> there's any way to reflect that, and it probably doesn't matter, since > >> nobody's going to add the reset-source property to a 2129 node. But the > >> commit message is a bit misleading. > >> > > > > Actually no, the INT pin can be used as a reset, the pcf/pca2129 > > can be used as a watchdog and so it may need the reset-source property. > > Unless I'm missing something, that would require some rather creative > extra circuitry: The interrupt pin is kept low until the appropriate bit > in the rtc is cleared, so if that is routed directly to a reset pin on > the SOC, the SOC would be kept in reset indefinitely. > You mean inverting the level of INT? I don't think this is creative or complicated... And anyway, INT# is active low, like RST# so if the SoC has an RST# input, this should just work. -- Alexandre Belloni, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
On 27/01/2021 14.18, Alexandre Belloni wrote: > On 27/01/2021 14:07:59+0100, Rasmus Villemoes wrote: >> On 26/01/2021 23.48, Alexandre Belloni wrote: >>> On 21/12/2020 22:17:54+0100, Rasmus Villemoes wrote: >>>> On 19/12/2020 02.34, Alexandre Belloni wrote: >>>>> pcf2127, pcf2129 and pca2129 support start-year and reset-source. >>>>> >>>> >>>> No, the 2129 variant doesn't even have a reset output pin. Not sure if >>>> there's any way to reflect that, and it probably doesn't matter, since >>>> nobody's going to add the reset-source property to a 2129 node. But the >>>> commit message is a bit misleading. >>>> >>> >>> Actually no, the INT pin can be used as a reset, the pcf/pca2129 >>> can be used as a watchdog and so it may need the reset-source property. >> >> Unless I'm missing something, that would require some rather creative >> extra circuitry: The interrupt pin is kept low until the appropriate bit >> in the rtc is cleared, so if that is routed directly to a reset pin on >> the SOC, the SOC would be kept in reset indefinitely. >> > > You mean inverting the level of INT? I don't think this is creative or > complicated... No, that is not what I meant nor what I wrote. > And anyway, INT# is active low, like RST# so if the SoC has an RST# > input, this should just work. AFAIK (and that may certainly be wrong), most SOCs require a _pulse_ on their reset input; asserting and keeping the reset pin low would just keep the cpu in reset, never allowing it to leave that state and then talk to the RTC to clear the bit that would clear the interrupt. That's also how the 2127 RST# behaves: it generates a pulse (of width 244us or 15ms). The INT# and RST# pins cannot be used interchangeably. Rasmus
diff --git a/Documentation/devicetree/bindings/rtc/nxp,pcf2127.yaml b/Documentation/devicetree/bindings/rtc/nxp,pcf2127.yaml new file mode 100644 index 000000000000..daa479b395a6 --- /dev/null +++ b/Documentation/devicetree/bindings/rtc/nxp,pcf2127.yaml @@ -0,0 +1,54 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/rtc/nxp,pcf2127.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: NXP PCF2127, PXF2129 and PCA2129 Real Time Clocks + +allOf: + - $ref: "rtc.yaml#" + +maintainers: + - Alexandre Belloni <alexandre.belloni@bootlin.com> + +properties: + compatible: + enum: + - nxp,pcf2127 + - nxp,pcf2129 + - nxp,pca2129 + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + start-year: true + + reset-source: true + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/irq.h> + i2c { + #address-cells = <1>; + #size-cells = <0>; + + rtc@51 { + compatible = "nxp,pcf2127"; + reg = <0x51>; + pinctrl-0 = <&rtc_nint_pins>; + interrupts-extended = <&gpio1 16 IRQ_TYPE_LEVEL_HIGH>; + reset-source; + }; + }; + +... diff --git a/Documentation/devicetree/bindings/rtc/trivial-rtc.yaml b/Documentation/devicetree/bindings/rtc/trivial-rtc.yaml index c7d14de214c4..17816b734a51 100644 --- a/Documentation/devicetree/bindings/rtc/trivial-rtc.yaml +++ b/Documentation/devicetree/bindings/rtc/trivial-rtc.yaml @@ -48,12 +48,6 @@ properties: - microcrystal,rv3029 # Real Time Clock - microcrystal,rv8523 - # Real-time clock - - nxp,pcf2127 - # Real-time clock - - nxp,pcf2129 - # Real-time clock - - nxp,pca2129 # Real-time Clock Module - pericom,pt7c4338 # I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
pcf2127, pcf2129 and pca2129 support start-year and reset-source. Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> --- .../devicetree/bindings/rtc/nxp,pcf2127.yaml | 54 +++++++++++++++++++ .../devicetree/bindings/rtc/trivial-rtc.yaml | 6 --- 2 files changed, 54 insertions(+), 6 deletions(-) create mode 100644 Documentation/devicetree/bindings/rtc/nxp,pcf2127.yaml