Commit 271d8939 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull RTC updates from Alexandre Belloni:
 "A few drivers got some nice cleanups and a new driver are making the
  bulk of the changes.

  Subsystem:
   - allow rtc_read_alarm without read_alarm callback

  New driver:
   - NXP BBNSM module RTC

  Drivers:
   - use IRQ flags from fwnode when available
   - abx80x: nvmem support
   - brcmstb-waketimer: add non-wake alarm support
   - ingenic: provide CLK32K clock
   - isl12022: cleanups
   - moxart: switch to using gpiod API
   - pcf85363: allow setting quartz load
   - pm8xxx: cleanups and support for setting time
   - rv3028, rv3032: add ACPI support"

* tag 'rtc-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (64 commits)
  rtc: pm8xxx: add support for nvmem offset
  dt-bindings: rtc: qcom-pm8xxx: add nvmem-cell offset
  rtc: abx80x: Add nvmem support
  rtc: rx6110: Remove unused of_gpio,h
  rtc: efi: Avoid spamming the log on RTC read failure
  rtc: isl12022: sort header inclusion alphabetically
  rtc: isl12022: Join string literals back
  rtc: isl12022: Drop unneeded OF guards and of_match_ptr()
  rtc: isl12022: Explicitly use __le16 type for ISL12022_REG_TEMP_L
  rtc: isl12022: Get rid of unneeded private struct isl12022
  rtc: pcf85363: add support for the quartz-load-femtofarads property
  dt-bindings: rtc: nxp,pcf8563: move pcf85263/pcf85363 to a dedicated binding
  rtc: allow rtc_read_alarm without read_alarm callback
  rtc: rv3032: add ACPI support
  rtc: rv3028: add ACPI support
  rtc: bbnsm: Add the bbnsm rtc support
  rtc: jz4740: Register clock provider for the CLK32K pin
  rtc: jz4740: Use dev_err_probe()
  rtc: jz4740: Use readl_poll_timeout
  dt-bindings: rtc: Add #clock-cells property
  ...
parents 2eb29d59 3ca04951
Loading
Loading
Loading
Loading
+44 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/rtc/amlogic,meson-vrtc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Amlogic Virtual RTC (VRTC)

maintainers:
  - Neil Armstrong <neil.armstrong@linaro.org>

description: |
  This is a Linux interface to an RTC managed by firmware, hence it's
  virtual from a Linux perspective.  The interface is 1 register where
  an alarm time (in seconds) is to be written.
  The alarm register is a simple scratch register shared between the
  application processors (AP) and the secure co-processor (SCP.)  When
  the AP suspends, the SCP will use the value of this register to
  program an always-on timer before going sleep. When the timer expires,
  the SCP will wake up and will then wake the AP.

allOf:
  - $ref: rtc.yaml#

properties:
  compatible:
    enum:
      - amlogic,meson-vrtc

  reg:
    maxItems: 1

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    rtc@a8 {
      compatible = "amlogic,meson-vrtc";
      reg = <0x000a8 0x4>;
    };
+14 −7
Original line number Diff line number Diff line
@@ -11,7 +11,8 @@ maintainers:

description:
  The Broadcom STB wake-up timer provides a 27Mhz resolution timer, with the
  ability to wake up the system from low-power suspend/standby modes.
  ability to wake up the system from low-power suspend/standby modes and
  optionally generate RTC alarm interrupts.

allOf:
  - $ref: "rtc.yaml#"
@@ -24,8 +25,14 @@ properties:
    maxItems: 1

  interrupts:
    description: the TIMER interrupt
    maxItems: 1
    minItems: 1
    items:
      - description: the TIMER interrupt
      - description: the ALARM interrupt
    description:
      The TIMER interrupt wakes the system from low-power suspend/standby modes.
      An ALARM interrupt may be specified to interrupt the CPU when an RTC alarm
      is enabled.

  clocks:
    description: clock reference in the 27MHz domain
@@ -35,10 +42,10 @@ additionalProperties: false

examples:
  - |
    rtc@f0411580 {
    rtc@f041a080 {
        compatible = "brcm,brcmstb-waketimer";
        reg = <0xf0411580 0x14>;
        interrupts = <0x3>;
        interrupt-parent = <&aon_pm_l2_intc>;
        reg = <0xf041a080 0x14>;
        interrupts-extended = <&aon_pm_l2_intc 0x04>,
                              <&upg_aux_aon_intr2_intc 0x08>;
        clocks = <&upg_fixed>;
    };
+29 −0
Original line number Diff line number Diff line
@@ -11,6 +11,17 @@ maintainers:

allOf:
  - $ref: rtc.yaml#
  - if:
      not:
        properties:
          compatible:
            contains:
              enum:
                - ingenic,jz4770-rtc
                - ingenic,jz4780-rtc
    then:
      properties:
        "#clock-cells": false

properties:
  compatible:
@@ -39,6 +50,9 @@ properties:
  clock-names:
    const: rtc

  "#clock-cells":
    const: 0

  system-power-controller:
    description: |
      Indicates that the RTC is responsible for powering OFF
@@ -83,3 +97,18 @@ examples:
      clocks = <&cgu JZ4740_CLK_RTC>;
      clock-names = "rtc";
    };

  - |
    #include <dt-bindings/clock/ingenic,jz4780-cgu.h>
    rtc: rtc@10003000 {
      compatible = "ingenic,jz4780-rtc", "ingenic,jz4760-rtc";
      reg = <0x10003000 0x4c>;

      interrupt-parent = <&intc>;
      interrupts = <32>;

      clocks = <&cgu JZ4780_CLK_RTCLK>;
      clock-names = "rtc";

      #clock-cells = <0>;
    };
+54 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/rtc/microcrystal,rv3028.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Microchip RV-3028 RTC

allOf:
  - $ref: rtc.yaml#

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

properties:
  compatible:
    const: microcrystal,rv3028

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  trickle-resistor-ohms:
    enum:
      - 3000
      - 5000
      - 9000
      - 15000

required:
  - compatible
  - reg

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        rtc@51 {
            compatible = "microcrystal,rv3028";
            reg = <0x51>;
            pinctrl-0 = <&rtc_nint_pins>;
            interrupts-extended = <&gpio1 16 IRQ_TYPE_LEVEL_HIGH>;
            trickle-resistor-ohms = <3000>;
        };
    };

...
+6 −6
Original line number Diff line number Diff line
@@ -3,15 +3,15 @@ MOXA ART real-time clock
Required properties:

- compatible : Should be "moxa,moxart-rtc"
- gpio-rtc-sclk : RTC sclk gpio, with zero flags
- gpio-rtc-data : RTC data gpio, with zero flags
- gpio-rtc-reset : RTC reset gpio, with zero flags
- rtc-sclk-gpios : RTC sclk gpio, with zero flags
- rtc-data-gpios : RTC data gpio, with zero flags
- rtc-reset-gpios : RTC reset gpio, with zero flags

Example:

	rtc: rtc {
		compatible = "moxa,moxart-rtc";
		gpio-rtc-sclk = <&gpio 5 0>;
		gpio-rtc-data = <&gpio 6 0>;
		gpio-rtc-reset = <&gpio 7 0>;
		rtc-sclk-gpios = <&gpio 5 0>;
		rtc-data-gpios = <&gpio 6 0>;
		rtc-reset-gpios = <&gpio 7 0>;
	};
Loading