Commit edafb6fe authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull RTC updates from Alexandre Belloni:
 "A quiet cycle this time.

   - ds1307: properly handle oscillator failure flags

   - imx-sc: alarm support

   - pcf2123: alarm support, correct offset handling

   - sun6i: add R40 support

   - simplify getting the adapter of an i2c client"

* tag 'rtc-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (37 commits)
  rtc: wm831x: Add IRQF_ONESHOT flag
  rtc: stm32: remove one condition check in stm32_rtc_set_alarm()
  rtc: pcf2123: Fix build error
  rtc: interface: Change type of 'count' from int to u64
  rtc: pcf8563: Clear event flags and disable interrupts before requesting irq
  rtc: pcf8563: Fix interrupt trigger method
  rtc: pcf2123: fix negative offset rounding
  rtc: pcf2123: add alarm support
  rtc: pcf2123: use %ptR
  rtc: pcf2123: port to regmap
  rtc: pcf2123: remove sysfs register view
  rtc: rx8025: simplify getting the adapter of a client
  rtc: rx8010: simplify getting the adapter of a client
  rtc: rv8803: simplify getting the adapter of a client
  rtc: m41t80: simplify getting the adapter of a client
  rtc: fm3130: simplify getting the adapter of a client
  rtc: tegra: Drop MODULE_ALIAS
  rtc: sun6i: Add R40 compatible
  dt-bindings: rtc: sun6i: Add the R40 RTC compatible
  dt-bindings: rtc: Convert Allwinner A31 RTC to a schema
  ...
parents 47ebe00b f0162d21
Loading
Loading
Loading
Loading
+43 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/rtc/allwinner,sun4i-a10-rtc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Allwinner A10 RTC Device Tree Bindings

allOf:
  - $ref: "rtc.yaml#"

maintainers:
  - Chen-Yu Tsai <wens@csie.org>
  - Maxime Ripard <maxime.ripard@bootlin.com>

properties:
  compatible:
    enum:
      - allwinner,sun4i-a10-rtc
      - allwinner,sun7i-a20-rtc

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

required:
  - compatible
  - reg
  - interrupts

additionalProperties: false

examples:
  - |
    rtc: rtc@1c20d00 {
        compatible = "allwinner,sun4i-a10-rtc";
        reg = <0x01c20d00 0x20>;
        interrupts = <24>;
    };

...
+134 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/rtc/allwinner,sun6i-a31-rtc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Allwinner A31 RTC Device Tree Bindings

maintainers:
  - Chen-Yu Tsai <wens@csie.org>
  - Maxime Ripard <maxime.ripard@bootlin.com>

properties:
  "#clock-cells":
    const: 1

  compatible:
    oneOf:
      - const: allwinner,sun6i-a31-rtc
      - const: allwinner,sun8i-a23-rtc
      - const: allwinner,sun8i-h3-rtc
      - const: allwinner,sun8i-r40-rtc
      - const: allwinner,sun8i-v3-rtc
      - const: allwinner,sun50i-h5-rtc
      - items:
          - const: allwinner,sun50i-a64-rtc
          - const: allwinner,sun8i-h3-rtc

  reg:
    maxItems: 1

  interrupts:
    minItems: 1
    maxItems: 2
    items:
      - description: RTC Alarm 0
      - description: RTC Alarm 1

  clocks:
    maxItems: 1

  clock-output-names:
    minItems: 1
    maxItems: 3
    description:
      The RTC provides up to three clocks
        - the Low Frequency Oscillator or LOSC, at index 0,
        - the Low Frequency Oscillator External output (X32KFOUT in
          the datasheet), at index 1,
        - the Internal Oscillator, at index 2.

allOf:
  - $ref: "rtc.yaml#"
  - if:
      properties:
        compatible:
          contains:
            const: allwinner,sun6i-a31-rtc

    then:
      properties:
        clock-output-names:
          minItems: 1
          maxItems: 1

  - if:
      properties:
        compatible:
          contains:
            enum:
              - allwinner,sun8i-a23-rtc
              - allwinner,sun8i-r40-rtc
              - allwinner,sun8i-v3-rtc

    then:
      properties:
        clock-output-names:
          minItems: 2
          maxItems: 2

  - if:
      properties:
        compatible:
          contains:
            enum:
              - allwinner,sun8i-h3-rtc
              - allwinner,sun50i-h5-rtc

    then:
      properties:
        clock-output-names:
          minItems: 3
          maxItems: 3

  - if:
      properties:
        compatible:
          contains:
            const: allwinner,sun8i-r40-rtc

    then:
      properties:
        interrupts:
          minItems: 1
          maxItems: 1

    else:
      properties:
        interrupts:
          minItems: 2
          maxItems: 2

required:
  - "#clock-cells"
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-output-names

additionalProperties: false

examples:
  - |
    rtc: rtc@1f00000 {
        compatible = "allwinner,sun6i-a31-rtc";
        reg = <0x01f00000 0x400>;
        interrupts = <0 40 4>, <0 41 4>;
        clock-output-names = "osc32k";
        clocks = <&ext_osc32k>;
        #clock-cells = <1>;
    };

...
+1 −72
Original line number Diff line number Diff line
Generic device tree bindings for Real Time Clock devices
========================================================

This document describes generic bindings which can be used to describe Real Time
Clock devices in a device tree.

Required properties
-------------------

- compatible : name of RTC device following generic names recommended practice.

For other required properties e.g. to describe register sets,
clocks, etc. check the binding documentation of the specific driver.

Optional properties
-------------------

- start-year : if provided, the default hardware range supported by the RTC is
               shifted so the first usable year is the specified one.

