Commit | Line | Data |
---|---|---|
298ff012 AE |
1 | Intersil ISL12057 I2C RTC/Alarm chip |
2 | ||
3 | ISL12057 is a trivial I2C device (it has simple device tree bindings, | |
4 | consisting of a compatible field, an address and possibly an interrupt | |
5 | line). | |
6 | ||
7 | Nonetheless, it also supports an option boolean property | |
8 | ("isil,irq2-can-wakeup-machine") to handle the specific use-case found | |
9 | on at least three in-tree users of the chip (NETGEAR ReadyNAS 102, 104 | |
10 | and 2120 ARM-based NAS); On those devices, the IRQ#2 pin of the chip | |
11 | (associated with the alarm supported by the driver) is not connected | |
12 | to the SoC but to a PMIC. It allows the device to be powered up when | |
13 | RTC alarm rings. In order to mark the device has a wakeup source and | |
14 | get access to the 'wakealarm' sysfs entry, this specific property can | |
15 | be set when the IRQ#2 pin of the chip is not connected to the SoC but | |
16 | can wake up the device. | |
17 | ||
18 | Required properties supported by the device: | |
19 | ||
20 | - "compatible": must be "isil,isl12057" | |
21 | - "reg": I2C bus address of the device | |
22 | ||
23 | Optional properties: | |
24 | ||
25 | - "isil,irq2-can-wakeup-machine": mark the chip as a wakeup source, | |
26 | independently of the availability of an IRQ line connected to the | |
27 | SoC. | |
28 | ||
29 | - "interrupt-parent", "interrupts": for passing the interrupt line | |
30 | of the SoC connected to IRQ#2 of the RTC chip. | |
31 | ||
32 | ||
33 | Example isl12057 node without IRQ#2 pin connected (no alarm support): | |
34 | ||
35 | isl12057: isl12057@68 { | |
36 | compatible = "isil,isl12057"; | |
37 | reg = <0x68>; | |
38 | }; | |
39 | ||
40 | ||
41 | Example isl12057 node with IRQ#2 pin connected to main SoC via MPP6 (note | |
42 | that the pinctrl-related properties below are given for completeness and | |
43 | may not be required or may be different depending on your system or | |
44 | SoC, and the main function of the MPP used as IRQ line, i.e. | |
45 | "interrupt-parent" and "interrupts" are usually sufficient): | |
46 | ||
47 | pinctrl { | |
48 | ... | |
49 | ||
50 | rtc_alarm_pin: rtc_alarm_pin { | |
51 | marvell,pins = "mpp6"; | |
52 | marvell,function = "gpio"; | |
53 | }; | |
54 | ||
55 | ... | |
56 | ||
57 | }; | |
58 | ||
59 | ... | |
60 | ||
61 | isl12057: isl12057@68 { | |
62 | compatible = "isil,isl12057"; | |
63 | reg = <0x68>; | |
64 | pinctrl-0 = <&rtc_alarm_pin>; | |
65 | pinctrl-names = "default"; | |
66 | interrupt-parent = <&gpio0>; | |
67 | interrupts = <6 IRQ_TYPE_EDGE_FALLING>; | |
68 | }; | |
69 | ||
70 | ||
71 | Example isl12057 node without IRQ#2 pin connected to the SoC but to a | |
72 | PMIC, allowing the device to be started based on configured alarm: | |
73 | ||
74 | isl12057: isl12057@68 { | |
75 | compatible = "isil,isl12057"; | |
76 | reg = <0x68>; | |
77 | isil,irq2-can-wakeup-machine; | |
78 | }; |