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