You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/target/linux/brcm2708/patches-4.4/0386-Add-ads1015-overlay.patch

156 lines
5.1 KiB
Diff

From 940b863512662c2da10729fbb6d57fe072c9b887 Mon Sep 17 00:00:00 2001
From: Erik Sejr <erik@eriks.ssimicro.com>
Date: Tue, 7 Jun 2016 20:58:17 -0400
Subject: [PATCH] Add ads1015 overlay
See: https://github.com/raspberrypi/linux/pull/1520
---
arch/arm/boot/dts/overlays/Makefile | 1 +
arch/arm/boot/dts/overlays/README | 22 ++++++
arch/arm/boot/dts/overlays/ads1015-overlay.dts | 98 ++++++++++++++++++++++++++
3 files changed, 121 insertions(+)
create mode 100644 arch/arm/boot/dts/overlays/ads1015-overlay.dts
--- a/arch/arm/boot/dts/overlays/Makefile
+++ b/arch/arm/boot/dts/overlays/Makefile
@@ -13,6 +13,7 @@ ifeq ($(CONFIG_ARCH_BCM2835),y)
endif
dtbo-$(RPI_DT_OVERLAYS) += adau1977-adc.dtbo
+dtbo-$(RPI_DT_OVERLAYS) += ads1015.dtbo
dtbo-$(RPI_DT_OVERLAYS) += ads7846.dtbo
dtbo-$(RPI_DT_OVERLAYS) += akkordion-iqdacplus.dtbo
dtbo-$(RPI_DT_OVERLAYS) += at86rf233.dtbo
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -168,6 +168,28 @@ Load: dtoverlay=adau1977-adc
Params: <None>
+Name: ads1015
+Info: Overlay for activation of Texas Instruments ADS1015 ADC over I2C
+Load: dtoverlay=ads1015,<param>=<val>
+Params: addr I2C bus address of device. Set based on how the
+ addr pin is wired. (default=0x48 assumes addr
+ is pulled to GND)
+ cha_enable Enable virtual channel a. (default=true)
+ cha_cfg Set the configuration for virtual channel a.
+ (default=4 configures this channel for the
+ voltage at A0 with respect to GND)
+ cha_datarate Set the datarate (samples/sec) for this channel.
+ (default=4 sets 1600 sps)
+ cha_gain Set the gain of the Programmable Gain
+ Amplifier for this channel. (default=2 sets the
+ full scale of the channel to 2.048 Volts)
+
+ Channel (ch) parameters can be set for each enabled channel.
+ A maximum of 4 channels can be enabled (letters a thru d).
+ For more information refer to the device datasheet at:
+ http://www.ti.com/lit/ds/symlink/ads1015.pdf
+
+
Name: ads7846
Info: ADS7846 Touch controller
Load: dtoverlay=ads7846,<param>=<val>
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/ads1015-overlay.dts
@@ -0,0 +1,98 @@
+/*
+ * 2016 - Erik Sejr
+ */
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "brcm,bcm2708";
+ /* ----------- ADS1015 ------------ */
+ fragment@0 {
+ target = <&i2c_arm>;
+ __overlay__ {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+ ads1015: ads1015 {
+ compatible = "ti,ads1015";
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ reg = <0x48>;
+ };
+ };
+ };
+
+ fragment@1 {
+ target-path = "i2c_arm/ads1015";
+ __overlay__ {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ channel_a: channel_a {
+ reg = <4>;
+ ti,gain = <2>;
+ ti,datarate = <4>;
+ };
+ };
+ };
+
+ fragment@2 {
+ target-path = "i2c_arm/ads1015";
+ __dormant__ {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ channel_b: channel_b {
+ reg = <5>;
+ ti,gain = <2>;
+ ti,datarate = <4>;
+ };
+ };
+ };
+
+ fragment@3 {
+ target-path = "i2c_arm/ads1015";
+ __dormant__ {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ channel_c: channel_c {
+ reg = <6>;
+ ti,gain = <2>;
+ ti,datarate = <4>;
+ };
+ };
+ };
+
+ fragment@4 {
+ target-path = "i2c_arm/ads1015";
+ __dormant__ {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ channel_d: channel_d {
+ reg = <7>;
+ ti,gain = <2>;
+ ti,datarate = <4>;
+ };
+ };
+ };
+
+ __overrides__ {
+ addr = <&ads1015>,"reg:0";
+ cha_enable = <0>,"=1";
+ cha_cfg = <&channel_a>,"reg:0";
+ cha_gain = <&channel_a>,"ti,gain:0";
+ cha_datarate = <&channel_a>,"ti,datarate:0";
+ chb_enable = <0>,"=2";
+ chb_cfg = <&channel_b>,"reg:0";
+ chb_gain = <&channel_b>,"ti,gain:0";
+ chb_datarate = <&channel_b>,"ti,datarate:0";
+ chc_enable = <0>,"=3";
+ chc_cfg = <&channel_c>,"reg:0";
+ chc_gain = <&channel_c>,"ti,gain:0";
+ chc_datarate = <&channel_c>,"ti,datarate:0";
+ chd_enable = <0>,"=4";
+ chd_cfg = <&channel_d>,"reg:0";
+ chd_gain = <&channel_d>,"ti,gain:0";
+ chd_datarate = <&channel_d>,"ti,datarate:0";
+ };
+
+};