From 6cafe647492605d21c2418b6261bf3182b9229f2 Mon Sep 17 00:00:00 2001
From: Zahari Petkov <zahari@balena.io>
Date: Fri, 8 Feb 2019 13:03:38 +0200
Subject: [PATCH] overlays: balenaFin v1.1.0 carrier board update

A backward compatible update for the balenaFin carrier board for the
Raspberry Pi Compute Module 3/3+ Lite.

The updated overlay includes:
  * support for the newly introduced RGB LEDs
  * i2c-gpio and SDIO improvements
  * DT based Marvell 88W8887 configuration

Signed-off-by: Zahari Petkov <zahari@balena.io>
---
 arch/arm/boot/dts/overlays/README             |  2 +-
 .../boot/dts/overlays/balena-fin-overlay.dts  | 46 ++++++++++++++++++-
 2 files changed, 45 insertions(+), 3 deletions(-)

--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -472,7 +472,7 @@ Params: swap_lr                 Reverse
 
 Name:   balena-fin
 Info:   Overlay that enables WiFi, Bluetooth and the GPIO expander on the
-        Balena Fin board.
+        balenaFin carrier board for the Raspberry Pi Compute Module 3/3+ Lite.
 Load:   dtoverlay=balena-fin
 Params: <None>
 
--- a/arch/arm/boot/dts/overlays/balena-fin-overlay.dts
+++ b/arch/arm/boot/dts/overlays/balena-fin-overlay.dts
@@ -11,6 +11,7 @@
 			pinctrl-0 = <&sdio_pins>;
 			bus-width = <4>;
 			brcm,overclock-50 = <35>;
+			non-removable;
 			status = "okay";
 		};
 	};
@@ -34,7 +35,8 @@
 	fragment@2 {
 		target-path = "/";
 		__overlay__ {
-			// We should investigate how to switch to mmc-pwrseq-sd8787
+			// We should switch to mmc-pwrseq-sd8787 after making it
+			// compatible with sd8887
 			// Currently that module requires two GPIOs to function since it
 			// targets a slightly different chip
 			power_ctrl: power_ctrl {
@@ -46,10 +48,21 @@
 			i2c_soft: i2c@0 {
 				compatible = "i2c-gpio";
 				gpios = <&gpio 43 0 /* sda */ &gpio 42 0 /* scl */>;
-				i2c-gpio,delay-us = <2>; /* ~100 kHz */
+				i2c-gpio,delay-us = <5>;
+				i2c-gpio,scl-open-drain;
+				i2c-gpio,sda-open-drain;
 				#address-cells = <1>;
 				#size-cells = <0>;
 			};
+
+			sd8xxx-wlan {
+				drvdbg = <0x6>;
+				drv_mode = <0x1>;
+				cfg80211_wext = <0xf>;
+				sta_name = "wlan";
+				wfd_name = "p2p";
+				cal_data_cfg = "none";
+			};
 		};
 	};
 
@@ -74,6 +87,35 @@
 				reg = <0x68>;
 				status = "okay";
 			};
+
+			// RGB LEDs (>= v1.1.0)
+			pca9633: pca9633@62 {
+				compatible = "nxp,pca9633";
+				reg = <0x62>;
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				red@0 {
+					label = "red";
+					reg = <0>;
+					linux,default-trigger = "none";
+				};
+				green@1 {
+					label = "green";
+					reg = <1>;
+					linux,default-trigger = "none";
+				};
+				blue@2 {
+					label = "blue";
+					reg = <2>;
+					linux,default-trigger = "none";
+				};
+				unused@3 {
+					label = "unused";
+					reg = <3>;
+					linux,default-trigger = "none";
+				};
+			};
 		};
 	};
 };
