layerscape: add i2c peripherials on LS1012A-RDB
[openwrt/openwrt.git] / target / linux / layerscape / patches-5.4 / 900-layerscape_fix_support_of_LS1012A-RDB.patch
diff --git a/target/linux/layerscape/patches-5.4/900-layerscape_fix_support_of_LS1012A-RDB.patch b/target/linux/layerscape/patches-5.4/900-layerscape_fix_support_of_LS1012A-RDB.patch
new file mode 100644 (file)
index 0000000..bcad654
--- /dev/null
@@ -0,0 +1,107 @@
+From 650480191492845c8eb7e0c2e5b1e37cabc59eff Mon Sep 17 00:00:00 2001
+From: Pawel Dembicki <paweldembicki@gmail.com>
+Date: Fri, 13 Nov 2020 07:17:39 +0100
+Subject: [PATCH 1/2] arm64: dts: fsl-ls1012a-rdb: add i2c devices
+
+LS1012A-RDB equipped in some i2c devices:
+  - 3x GPIO Expander: PCAL9555A (NXP)
+  - Gyro: FXAS21002 (NXP)
+  - Accelerometer: FXOS8700 (NXP)
+  - Current & Power Monitor: INA220 (TI)
+
+This patch add listed devices to dts.
+
+Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
+---
+ .../boot/dts/freescale/fsl-ls1012a-rdb.dts    | 66 +++++++++++++++++++
+ 1 file changed, 66 insertions(+)
+
+--- a/arch/arm64/boot/dts/freescale/fsl-ls1012a-rdb.dts
++++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a-rdb.dts
+@@ -7,6 +7,7 @@
+  */
+ /dts-v1/;
++#include <dt-bindings/interrupt-controller/irq.h>
+ #include "fsl-ls1012a.dtsi"
+ / {
+@@ -16,6 +17,25 @@
+       aliases {
+               ethernet0 = &pfe_mac0;
+               ethernet1 = &pfe_mac1;
++              serial0 = &duart0;
++      };
++
++      dummy3v3: dummy_reg {
++              compatible = "regulator-fixed";
++              regulator-name = "dummy_regulator_3v3";
++
++              regulator-min-microvolt = <3300000>;
++              regulator-max-microvolt = <3300000>;
++              regulator-always-on;
++      };
++
++      dummy1v8: dummy_reg {
++              compatible = "regulator-fixed";
++              regulator-name = "dummy_regulator_1v8";
++
++              regulator-min-microvolt = <1800000>;
++              regulator-max-microvolt = <1800000>;
++              regulator-always-on;
+       };
+ };
+@@ -42,6 +62,52 @@
+ &i2c0 {
+       status = "okay";
++
++      accelerometer@1e {
++              compatible = "nxp,fxos8700";
++              reg = <0x1e>;
++              interrupt-parent = <&gpio26>;
++              interrupts = <13 IRQ_TYPE_EDGE_RISING>;
++              interrupt-names = "INT1";
++      };
++
++      gyroscope@20 {
++              compatible = "nxp,fxas21002c";
++              reg = <0x20>;
++              vdd-supply = <&dummy3v3>;
++              vddio-supply = <&dummy1v8>;
++      };
++
++      gpio@24 {
++              compatible = "nxp,pcal9555a";
++              reg = <0x24>;
++              gpio-controller;
++              #gpio-cells = <2>;
++      };
++
++      gpio25: gpio@25 {
++              compatible = "nxp,pcal9555a";
++              reg = <0x25>;
++              gpio-controller;
++              #gpio-cells = <2>;
++      };
++
++      gpio26: gpio@26 {
++              compatible = "nxp,pcal9555a";
++              reg = <0x26>;
++              interrupt-parent = <&gpio0>;
++              interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
++              interrupt-controller;
++              #interrupt-cells = <2>;
++              gpio-controller;
++              #gpio-cells = <2>;
++      };
++
++      current-sensor@40 {
++              compatible = "ti,ina220";
++              reg = <0x40>;
++              shunt-resistor = <2000>;
++      };
+ };
+ &sata {