From 09e843542826ad1241d77d5ef9abb2bce21a0984 Mon Sep 17 00:00:00 2001 From: Florin Sarbu 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 --- 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: + + 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"; + }; + }; + }; +};