brcm2708: add kernel 4.14 support
[openwrt/staging/lynxis.git] / target / linux / brcm2708 / patches-4.14 / 950-0290-overlays-Add-support-for-Balena-Fin-board.patch
diff --git a/target/linux/brcm2708/patches-4.14/950-0290-overlays-Add-support-for-Balena-Fin-board.patch b/target/linux/brcm2708/patches-4.14/950-0290-overlays-Add-support-for-Balena-Fin-board.patch
new file mode 100644 (file)
index 0000000..1c317a6
--- /dev/null
@@ -0,0 +1,121 @@
+From 09e843542826ad1241d77d5ef9abb2bce21a0984 Mon Sep 17 00:00:00 2001
+From: Florin Sarbu <florin@resin.io>
+Date: Mon, 30 Apr 2018 09:11:52 +0200
+Subject: [PATCH 290/454] overlays: Add support for Balena Fin board
+
+Signed-off-by: Florin Sarbu <florin@resin.io>
+---
+ arch/arm/boot/dts/overlays/Makefile           |  1 +
+ arch/arm/boot/dts/overlays/README             |  7 ++
+ .../boot/dts/overlays/balena-fin-overlay.dts  | 79 +++++++++++++++++++
+ 3 files changed, 87 insertions(+)
+ create mode 100644 arch/arm/boot/dts/overlays/balena-fin-overlay.dts
+
+--- a/arch/arm/boot/dts/overlays/Makefile
++++ b/arch/arm/boot/dts/overlays/Makefile
+@@ -17,6 +17,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
+       audioinjector-addons.dtbo \
+       audioinjector-wm8731-audio.dtbo \
+       audremap.dtbo \
++      balena-fin.dtbo \
+       bmp085_i2c-sensor.dtbo \
+       dht11.dtbo \
+       dionaudio-loco.dtbo \
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -404,6 +404,13 @@ Params: swap_lr                 Reverse
+                                 (default off)
++Name:   balena-fin
++Info:   Overlay that enables WiFi, Bluetooth and the GPIO expander on the
++        Balena Fin board.
++Load:   dtoverlay=balena-fin
++Params: <None>
++
++
+ Name:   bmp085_i2c-sensor
+ Info:   This overlay is now deprecated - see i2c-sensor
+ Load:   dtoverlay=bmp085_i2c-sensor
+--- /dev/null
++++ b/arch/arm/boot/dts/overlays/balena-fin-overlay.dts
+@@ -0,0 +1,79 @@
++/dts-v1/;
++/plugin/;
++
++/{
++      compatible = "brcm,bcm2708";
++
++      fragment@0 {
++              target = <&mmc>;
++              sdio_wifi: __overlay__ {
++                      pinctrl-names = "default";
++                      pinctrl-0 = <&sdio_pins>;
++                      bus-width = <4>;
++                      brcm,overclock-50 = <35>;
++                      status = "okay";
++              };
++      };
++
++      fragment@1 {
++              target = <&gpio>;
++              __overlay__ {
++                      sdio_pins: sdio_pins {
++                              brcm,pins = <34 35 36 37 38 39>;
++                              brcm,function = <7>; /* ALT3 = SD1 */
++                              brcm,pull = <0 2 2 2 2 2>;
++                      };
++
++                      power_ctrl_pins: power_ctrl_pins {
++                              brcm,pins = <40>;
++                              brcm,function = <1>; // out
++                      };
++              };
++      };
++
++      fragment@2 {
++              target-path = "/";
++              __overlay__ {
++                      // We should investigate how to switch to mmc-pwrseq-sd8787
++                      // Currently that module requires two GPIOs to function since it
++                      // targets a slightly different chip
++                      power_ctrl: power_ctrl {
++                              compatible = "gpio-poweroff";
++                              gpios = <&gpio 40 1>;
++                              force;
++                      };
++
++                      i2c_soft: i2c@0 {
++                              compatible = "i2c-gpio";
++                              gpios = <&gpio 43 0 /* sda */ &gpio 42 0 /* scl */>;
++                              i2c-gpio,delay-us = <2>; /* ~100 kHz */
++                              #address-cells = <1>;
++                              #size-cells = <0>;
++                      };
++              };
++      };
++
++      fragment@3 {
++              target = <&i2c_soft>;
++              __overlay__ {
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++                      status = "okay";
++
++                      gpio_expander: gpio_expander@20 {
++                              compatible = "nxp,pca9554";
++                              gpio-controller;
++                              #gpio-cells = <2>;
++                              reg = <0x20>;
++                              status = "okay";
++                      };
++
++                      // rtc clock
++                      ds1307: ds1307@68 {
++                              compatible = "maxim,ds1307";
++                              reg = <0x68>;
++                              status = "okay";
++                      };
++              };
++      };
++};