Commit 9a95beb6 authored by Phil Elwell's avatar Phil Elwell
Browse files

BCM270X_DT: Add gpio-fan overlay

parent 898a5560
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -35,6 +35,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 \
+8 −0
Original line number Diff line number Diff line
@@ -563,6 +563,14 @@ Load: dtoverlay=googlevoicehat-soundcard
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
+71 −0
Original line number Diff line number Diff line
/*
 * 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";
	};
};