Commit b349de4c authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull RTC updates from Alexandre Belloni:
 "The isl1208 dirver was reworked tobe able to work as part of an MFD.

  All the Loongson chips are now supported through a new driver, the old
  one is removed.

  Summary:

  Subsystem:
   - Switch i2c drivers back to use .probe()
   - Constify pointers to hwmon_channel_info

  New driver:
   - Loongson on chip RTC, replacing the Loongson 1 only driver

  Drivers:
   - isl1208: cleanup and support for RAA215300
   - st-lpc: cleanups
   - stm32: fix wakeup"

* tag 'rtc-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (21 commits)
  rtc: Add rtc driver for the Loongson family chips
  rtc: Remove the Loongson-1 RTC driver
  dt-bindings: rtc: Split loongson,ls2x-rtc into SoC-based compatibles
  rtc: rv3028: make rv3028 probeable from userspace
  rtc: isl1208: Add support for the built-in RTC on the PMIC RAA215300
  rtc: isl1208: Add isl1208_set_xtoscb()
  rtc: isl1208: Drop enum isl1208_id and split isl1208_configs[]
  rtc: isl1208: Make similar I2C and DT-based matching table
  rtc: isl1208: Drop name variable
  dt-bindings: rtc: isil,isl1208: Document clock and clock-names properties
  dt-bindings: rtc: isl1208: Convert to json-schema
  rtc: st-lpc: Simplify clk handling in st_rtc_probe()
  rtc: st-lpc: Release some resources in st_rtc_probe() in case of error
  rtc: stm32: remove dedicated wakeup management
  dt-bindings: rtc: restrict node name suffixes
  rtc: add HAS_IOPORT dependencies
  rtc: Switch i2c drivers back to use .probe()
  rtc: rv3032: constify pointers to hwmon_channel_info
  rtc: isl12022: constify pointers to hwmon_channel_info
  rtc: ds3232: constify pointers to hwmon_channel_info
  ...
parents a7419587 1b733a9e
Loading
Loading
Loading
Loading
+0 −38
Original line number Diff line number Diff line
Intersil ISL1209/19 I2C RTC/Alarm chip with event in

ISL12X9 have additional pins EVIN and #EVDET for tamper detection, while the
ISL1208 and ISL1218 do not.  They are all use the same driver with the bindings
described here, with chip specific properties as noted.

Required properties supported by the device:
 - "compatible": Should be one of the following:
		- "isil,isl1208"
		- "isil,isl1209"
		- "isil,isl1218"
		- "isil,isl1219"
 - "reg": I2C bus address of the device

Optional properties:
 - "interrupt-names": list which may contains "irq" and "evdet"
	evdet applies to isl1209 and isl1219 only
 - "interrupts": list of interrupts for "irq" and "evdet"
	evdet applies to isl1209 and isl1219 only
 - "isil,ev-evienb": Enable or disable internal pull on EVIN pin
	Applies to isl1209 and isl1219 only
	Possible values are 0 and 1
	Value 0 enables internal pull-up on evin pin, 1 disables it.
	Default will leave the non-volatile configuration of the pullup
	as is.

Example isl1219 node with #IRQ pin connected to SoC gpio1 pin12 and #EVDET pin
connected to SoC gpio2 pin 24 and internal pull-up enabled in EVIN pin.

	isl1219: rtc@68 {
		compatible = "isil,isl1219";
		reg = <0x68>;
		interrupt-names = "irq", "evdet";
		interrupts-extended = <&gpio1 12 IRQ_TYPE_EDGE_FALLING>,
			<&gpio2 24 IRQ_TYPE_EDGE_FALLING>;
		isil,ev-evienb = <1>;
	};
+100 −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/isil,isl1208.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Intersil ISL1209/19 I2C RTC/Alarm chip with event in

maintainers:
  - Biju Das <biju.das.jz@bp.renesas.com>
  - Trent Piepho <tpiepho@gmail.com>

description:
  ISL12X9 have additional pins EVIN and EVDET for tamper detection, while the
  ISL1208 and ISL1218 do not.

properties:
  compatible:
    enum:
      - isil,isl1208
      - isil,isl1209
      - isil,isl1218
      - isil,isl1219

  reg:
    maxItems: 1

  clocks:
    maxItems: 1

  clock-names:
    description: |
      Use xin, if connected to an external crystal.
      Use clkin, if connected to an external clock signal.
    enum:
      - xin
      - clkin

  interrupts:
    minItems: 1
    maxItems: 2

  interrupt-names:
    minItems: 1
    items:
      - const: irq
      - const: evdet

  isil,ev-evienb:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [ 0, 1 ]
    description: |
      Enable or disable internal pull on EVIN pin
      Default will leave the non-volatile configuration of the pullup
      as is.
        <0> : Enables internal pull-up on evin pin
        <1> : Disables internal pull-up on evin pin

required:
  - compatible
  - reg

allOf:
  - $ref: rtc.yaml#
  - if:
      properties:
        compatible:
          contains:
            enum:
              - isil,isl1209
              - isil,isl1219
    then:
      properties:
        interrupts:
          maxItems: 2
        interrupt-names:
          items:
            - const: irq
            - const: evdet
    else:
      properties:
        interrupts:
          maxItems: 1
        interrupt-names:
          items:
            - const: irq

unevaluatedProperties: false

examples:
  - |
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        rtc_twi: rtc@6f {
            compatible = "isil,isl1208";
            reg = <0x6f>;
        };
    };
+57 −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/loongson,rtc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Loongson Real-Time Clock

description:
  The Loongson family chips use an on-chip counter 0 (Time Of Year
  counter) as the RTC.

maintainers:
  - Binbin Zhou <zhoubinbin@loongson.cn>

allOf:
  - $ref: rtc.yaml#

properties:
  compatible:
    oneOf:
      - enum:
          - loongson,ls1b-rtc
          - loongson,ls1c-rtc
          - loongson,ls7a-rtc
          - loongson,ls2k1000-rtc
      - items:
          - enum:
              - loongson,ls2k2000-rtc
              - loongson,ls2k0500-rtc
          - const: loongson,ls7a-rtc

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

required:
  - compatible
  - reg

unevaluatedProperties: false

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

    rtc@1fe27800 {
        compatible = "loongson,ls2k1000-rtc";
        reg = <0x1fe27800 0x100>;

        interrupt-parent = <&liointc1>;
        interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
    };

...
+1 −1
Original line number Diff line number Diff line
@@ -15,7 +15,7 @@ description: |

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

  aux-voltage-chargeable:
    $ref: /schemas/types.yaml#/definitions/uint32
+0 −2
Original line number Diff line number Diff line
@@ -47,8 +47,6 @@ properties:
      - isil,isl1218
      # Intersil ISL12022 Real-time Clock
      - isil,isl12022
      # Loongson-2K Socs/LS7A bridge Real-time Clock
      - loongson,ls2x-rtc
      # Real Time Clock Module with I2C-Bus
      - microcrystal,rv3029
      # Real Time Clock
Loading