Commit 6ec8853d authored by Steve Conner's avatar Steve Conner Committed by Phil Elwell
Browse files

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.
parent 7b3276a1
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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 \
+41 −0
Original line number Diff line number Diff line
@@ -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,<param>=<val>
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
+183 −0
Original line number Diff line number Diff line
// 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";
	};
};