brcm63xx: rename target to bcm63xx
[openwrt/staging/wigyori.git] / target / linux / brcm2708 / patches-4.19 / 950-0149-BCM270X_DT-Add-gpio-fan-overlay.patch
1 From 9762b3a015886c42941f535e688ffac1f56e35aa Mon Sep 17 00:00:00 2001
2 From: Phil Elwell <phil@raspberrypi.org>
3 Date: Tue, 18 Sep 2018 11:08:07 +0100
4 Subject: [PATCH] BCM270X_DT: Add gpio-fan overlay
5
6 Signed-off-by: Phil Elwell <phil@raspberrypi.org>
7 ---
8 arch/arm/boot/dts/overlays/Makefile | 1 +
9 arch/arm/boot/dts/overlays/README | 8 +++
10 .../boot/dts/overlays/gpio-fan-overlay.dts | 71 +++++++++++++++++++
11 3 files changed, 80 insertions(+)
12 create mode 100644 arch/arm/boot/dts/overlays/gpio-fan-overlay.dts
13
14 --- a/arch/arm/boot/dts/overlays/Makefile
15 +++ b/arch/arm/boot/dts/overlays/Makefile
16 @@ -33,6 +33,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
17 fe-pi-audio.dtbo \
18 goodix.dtbo \
19 googlevoicehat-soundcard.dtbo \
20 + gpio-fan.dtbo \
21 gpio-ir.dtbo \
22 gpio-ir-tx.dtbo \
23 gpio-key.dtbo \
24 --- a/arch/arm/boot/dts/overlays/README
25 +++ b/arch/arm/boot/dts/overlays/README
26 @@ -541,6 +541,14 @@ Load: dtoverlay=googlevoicehat-soundca
27 Params: <None>
28
29
30 +Name: gpio-fan
31 +Info: Configure a GPIO pin to control a cooling fan.
32 +Load: dtoverlay=gpio-fan,<param>=<val>
33 +Params: gpiopin GPIO used to control the fan (default 12)
34 + temp Temperature at which the fan switches on, in
35 + millicelcius (default 55000)
36 +
37 +
38 Name: gpio-ir
39 Info: Use GPIO pin as rc-core style infrared receiver input. The rc-core-
40 based gpio_ir_recv driver maps received keys directly to a
41 --- /dev/null
42 +++ b/arch/arm/boot/dts/overlays/gpio-fan-overlay.dts
43 @@ -0,0 +1,71 @@
44 +/*
45 + * Overlay for the Raspberry Pi GPIO Fan @ BCM GPIO12.
46 + * Optional parameters:
47 + * - "gpiopin" - default GPIO12
48 + * - "temp" - default 55000
49 + * Requires:
50 + * - kernel configurations: CONFIG_SENSORS_GPIO_FAN=m and CONFIG_SENSORS_PWM_FAN=m;
51 + * - kernel rebuid;
52 + * - DC Fan connected to GPIO via a N-MOSFET (2N7002)
53 + *
54 + * ┌─────────────────────┐
55 + * │Fan negative terminal│
56 + * └┬────────────────────┘
57 + * │
58 + * │──┘
59 + * [GPIO12]──────┤ │<─┐ 2N7002
60 + * │──┤
61 + * │
62 + * ─┴─
63 + * GND
64 + *
65 + * sudo dtc -W no-unit_address_vs_reg -@ -I dts -O dtb -o /boot/overlays/gpio-fan.dtbo gpio-fan.dts
66 + * sudo nano /boot/config.txt add "dtoverlay=gpio-fan" or "dtoverlay=gpio-fan,gpiopin=12,temp=45000"
67 + * or
68 + * sudo sh -c "echo '\n# Enable PI GPIO-Fan\ndtoverlay=gpio-fan\n' >> /boot/config.txt"
69 + * sudo sh -c "echo '\n# Enable PI GPIO-Fan\ndtoverlay=gpio-fan,gpiopin=12\n' >> /boot/config.txt"
70 + *
71 + */
72 +/dts-v1/;
73 +/plugin/;
74 +
75 +/ {
76 + compatible = "brcm,bcm2708";
77 +
78 + fragment@0 {
79 + target-path = "/";
80 + __overlay__ {
81 + fan0: gpio-fan@0 {
82 + compatible = "gpio-fan";
83 + gpios = <&gpio 12 1>;
84 + gpio-fan,speed-map = <0 0>,
85 + <5000 1>;
86 + #cooling-cells = <2>;
87 + };
88 + };
89 + };
90 +
91 + fragment@1 {
92 + target = <&cpu_thermal>;
93 + polling-delay = <2000>; /* milliseconds */
94 + __overlay__ {
95 + trips {
96 + cpu_hot: trip-point@0 {
97 + temperature = <55000>; /* (millicelsius) Fan started at 55°C */
98 + hysteresis = <5000>; /* (millicelsius) Fan stopped at 50°C */
99 + type = "active";
100 + };
101 + };
102 + cooling-maps {
103 + map0 {
104 + trip = <&cpu_hot>;
105 + cooling-device = <&fan0 1 1>;
106 + };
107 + };
108 + };
109 + };
110 + __overrides__ {
111 + gpiopin = <&fan0>,"gpios:4", <&fan0>,"brcm,pins:0";
112 + temp = <&cpu_hot>,"temperature:0";
113 + };
114 +};