openwrt/target/linux/bcm27xx/patches-4.19/950-0149-BCM270X_DT-Add-gpio-fan-overlay.patch
Adrian Schmutzler 7d7aa2fd92 brcm2708: rename target to bcm27xx
This change makes the names of Broadcom targets consistent by using
the common notation based on SoC/CPU ID (which is used internally
anyway), bcmXXXX instead of brcmXXXX.
This is even used for target TITLE in make menuconfig already,
only the short target name used brcm so far.

Despite, since subtargets range from bcm2708 to bcm2711, it seems
appropriate to use bcm27xx instead of bcm2708 (again, as already done
for BOARDNAME).

This also renames the packages brcm2708-userland and brcm2708-gpu-fw.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Acked-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-02-14 14:10:51 +01:00

115 lines
3.5 KiB
Diff

From 9762b3a015886c42941f535e688ffac1f56e35aa Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.org>
Date: Tue, 18 Sep 2018 11:08:07 +0100
Subject: [PATCH] BCM270X_DT: Add gpio-fan overlay
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
---
arch/arm/boot/dts/overlays/Makefile | 1 +
arch/arm/boot/dts/overlays/README | 8 +++
.../boot/dts/overlays/gpio-fan-overlay.dts | 71 +++++++++++++++++++
3 files changed, 80 insertions(+)
create mode 100644 arch/arm/boot/dts/overlays/gpio-fan-overlay.dts
--- a/arch/arm/boot/dts/overlays/Makefile
+++ b/arch/arm/boot/dts/overlays/Makefile
@@ -33,6 +33,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
fe-pi-audio.dtbo \
goodix.dtbo \
googlevoicehat-soundcard.dtbo \
+ gpio-fan.dtbo \
gpio-ir.dtbo \
gpio-ir-tx.dtbo \
gpio-key.dtbo \
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -541,6 +541,14 @@ Load: dtoverlay=googlevoicehat-soundca
Params: <None>
+Name: gpio-fan
+Info: Configure a GPIO pin to control a cooling fan.
+Load: dtoverlay=gpio-fan,<param>=<val>
+Params: gpiopin GPIO used to control the fan (default 12)
+ temp Temperature at which the fan switches on, in
+ millicelcius (default 55000)
+
+
Name: gpio-ir
Info: Use GPIO pin as rc-core style infrared receiver input. The rc-core-
based gpio_ir_recv driver maps received keys directly to a
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/gpio-fan-overlay.dts
@@ -0,0 +1,71 @@
+/*
+ * Overlay for the Raspberry Pi GPIO Fan @ BCM GPIO12.
+ * Optional parameters:
+ * - "gpiopin" - default GPIO12
+ * - "temp" - default 55000
+ * Requires:
+ * - kernel configurations: CONFIG_SENSORS_GPIO_FAN=m and CONFIG_SENSORS_PWM_FAN=m;
+ * - kernel rebuid;
+ * - DC Fan connected to GPIO via a N-MOSFET (2N7002)
+ *
+ * ┌─────────────────────┐
+ * │Fan negative terminal│
+ * └┬────────────────────┘
+ * │
+ * │──┘
+ * [GPIO12]──────┤ │<─┐ 2N7002
+ * │──┤
+ * │
+ * ─┴─
+ * GND
+ *
+ * sudo dtc -W no-unit_address_vs_reg -@ -I dts -O dtb -o /boot/overlays/gpio-fan.dtbo gpio-fan.dts
+ * sudo nano /boot/config.txt add "dtoverlay=gpio-fan" or "dtoverlay=gpio-fan,gpiopin=12,temp=45000"
+ * or
+ * sudo sh -c "echo '\n# Enable PI GPIO-Fan\ndtoverlay=gpio-fan\n' >> /boot/config.txt"
+ * sudo sh -c "echo '\n# Enable PI GPIO-Fan\ndtoverlay=gpio-fan,gpiopin=12\n' >> /boot/config.txt"
+ *
+ */
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "brcm,bcm2708";
+
+ fragment@0 {
+ target-path = "/";
+ __overlay__ {
+ fan0: gpio-fan@0 {
+ compatible = "gpio-fan";
+ gpios = <&gpio 12 1>;
+ gpio-fan,speed-map = <0 0>,
+ <5000 1>;
+ #cooling-cells = <2>;
+ };
+ };
+ };
+
+ fragment@1 {
+ target = <&cpu_thermal>;
+ polling-delay = <2000>; /* milliseconds */
+ __overlay__ {
+ trips {
+ cpu_hot: trip-point@0 {
+ temperature = <55000>; /* (millicelsius) Fan started at 55°C */
+ hysteresis = <5000>; /* (millicelsius) Fan stopped at 50°C */
+ type = "active";
+ };
+ };
+ cooling-maps {
+ map0 {
+ trip = <&cpu_hot>;
+ cooling-device = <&fan0 1 1>;
+ };
+ };
+ };
+ };
+ __overrides__ {
+ gpiopin = <&fan0>,"gpios:4", <&fan0>,"brcm,pins:0";
+ temp = <&cpu_hot>,"temperature:0";
+ };
+};