Commit 7846b618 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull RTC updates from Alexandre Belloni:
 "Subsystem:
   - add missing MODULE_DESCRIPTION() macro
   - fix offset addition for alarms

  Drivers:
   - isl1208: alarm clearing fixes
   - mcp794xx: oscillator failure detection
   - stm32: stm32mp25 support
   - tps6594: power management support"

* tag 'rtc-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
  rtc: stm32: add new st,stm32mp25-rtc compatible and check RIF configuration
  dt-bindings: rtc: stm32: introduce new st,stm32mp25-rtc compatible
  rtc: Drop explicit initialization of struct i2c_device_id::driver_data to 0
  rtc: interface: Add RTC offset to alarm after fix-up
  rtc: ds1307: Clamp year to valid BCD (0-99) in `set_time()`
  rtc: ds1307: Detect oscillator fail on mcp794xx
  rtc: isl1208: Update correct procedure for clearing alarm
  rtc: isl1208: Add a delay for clearing alarm
  dt-bindings: rtc: Convert rtc-fsl-ftm-alarm.txt to yaml format
  rtc: add missing MODULE_DESCRIPTION() macro
  rtc: abx80x: Fix return value of nvmem callback on read
  rtc: cmos: Fix return value of nvmem callbacks
  rtc: isl1208: Fix return value of nvmem callbacks
  rtc: tps6594: Add power management support
  rtc: tps6594: introduce private structure as drvdata
  rtc: tps6594: Fix memleak in probe
parents 33c9de29 efa9c5be
Loading
Loading
Loading
Loading
+73 −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/fsl,ls-ftm-alarm.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Freescale FlexTimer Module (FTM) Alarm

maintainers:
  - Frank Li <Frank.Li@nxp.com>

properties:
  compatible:
    enum:
      - fsl,ls1012a-ftm-alarm
      - fsl,ls1021a-ftm-alarm
      - fsl,ls1028a-ftm-alarm
      - fsl,ls1043a-ftm-alarm
      - fsl,ls1046a-ftm-alarm
      - fsl,ls1088a-ftm-alarm
      - fsl,ls208xa-ftm-alarm
      - fsl,lx2160a-ftm-alarm

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  fsl,rcpm-wakeup:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    items:
      - items:
          - description: phandle to rcpm node
          - description: bit mask of IPPDEXPCR0
          - description: bit mask of IPPDEXPCR1
          - description: bit mask of IPPDEXPCR2
          - description: bit mask of IPPDEXPCR3
          - description: bit mask of IPPDEXPCR4
          - description: bit mask of IPPDEXPCR5
          - description: bit mask of IPPDEXPCR6
        minItems: 1
    description:
      phandle to rcpm node, Please refer
      Documentation/devicetree/bindings/soc/fsl/rcpm.txt

  big-endian:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      If the host controller is big-endian mode, specify this property.
      The default endian mode is little-endian.

required:
  - compatible
  - reg
  - interrupts
  - fsl,rcpm-wakeup

allOf:
  - $ref: rtc.yaml#

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    rtc@2800000 {
        compatible = "fsl,ls1088a-ftm-alarm";
        reg = <0x2800000 0x10000>;
        fsl,rcpm-wakeup = <&rcpm 0x0 0x0 0x0 0x0 0x4000 0x0>;
        interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
    };
+0 −36
Original line number Diff line number Diff line
Freescale FlexTimer Module (FTM) Alarm

Required properties:
- compatible : Should be "fsl,<chip>-ftm-alarm", the
	       supported chips include
	       "fsl,ls1012a-ftm-alarm"
	       "fsl,ls1021a-ftm-alarm"
	       "fsl,ls1028a-ftm-alarm"
	       "fsl,ls1043a-ftm-alarm"
	       "fsl,ls1046a-ftm-alarm"
	       "fsl,ls1088a-ftm-alarm"
	       "fsl,ls208xa-ftm-alarm"
	       "fsl,lx2160a-ftm-alarm"
- reg : Specifies base physical address and size of the register sets for the
  FlexTimer Module.
- interrupts : Should be the FlexTimer Module interrupt.
- fsl,rcpm-wakeup property and rcpm node : Please refer
	Documentation/devicetree/bindings/soc/fsl/rcpm.txt

Optional properties:
- big-endian: If the host controller is big-endian mode, specify this property.
  The default endian mode is little-endian.

Example:
rcpm: rcpm@1e34040 {
	compatible = "fsl,ls1088a-rcpm", "fsl,qoriq-rcpm-2.1+";
	reg = <0x0 0x1e34040 0x0 0x18>;
	#fsl,rcpm-wakeup-cells = <6>;
};

ftm_alarm0: timer@2800000 {
	compatible = "fsl,ls1088a-ftm-alarm";
	reg = <0x0 0x2800000 0x0 0x10000>;
	fsl,rcpm-wakeup = <&rcpm 0x0 0x0 0x0 0x0 0x4000 0x0>;
	interrupts = <0 44 4>;
};
+4 −1
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@ properties:
      - st,stm32-rtc
      - st,stm32h7-rtc
      - st,stm32mp1-rtc
      - st,stm32mp25-rtc

  reg:
    maxItems: 1
@@ -90,7 +91,9 @@ allOf:
      properties:
        compatible:
          contains:
            const: st,stm32mp1-rtc
            enum:
              - st,stm32mp1-rtc
              - st,stm32mp25-rtc

    then:
      properties:
+5 −4
Original line number Diff line number Diff line
@@ -274,10 +274,9 @@ int __rtc_read_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm)
			return err;

		/* full-function RTCs won't have such missing fields */
		if (rtc_valid_tm(&alarm->time) == 0) {
			rtc_add_offset(rtc, &alarm->time);
			return 0;
		}
		err = rtc_valid_tm(&alarm->time);
		if (!err)
			goto done;

		/* get the "after" timestamp, to detect wrapped fields */
		err = rtc_read_time(rtc, &now);
@@ -379,6 +378,8 @@ int __rtc_read_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm)
	if (err && alarm->enabled)
		dev_warn(&rtc->dev, "invalid alarm value: %ptR\n",
			 &alarm->time);
	else
		rtc_add_offset(rtc, &alarm->time);

	return err;
}
+1 −0
Original line number Diff line number Diff line
@@ -97,4 +97,5 @@ static struct kunit_suite rtc_lib_test_suite = {

kunit_test_suite(rtc_lib_test_suite);

MODULE_DESCRIPTION("KUnit test for RTC lib functions");
MODULE_LICENSE("GPL");
Loading