The following properties may not be supported by all drivers. However, if a
driver wants to support one of the below features, it should adapt the bindings
below.
- trickle-resistor-ohms :   Selected resistor for trickle charger. Should be given
                            if trickle charger should be enabled
- trickle-diode-disable :   Do not use internal trickle charger diode Should be
                            given if internal trickle charger diode should be
                            disabled
- wakeup-source :           Enables wake up of host system on alarm
- quartz-load-femtofarads : The capacitive load of the quartz(x-tal),
                            expressed in femto Farad (fF).
                            The default value shall be listed (if optional),
                            and likewise all valid values.

Trivial RTCs
------------

This is a list of trivial RTC devices that have simple device tree
bindings, consisting only of a compatible field, an address and
possibly an interrupt line.


Compatible		Vendor / Chip
==========		=============
abracon,abb5zes3	AB-RTCMC-32.768kHz-B5ZE-S3: Real Time Clock/Calendar Module with I2C Interface
abracon,abeoz9		AB-RTCMC-32.768kHz-EOZ9: Real Time Clock/Calendar Module with I2C Interface
dallas,ds1374		I2C, 32-Bit Binary Counter Watchdog RTC with Trickle Charger and Reset Input/Output
dallas,ds1672		Dallas DS1672 Real-time Clock
dallas,ds3232		Extremely Accurate I²C RTC with Integrated Crystal and SRAM
epson,rx8010		I2C-BUS INTERFACE REAL TIME CLOCK MODULE
epson,rx8571		I2C-BUS INTERFACE REAL TIME CLOCK MODULE with Battery Backed RAM
epson,rx8581		I2C-BUS INTERFACE REAL TIME CLOCK MODULE
emmicro,em3027		EM Microelectronic EM3027 Real-time Clock
isil,isl1208		Intersil ISL1208 Low Power RTC with Battery Backed SRAM
isil,isl1218		Intersil ISL1218 Low Power RTC with Battery Backed SRAM
isil,isl12022		Intersil ISL12022 Real-time Clock
microcrystal,rv3028	Real Time Clock Module with I2C-Bus
microcrystal,rv3029	Real Time Clock Module with I2C-Bus
microcrystal,rv8523	Real Time Clock
nxp,pcf2127		Real-time clock
nxp,pcf2129		Real-time clock
nxp,pcf8563		Real-time clock/calendar
pericom,pt7c4338	Real-time Clock Module
ricoh,r2025sd		I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
ricoh,r2221tl		I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
ricoh,rs5c372a		I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
ricoh,rs5c372b		I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
ricoh,rv5c386		I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
ricoh,rv5c387a		I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
sii,s35390a		2-wire CMOS real-time clock
whwave,sd3078		I2C bus SERIAL INTERFACE REAL-TIME CLOCK IC
xircom,x1205		Xircom X1205 I2C RTC
This file has been moved to rtc.yaml.
+50 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/rtc/rtc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: RTC Generic Binding

maintainers:
  - Alexandre Belloni <alexandre.belloni@bootlin.com>

description: |
  This document describes generic bindings which can be used to
  describe Real Time Clock devices in a device tree.

properties:
  $nodename:
    pattern: "^rtc(@.*|-[0-9a-f])*$"

  quartz-load-femtofarads:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      The capacitive load of the quartz(x-tal), expressed in femto
      Farad (fF). The default value shall be listed (if optional),
      and likewise all valid values.

  start-year:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      If provided, the default hardware range supported by the RTC is
      shifted so the first usable year is the specified one.

  trickle-diode-disable:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Do not use internal trickle charger diode. Should be given if
      internal trickle charger diode should be disabled.

  trickle-resistor-ohms:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Selected resistor for trickle charger. Should be given
      if trickle charger should be enabled.

  wakeup-source:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Enables wake up of host system on alarm.

...
+0 −46
Original line number Diff line number Diff line
* sun6i Real Time Clock

RTC controller for the Allwinner A31

Required properties:
- compatible	: Should be one of the following combinations:
		    - "allwinner,sun6i-a31-rtc"
		    - "allwinner,sun8i-a23-rtc"
		    - "allwinner,sun8i-h3-rtc"
		    - "allwinner,sun8i-r40-rtc", "allwinner,sun8i-h3-rtc"
		    - "allwinner,sun8i-v3-rtc"
		    - "allwinner,sun50i-a64-rtc", "allwinner,sun8i-h3-rtc"
		    - "allwinner,sun50i-h5-rtc"

		  Where there are two or more compatible strings, this
		  denotes the hardware covered by the most specific one
		  is backward-compatible with the latter ones, and the
		  implementation for the latter ones can be used, albeit
		  with reduced functionality.

- reg		: physical base address of the controller and length of
		  memory mapped region.
- interrupts	: IRQ lines for the RTC alarm 0 and alarm 1, in that order.

Required properties for new device trees
- clocks	: phandle to the 32kHz external oscillator
- clock-output-names : names of up to three clock outputs. See below.
- #clock-cells  : must be equal to 1.

The RTC provides the following clocks at the given indices:
- 0: LOSC
- 1: LOSC external output, known as X32KFOUT in the datasheet.
     This clock is not available on the A31 and is deprecated for old
     device trees still using the "allwinner,sun6i-a31-rtc" compatible.
- 2: InternalOSC, or internal RC oscillator (A64/H3/H5 only)

Example:

rtc: rtc@1f00000 {
	compatible = "allwinner,sun6i-a31-rtc";
	reg = <0x01f00000 0x400>;
	interrupts = <0 40 4>, <0 41 4>;
	clock-output-names = "osc32k";
	clocks = <&ext_osc32k>;
	#clock-cells = <1>;
};
Loading