From a10aaa00964e6543b3c310fa982d893f468378a8 Mon Sep 17 00:00:00 2001 From: Florin Sarbu Date: Mon, 30 Apr 2018 09:11:52 +0200 Subject: [PATCH 320/321] overlays: Add support for Balena Fin board Signed-off-by: Florin Sarbu --- arch/arm/boot/dts/overlays/Makefile | 1 + arch/arm/boot/dts/overlays/README | 7 ++ arch/arm/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 diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile index 22f7aa2952aa..a22141d24850 100644 --- 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 \ diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README index 37484904c2d5..bea703661027 100644 --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -404,6 +404,13 @@ Params: swap_lr Reverse the channel allocation, which will also (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: + + Name: bmp085_i2c-sensor Info: This overlay is now deprecated - see i2c-sensor Load: dtoverlay=bmp085_i2c-sensor diff --git a/arch/arm/boot/dts/overlays/balena-fin-overlay.dts b/arch/arm/boot/dts/overlays/balena-fin-overlay.dts new file mode 100644 index 000000000000..269ab7d72938 --- /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"; + }; + }; + }; +}; -- 2.16.1