From: Steve Conner Date: Thu, 29 Jun 2017 14:56:19 +0000 (+0100) Subject: New i2c-rtc-gpio device overlay (#2092) X-Git-Tag: archive/raspbian/4.9.82-1+deb9u3+rpi1_jessie~5^2~181 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=a901dc91dd6acca09de12ea0a867c4f5ee96ea4f;p=linux-4.9.git New i2c-rtc-gpio device overlay (#2092) Created new i2c-rtc-gpio device overlay by combining i2c-rtc and i2c-gpio. Tested with PCF2127 on CM3. --- diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile index eca81982c0f1..8a3131f5a4bc 100644 --- a/arch/arm/boot/dts/overlays/Makefile +++ b/arch/arm/boot/dts/overlays/Makefile @@ -42,6 +42,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ i2c-mux.dtbo \ i2c-pwm-pca9685a.dtbo \ i2c-rtc.dtbo \ + i2c-rtc-gpio.dtbo \ i2c-sensor.dtbo \ i2c0-bcm2708.dtbo \ i2c1-bcm2708.dtbo \ diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README index 19df6883be42..a69e3a0d8dce 100644 --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -662,6 +662,47 @@ Params: abx80x Select one of the ABx80x family: source +Name: i2c-rtc-gpio +Info: Adds support for a number of I2C Real Time Clock devices + using the software i2c controller +Load: dtoverlay=i2c-rtc-gpio,= +Params: abx80x Select one of the ABx80x family: + AB0801, AB0803, AB0804, AB0805, + AB1801, AB1803, AB1804, AB1805 + + ds1307 Select the DS1307 device + + ds1339 Select the DS1339 device + + ds3231 Select the DS3231 device + + mcp7940x Select the MCP7940x device + + mcp7941x Select the MCP7941x device + + pcf2127 Select the PCF2127 device + + pcf8523 Select the PCF8523 device + + pcf8563 Select the PCF8563 device + + trickle-diode-type Diode type for trickle charge - "standard" or + "schottky" (ABx80x only) + + trickle-resistor-ohms Resistor value for trickle charge (DS1339, + ABx80x) + + wakeup-source Specify that the RTC can be used as a wakeup + source + + i2c_gpio_sda GPIO used for I2C data (default "23") + + i2c_gpio_scl GPIO used for I2C clock (default "24") + + i2c_gpio_delay_us Clock delay in microseconds + (default "2" = ~100kHz) + + Name: i2c-sensor Info: Adds support for a number of I2C barometric pressure and temperature sensors on i2c_arm diff --git a/arch/arm/boot/dts/overlays/i2c-rtc-gpio-overlay.dts b/arch/arm/boot/dts/overlays/i2c-rtc-gpio-overlay.dts new file mode 100644 index 000000000000..8415e6081428 --- /dev/null +++ b/arch/arm/boot/dts/overlays/i2c-rtc-gpio-overlay.dts @@ -0,0 +1,183 @@ +// Definitions for several I2C based Real Time Clocks +// Available through i2c-gpio +/dts-v1/; +/plugin/; + +/ { + compatible = "brcm,bcm2708"; + + fragment@0 { + target-path = "/"; + __overlay__ { + i2c_gpio: i2c-gpio-rtc@0 { + compatible = "i2c-gpio"; + gpios = <&gpio 23 0 /* sda */ + &gpio 24 0 /* scl */ + >; + i2c-gpio,delay-us = <2>; /* ~100 kHz */ + #address-cells = <1>; + #size-cells = <0>; + }; + }; + }; + + fragment@1 { + target = <&i2c_gpio>; + __dormant__ { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + abx80x: abx80x@69 { + compatible = "abracon,abx80x"; + reg = <0x69>; + abracon,tc-diode = "standard"; + abracon,tc-resistor = <0>; + status = "okay"; + }; + }; + }; + + fragment@2 { + target = <&i2c_gpio>; + __dormant__ { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + ds1307: ds1307@68 { + compatible = "maxim,ds1307"; + reg = <0x68>; + status = "okay"; + }; + }; + }; + + fragment@3 { + target = <&i2c_gpio>; + __dormant__ { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + ds1339: ds1339@68 { + compatible = "dallas,ds1339"; + trickle-resistor-ohms = <0>; + reg = <0x68>; + status = "okay"; + }; + }; + }; + + fragment@4 { + target = <&i2c_gpio>; + __dormant__ { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + ds3231: ds3231@68 { + compatible = "maxim,ds3231"; + reg = <0x68>; + status = "okay"; + }; + }; + }; + + fragment@5 { + target = <&i2c_gpio>; + __dormant__ { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + mcp7940x: mcp7940x@6f { + compatible = "microchip,mcp7940x"; + reg = <0x6f>; + status = "okay"; + }; + }; + }; + + fragment@6 { + target = <&i2c_gpio>; + __dormant__ { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + mcp7941x: mcp7941x@6f { + compatible = "microchip,mcp7941x"; + reg = <0x6f>; + status = "okay"; + }; + }; + }; + + fragment@7 { + target = <&i2c_gpio>; + __dormant__ { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + pcf2127: pcf2127@51 { + compatible = "nxp,pcf2127"; + reg = <0x51>; + status = "okay"; + }; + }; + }; + + fragment@8 { + target = <&i2c_gpio>; + __dormant__ { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + pcf8523: pcf8523@68 { + compatible = "nxp,pcf8523"; + reg = <0x68>; + status = "okay"; + }; + }; + }; + + fragment@9 { + target = <&i2c_gpio>; + __dormant__ { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + pcf8563: pcf8563@51 { + compatible = "nxp,pcf8563"; + reg = <0x51>; + status = "okay"; + }; + }; + }; + + __overrides__ { + abx80x = <0>,"+1"; + ds1307 = <0>,"+2"; + ds1339 = <0>,"+3"; + ds3231 = <0>,"+4"; + mcp7940x = <0>,"+5"; + mcp7941x = <0>,"+6"; + pcf2127 = <0>,"+7"; + pcf8523 = <0>,"+8"; + pcf8563 = <0>,"+9"; + trickle-diode-type = <&abx80x>,"abracon,tc-diode"; + trickle-resistor-ohms = <&ds1339>,"trickle-resistor-ohms:0", + <&abx80x>,"abracon,tc-resistor"; + wakeup-source = <&ds1339>,"wakeup-source?", + <&ds3231>,"wakeup-source?", + <&mcp7940x>,"wakeup-source?", + <&mcp7941x>,"wakeup-source?"; + i2c_gpio_sda = <&i2c_gpio>,"gpios:4"; + i2c_gpio_scl = <&i2c_gpio>,"gpios:16"; + i2c_gpio_delay_us = <&i2c_gpio>,"i2c-gpio,delay-us:0"; + }; +};