Introduction ============ This directory contains Device Tree overlays. Device Tree makes it possible to support many hardware configurations with a single kernel and without the need to explicitly load or blacklist kernel modules. Note that this isn't a "pure" Device Tree configuration (c.f. MACH_BCM2835) - some on-board devices are still configured by the board support code, but the intention is to eventually reach that goal. On Raspberry Pi, Device Tree usage is controlled from /boot/config.txt. By default, the Raspberry Pi kernel boots with device tree enabled. You can completely disable DT usage (for now) by adding: device_tree= to your config.txt, which should cause your Pi to revert to the old way of doing things after a reboot. In /boot you will find a .dtb for each base platform. This describes the hardware that is part of the Raspberry Pi board. The loader (start.elf and its siblings) selects the .dtb file appropriate for the platform by name, and reads it into memory. At this point, all of the optional interfaces (i2c, i2s, spi) are disabled, but they can be enabled using Device Tree parameters: dtparam=i2c=on,i2s=on,spi=on However, this shouldn't be necessary in many use cases because loading an overlay that requires one of those interfaces will cause it to be enabled automatically, and it is advisable to only enable interfaces if they are needed. Configuring additional, optional hardware is done using Device Tree overlays (see below). GPIO numbering uses the hardware pin numbering scheme (aka BCM scheme) and not the physical pin numbers. raspi-config ============ The Advanced Options section of the raspi-config utility can enable and disable Device Tree use, as well as toggling the I2C and SPI interfaces. Note that it is possible to both enable an interface and blacklist the driver, if for some reason you should want to defer the loading. Modules ======= As well as describing the hardware, Device Tree also gives enough information to allow suitable driver modules to be located and loaded, with the corollary that unneeded modules are not loaded. As a result it should be possible to remove lines from /etc/modules, and /etc/modprobe.d/raspi-blacklist.conf can have its contents deleted (or commented out). Using Overlays ============== Overlays are loaded using the "dtoverlay" config.txt setting. As an example, consider I2C Real Time Clock drivers. In the pre-DT world these would be loaded by writing a magic string comprising a device identifier and an I2C address to a special file in /sys/class/i2c-adapter, having first loaded the driver for the I2C interface and the RTC device - something like this: modprobe i2c-bcm2835 modprobe rtc-ds1307 echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device With DT enabled, this becomes a line in config.txt: dtoverlay=i2c-rtc,ds1307 This causes the file /boot/overlays/i2c-rtc.dtbo to be loaded and a "node" describing the DS1307 I2C device to be added to the Device Tree for the Pi. By default it usees address 0x68, but this can be modified with an additional DT parameter: dtoverlay=i2c-rtc,ds1307,addr=0x68 Parameters usually have default values, although certain parameters are mandatory. See the list of overlays below for a description of the parameters and their defaults. Making new Overlays based on existing Overlays ============================================== Recent overlays have been designed in a more general way, so that they can be adapted to hardware by changing their parameters. When you have additional hardware with more than one device of a kind, you end up using the same overlay multiple times with other parameters, e.g. # 2 CAN FD interfaces on spi but with different pins dtoverlay=mcp251xfd,spi0-0,interrupt=25 dtoverlay=mcp251xfd,spi0-1,interrupt=24 # a realtime clock on i2c dtoverlay=i2c-rtc,pcf85063 While this approach does work, it requires knowledge about the hardware design. It is more feasible to simplify things for the end user by providing a single overlay as it is done the traditional way. A new overlay can be generated by using ovmerge utility. https://github.com/raspberrypi/utils/blob/master/ovmerge/ovmerge To generate an overlay for the above configuration we pass the configuration to ovmerge and add the -c flag. ovmerge -c mcp251xfd-overlay.dts,spi0-0,interrupt=25 \ mcp251xfd-overlay.dts,spi0-1,interrupt=24 \ i2c-rtc-overlay.dts,pcf85063 \ >> merged-overlay.dts The -c option writes the command above as a comment into the overlay as a marker that this overlay is generated and how it was generated. After compiling the overlay it can be loaded in a single line. dtoverlay=merged It does the same as the original configuration but without parameters. The Overlay and Parameter Reference =================================== N.B. When editing this file, please preserve the indentation levels to make it simple to parse programmatically. NO HARD TABS. Name: Info: Configures the base Raspberry Pi hardware Load: Params: ant1 Select antenna 1 (default). CM4/5 only. ant2 Select antenna 2. CM4/5 only. noant Disable both antennas. CM4/5 only. audio Set to "on" to enable the onboard ALSA audio interface (default "off") axiperf Set to "on" to enable the AXI bus performance monitors. See /sys/kernel/debug/raspberrypi_axi_monitor for the results. bdaddr Set an alternative Bluetooth address (BDADDR). The value should be a 6-byte hexadecimal value, with or without colon separators, written least- significant-byte first. For example, bdaddr=06:05:04:03:02:01 will set the BDADDR to 01:02:03:04:05:06. button_debounce Set the debounce delay (in ms) on the power/ shutdown button (default 50ms) cam0_reg Enables CAM 0 regulator. Only required on CM1 & 3. cam0_reg_gpio Set GPIO for CAM 0 regulator. Default 31 on CM1, 3, and 4S. Default of GPIO expander 5 on CM4, but override switches to normal GPIO. cam1_reg Enables CAM 1 regulator. Only required on CM1 & 3. cam1_reg_gpio Set GPIO for CAM 1 regulator. Default 3 on CM1, 3, and 4S. Default of GPIO expander 5 on CM4, but override switches to normal GPIO. cooling_fan Enables the Pi 5 cooling fan (enabled automatically by the firmware) drm_fb0_rp1_dpi Assign /dev/fb0 to the RP1 DPI output drm_fb0_rp1_dsi0 Assign /dev/fb0 to the RP1 DSI0 output drm_fb0_rp1_dsi1 Assign /dev/fb0 to the RP1 DSI1 output drm_fb0_vc4 Assign /dev/fb0 to the vc4 outputs drm_fb1_rp1_dpi Assign /dev/fb1 to the RP1 DPI output drm_fb1_rp1_dsi0 Assign /dev/fb1 to the RP1 DSI0 output drm_fb1_rp1_dsi1 Assign /dev/fb1 to the RP1 DSI1 output drm_fb1_vc4 Assign /dev/fb1 to the vc4 outputs drm_fb2_rp1_dpi Assign /dev/fb2 to the RP1 DPI output drm_fb2_rp1_dsi0 Assign /dev/fb2 to the RP1 DSI0 output drm_fb2_rp1_dsi1 Assign /dev/fb2 to the RP1 DSI1 output drm_fb2_vc4 Assign /dev/fb2 to the vc4 outputs eee Enable Energy Efficient Ethernet support for compatible devices (default "on"). See also "tx_lpi_timer". Pi3B+ only. eth_downshift_after Set the number of auto-negotiation failures after which the 1000Mbps modes are disabled. Legal values are 2, 3, 4, 5 and 0, where 0 means never downshift (default 2). Pi3B+ only. eth_led0 Set mode of LED0 - amber on Pi3B+ (default "1"), green on Pi4/5 (default "0"). The legal values are: Pi3B+ 0=link/activity 1=link1000/activity 2=link100/activity 3=link10/activity 4=link100/1000/activity 5=link10/1000/activity 6=link10/100/activity 14=off 15=on Pi4/5 0=Speed/Activity 1=Speed 2=Flash activity 3=FDX 4=Off 5=On 6=Alt 7=Speed/Flash 8=Link 9=Activity eth_led1 Set mode of LED1 - green on Pi3B+ (default "6"), amber on Pi4/5 (default "8"). See eth_led0 for legal values. eth_max_speed Set the maximum speed a link is allowed to negotiate. Legal values are 10, 100 and 1000 (default 1000). Pi3B+ only. fan_temp0 Temperature threshold (in millicelcius) for 1st cooling level (default 50000). Pi5 only. fan_temp0_hyst Temperature hysteresis (in millicelcius) for 1st cooling level (default 5000). Pi5 only. fan_temp0_speed Fan PWM setting for 1st cooling level (0-255, default 75). Pi5 only. fan_temp1 Temperature threshold (in millicelcius) for 2nd cooling level (default 60000). Pi5 only. fan_temp1_hyst Temperature hysteresis (in millicelcius) for 2nd cooling level (default 5000). Pi5 only. fan_temp1_speed Fan PWM setting for 2nd cooling level (0-255, default 125). Pi5 only. fan_temp2 Temperature threshold (in millicelcius) for 3rd cooling level (default 67500). Pi5 only. fan_temp2_hyst Temperature hysteresis (in millicelcius) for 3rd cooling level (default 5000). Pi5 only. fan_temp2_speed Fan PWM setting for 3rd cooling level (0-255, default 175). Pi5 only. fan_temp3 Temperature threshold (in millicelcius) for 4th cooling level (default 75000). Pi5 only. fan_temp3_hyst Temperature hysteresis (in millicelcius) for 4th cooling level (default 5000). Pi5 only. fan_temp3_speed Fan PWM setting for 4th cooling level (0-255, default 250). Pi5 only. hdmi Set to "off" to disable the HDMI interface (default "on") i2c An alias for i2c_arm i2c_arm Set to "on" to enable the ARM's i2c interface (default "off") i2c_arm_baudrate Set the baudrate of the ARM's i2c interface (default "100000") i2c_baudrate An alias for i2c_arm_baudrate i2c_csi_dsi Set to "on" to enable the i2c_csi_dsi interface i2c_csi_dsi0 Set to "on" to enable the i2c_csi_dsi0 interface i2c_csi_dsi1 Set to "on" to enable the i2c_csi_dsi1 interface i2c_vc Set to "on" to enable the i2c interface usually reserved for the VideoCore processor (default "off") i2c_vc_baudrate Set the baudrate of the VideoCore i2c interface (default "100000") i2s Set to "on" to enable the i2s interface (default "off") i2s_dma4 Use to enable 40-bit DMA on the i2s interface (the assigned value doesn't matter) (2711 only) krnbt Set to "off" to disable autoprobing of Bluetooth driver without need of hciattach/btattach (default "on") krnbt_baudrate Set the baudrate of the PL011 UART when used with krnbt=on nvme Alias for "pciex1" (2712 only) nvmem_cust_rw Allow read/write access to customer otp nvmem_mac_rw Allow read/write access to mac addresses otp nvmem_priv_rw Allow read/write access to customer private otp pcie Set to "off" to disable the PCIe interface (default "on") (2711 only, but not applicable on CM4S) N.B. USB-A ports on 4B are subsequently disabled pcie_tperst_clk_ms Add N milliseconds between PCIe reference clock activation and PERST# deassertion (CM4 and 2712, default "0") pciex1 Set to "on" to enable the external PCIe link (2712 only, default "off") pciex1_gen Sets the PCIe "GEN"/speed for the external PCIe link (2712 only, default "2") pciex1_no_l0s Set to "on" to disable ASPM L0s on the external PCIe link for devices that have broken implementations (2712 only, default "off") pciex1_tperst_clk_ms Alias for pcie_tperst_clk_ms (2712 only, default "0") spi Set to "on" to enable the spi interfaces (default "off") spi_dma4 Use to enable 40-bit DMA on spi interfaces (the assigned value doesn't matter) (2711 only) random Set to "on" to enable the hardware random number generator (default "on") rtc Set to "off" to disable the onboard Real Time Clock (2712 only, default "on") rtc_bbat_vchg Set the RTC backup battery charging voltage in microvolts. If set to 0 or not specified, the trickle charger is disabled. (2712 only, default "0") sd Set to "off" to disable the SD card (or eMMC on non-lite SKU of CM4). (default "on") sd_cqe Use to enable Command Queueing on the SD interface for faster Class A2 card performance (Pi 5 only, default "off") sd_overclock Clock (in MHz) to use when the MMC framework requests 50MHz sd_poll_once Looks for a card once after booting. Useful for network booting scenarios to avoid the overhead of continuous polling. N.B. Using this option restricts the system to using a single card per boot (or none at all). (default off) sd_force_pio Disable DMA support for SD driver (default off) sd_pio_limit Number of blocks above which to use DMA for SD card (default 1) sd_debug Enable debug output from SD driver (default off) sdio_overclock Clock (in MHz) to use when the MMC framework requests 50MHz for the SDIO/WLAN interface. suspend Make the power button trigger a suspend rather than a power-off (2712 only, default "off") tx_lpi_timer Set the delay in microseconds between going idle and entering the low power state (default 600). Requires EEE to be enabled - see "eee". uart0 Set to "off" to disable uart0 (default "on") uart0_console Move the kernel boot console to UART0 on pins 6, 8 and 10 of the 40-way header (2712 only, default "off") uart1 Set to "on" or "off" to enable or disable uart1 (default varies) watchdog Set to "on" to enable the hardware watchdog (default "off") wifiaddr Set an alternative WiFi MAC address. The value should be a 6-byte hexadecimal value, with or without colon separators, written in the natural (big-endian) order. act_led_trigger Choose which activity the LED tracks. Use "heartbeat" for a nice load indicator. (default "mmc") act_led_activelow Set to "on" to invert the sense of the LED (default "off") N.B. For Pi 3B, 3B+, 3A+ and 4B, use the act-led overlay. act_led_gpio Set which GPIO to use for the activity LED (in case you want to connect it to an external device) (default "16" on a non-Plus board, "47" on a Plus or Pi 2) N.B. For Pi 3B, 3B+, 3A+ and 4B, use the act-led overlay. pwr_led_trigger pwr_led_activelow pwr_led_gpio As for act_led_*, but using the PWR LED. Not available on Model A/B boards. N.B. It is recommended to only enable those interfaces that are needed. Leaving all interfaces enabled can lead to unwanted behaviour (i2c_vc interfering with Pi Camera, I2S and SPI hogging GPIO pins, etc.) Note also that i2c, i2c_arm and i2c_vc are aliases for the physical interfaces i2c0 and i2c1. Use of the numeric variants is still possible but deprecated because the ARM/VC assignments differ between board revisions. The same board-specific mapping applies to i2c_baudrate, and the other i2c baudrate parameters. Name: act-led Info: Pi 3B, 3B+, 3A+ and 4B use a GPIO expander to drive the LEDs which can only be accessed from the VPU. There is a special driver for this with a separate DT node, which has the unfortunate consequence of breaking the act_led_gpio and act_led_activelow dtparams. This overlay changes the GPIO controller back to the standard one and restores the dtparams. Load: dtoverlay=act-led,= Params: activelow Set to "on" to invert the sense of the LED (default "off") gpio Set which GPIO to use for the activity LED (in case you want to connect it to an external device) REQUIRED Name: adafruit-st7735r Info: Overlay for the SPI-connected Adafruit 1.8" 160x128 or 128x128 displays, based on the ST7735R chip. This overlay uses the newer DRM/KMS "Tiny" driver. Load: dtoverlay=adafruit-st7735r,= Params: 128x128 Select the 128x128 driver (default 160x128) rotate Display rotation {0,90,180,270} (default 90) speed SPI bus speed in Hz (default 4000000) dc_pin GPIO pin for D/C (default 24) reset_pin GPIO pin for RESET (default 25) led_pin GPIO used to control backlight (default 18) Name: adafruit18 Info: Overlay for the SPI-connected Adafruit 1.8" display (based on the ST7735R chip). It includes support for the "green tab" version. This overlay uses the older fbtft driver. Load: dtoverlay=adafruit18,= Params: green Use the adafruit18_green variant. rotate Display rotation {0,90,180,270} speed SPI bus speed in Hz (default 4000000) fps Display frame rate in Hz bgr Enable BGR mode (default off) debug Debug output level {0-7} dc_pin GPIO pin for D/C (default 24) reset_pin GPIO pin for RESET (default 25) led_pin GPIO used to control backlight (default 18) Name: adau1977-adc Info: Overlay for activation of ADAU1977 ADC codec over I2C for control and I2S for data. Load: dtoverlay=adau1977-adc Params: Name: adau7002-simple Info: Overlay for the activation of ADAU7002 stereo PDM to I2S converter. Load: dtoverlay=adau7002-simple,= Params: card-name Override the default, "adau7002", card name. Name: ads1015 Info: Overlay for activation of Texas Instruments ADS1015 ADC over I2C Load: dtoverlay=ads1015,= Params: addr I2C bus address of device. Set based on how the addr pin is wired. (default=0x48 assumes addr is pulled to GND) cha_enable Enable virtual channel a. (default=true) cha_cfg Set the configuration for virtual channel a. (default=4 configures this channel for the voltage at A0 with respect to GND) cha_datarate Set the datarate (samples/sec) for this channel. (default=4 sets 1600 sps) cha_gain Set the gain of the Programmable Gain Amplifier for this channel. (default=2 sets the full scale of the channel to 2.048 Volts) Channel (ch) parameters can be set for each enabled channel. A maximum of 4 channels can be enabled (letters a thru d). For more information refer to the device datasheet at: http://www.ti.com/lit/ds/symlink/ads1015.pdf Name: ads1115 Info: Texas Instruments ADS1115 ADC Load: dtoverlay=ads1115,[=] Params: addr I2C bus address of device. Set based on how the addr pin is wired. (default=0x48 assumes addr is pulled to GND) cha_enable Enable virtual channel a. cha_cfg Set the configuration for virtual channel a. (default=4 configures this channel for the voltage at A0 with respect to GND) cha_datarate Set the datarate (samples/sec) for this channel. (default=7 sets 860 sps) cha_gain Set the gain of the Programmable Gain Amplifier for this channel. (Default 1 sets the full scale of the channel to 4.096 Volts) i2c0 Choose the I2C0 bus on GPIOs 0&1 i2c_csi_dsi Choose the I2C0 bus on GPIOs 44&45 i2c3 Choose the I2C3 bus (configure with the i2c3 overlay - BCM2711 only) i2c4 Choose the I2C4 bus (configure with the i2c4 overlay - BCM2711 only) i2c5 Choose the I2C5 bus (configure with the i2c5 overlay - BCM2711 only) i2c6 Choose the I2C6 bus (configure with the i2c6 overlay - BCM2711 only) Channel parameters can be set for each enabled channel. A maximum of 4 channels can be enabled (letters a thru d). For more information refer to the device datasheet at: http://www.ti.com/lit/ds/symlink/ads1115.pdf Name: ads7846 Info: ADS7846 Touch controller Load: dtoverlay=ads7846,= Params: cs SPI bus Chip Select (default 1) speed SPI bus speed (default 2MHz, max 3.25MHz) penirq GPIO used for PENIRQ. REQUIRED penirq_pull Set GPIO pull (default 0=none, 2=pullup) swapxy Swap x and y axis xmin Minimum value on the X axis (default 0) ymin Minimum value on the Y axis (default 0) xmax Maximum value on the X axis (default 4095) ymax Maximum value on the Y axis (default 4095) pmin Minimum reported pressure value (default 0) pmax Maximum reported pressure value (default 65535) xohms Touchpanel sensitivity (X-plate resistance) (default 400) penirq is required and usually xohms (60-100) has to be set as well. Apart from that, pmax (255) and swapxy are also common. The rest of the calibration can be done with xinput-calibrator. See: github.com/notro/fbtft/wiki/FBTFT-on-Raspian Device Tree binding document: www.kernel.org/doc/Documentation/devicetree/bindings/input/ads7846.txt Name: adv7282m Info: Analog Devices ADV7282M analogue video to CSI2 bridge. Uses Unicam1, which is the standard camera connector on most Pi variants. Load: dtoverlay=adv7282m,= Params: addr Overrides the I2C address (default 0x21) media-controller Configure use of Media Controller API for configuring the sensor (default off) Name: adv728x-m Info: Analog Devices ADV728[0|1|2]-M analogue video to CSI2 bridges. This is a wrapper for adv7282m, and defaults to ADV7282M. Load: dtoverlay=adv728x-m,= Params: addr Overrides the I2C address (default 0x21) adv7280m Select ADV7280-M. adv7281m Select ADV7281-M. adv7281ma Select ADV7281-MA. media-controller Configure use of Media Controller API for configuring the sensor (default off) Name: akkordion-iqdacplus Info: Configures the Digital Dreamtime Akkordion Music Player (based on the OEM IQAudIO DAC+ or DAC Zero module). Load: dtoverlay=akkordion-iqdacplus,= Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec Digital volume control. Enable with dtoverlay=akkordion-iqdacplus,24db_digital_gain (The default behaviour is that the Digital volume control is limited to a maximum of 0dB. ie. it can attenuate but not provide gain. For most users, this will be desired as it will prevent clipping. By appending the 24db_digital_gain parameter, the Digital volume control will allow up to 24dB of gain. If this parameter is enabled, it is the responsibility of the user to ensure that the Digital volume control is set to a value that does not result in clipping/distortion!) Name: allo-boss-dac-pcm512x-audio Info: Configures the Allo Boss DAC audio cards. Load: dtoverlay=allo-boss-dac-pcm512x-audio, Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec Digital volume control. Enable with "dtoverlay=allo-boss-dac-pcm512x-audio, 24db_digital_gain" (The default behaviour is that the Digital volume control is limited to a maximum of 0dB. ie. it can attenuate but not provide gain. For most users, this will be desired as it will prevent clipping. By appending the 24db_digital_gain parameter, the Digital volume control will allow up to 24dB of gain. If this parameter is enabled, it is the responsibility of the user to ensure that the Digital volume control is set to a value that does not result in clipping/distortion!) slave Force Boss DAC into slave mode, using Pi a master for bit clock and frame clock. Enable with "dtoverlay=allo-boss-dac-pcm512x-audio, slave" Name: allo-boss2-dac-audio Info: Configures the Allo Boss2 DAC audio card Load: dtoverlay=allo-boss2-dac-audio Params: Name: allo-digione Info: Configures the Allo Digione audio card Load: dtoverlay=allo-digione Params: Name: allo-katana-dac-audio Info: Configures the Allo Katana DAC audio card Load: dtoverlay=allo-katana-dac-audio Params: Name: allo-piano-dac-pcm512x-audio Info: Configures the Allo Piano DAC (2.0/2.1) audio cards. (NB. This initial support is for 2.0 channel audio ONLY! ie. stereo. The subwoofer outputs on the Piano 2.1 are not currently supported!) Load: dtoverlay=allo-piano-dac-pcm512x-audio, Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec Digital volume control. (The default behaviour is that the Digital volume control is limited to a maximum of 0dB. ie. it can attenuate but not provide gain. For most users, this will be desired as it will prevent clipping. By appending the 24db_digital_gain parameter, the Digital volume control will allow up to 24dB of gain. If this parameter is enabled, it is the responsibility of the user to ensure that the Digital volume control is set to a value that does not result in clipping/distortion!) Name: allo-piano-dac-plus-pcm512x-audio Info: Configures the Allo Piano DAC (2.1) audio cards. Load: dtoverlay=allo-piano-dac-plus-pcm512x-audio, Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec Digital volume control. (The default behaviour is that the Digital volume control is limited to a maximum of 0dB. ie. it can attenuate but not provide gain. For most users, this will be desired as it will prevent clipping. By appending the 24db_digital_gain parameter, the Digital volume control will allow up to 24dB of gain. If this parameter is enabled, it is the responsibility of the user to ensure that the Digital volume control is set to a value that does not result in clipping/distortion!) glb_mclk This option is only with Kali board. If enabled, MCLK for Kali is used and PLL is disabled for better voice quality. (default Off) Name: anyspi Info: Universal device tree overlay for SPI devices Just specify the SPI address and device name ("compatible" property). This overlay lacks any device-specific parameter support! For devices on spi1 or spi2, the interfaces should be enabled with one of the spi1-1/2/3cs and/or spi2-1/2/3cs overlays. Examples: 1. SPI NOR flash on spi0.1, maximum SPI clock frequency 45MHz: dtoverlay=anyspi:spi0-1,dev="jedec,spi-nor",speed=45000000 2. MCP3204 ADC on spi1.2, maximum SPI clock frequency 500kHz: dtoverlay=anyspi:spi1-2,dev="microchip,mcp3204" Load: dtoverlay=anyspi,= Params: spi- Configure device at spi, cs (boolean, required) dev Set device name to search compatible module (string, required) speed Set SPI clock frequency in Hz (integer, optional, default 500000) Name: apds9960 Info: Configures the AVAGO APDS9960 digital proximity, ambient light, RGB and gesture sensor Load: dtoverlay=apds9960,= Params: gpiopin GPIO used for INT (default 4) noints Disable the interrupt GPIO line. Name: applepi-dac Info: Configures the Orchard Audio ApplePi-DAC audio card Load: dtoverlay=applepi-dac Params: Name: arducam-64mp Info: Arducam 64MP camera module. Uses Unicam 1, which is the standard camera connector on most Pi variants. Load: dtoverlay=arducam-64mp,= Params: rotation Mounting rotation of the camera sensor (0 or 180, default 0) orientation Sensor orientation (0 = front, 1 = rear, 2 = external, default external) media-controller Configure use of Media Controller API for configuring the sensor (default on) cam0 Adopt the default configuration for CAM0 on a Compute Module (CSI0, i2c_vc, and cam0_reg). vcm Select lens driver state. Default is enabled, but vcm=off will disable. Name: arducam-pivariety Info: Arducam Pivariety camera module. Uses Unicam 1, which is the standard camera connector on most Pi variants. Load: dtoverlay=arducam-pivariety,= Params: rotation Mounting rotation of the camera sensor (0 or 180, default 0) orientation Sensor orientation (0 = front, 1 = rear, 2 = external, default external) media-controller Configure use of Media Controller API for configuring the sensor (default on) cam0 Adopt the default configuration for CAM0 on a Compute Module (CSI0, i2c_vc, and cam0_reg). Name: at86rf233 Info: Configures the Atmel AT86RF233 802.15.4 low-power WPAN transceiver, connected to spi0.0 Load: dtoverlay=at86rf233,= Params: interrupt GPIO used for INT (default 23) reset GPIO used for Reset (default 24) sleep GPIO used for Sleep (default 25) speed SPI bus speed in Hz (default 3000000) trim Fine tuning of the internal capacitance arrays (0=+0pF, 15=+4.5pF, default 15) Name: audioinjector-addons Info: Configures the audioinjector.net audio add on soundcards Load: dtoverlay=audioinjector-addons,= Params: non-stop-clocks Keeps the clocks running even when the stream is paused or stopped (default off) Name: audioinjector-bare-i2s Info: Configures the audioinjector.net audio bare i2s soundcard Load: dtoverlay=audioinjector-bare-i2s Params: Name: audioinjector-isolated-soundcard Info: Configures the audioinjector.net isolated soundcard Load: dtoverlay=audioinjector-isolated-soundcard Params: Name: audioinjector-ultra Info: Configures the audioinjector.net ultra soundcard Load: dtoverlay=audioinjector-ultra Params: Name: audioinjector-wm8731-audio Info: Configures the audioinjector.net audio add on soundcard Load: dtoverlay=audioinjector-wm8731-audio Params: Name: audiosense-pi Info: Configures the audiosense-pi add on soundcard For more information refer to https://gitlab.com/kakar0t/audiosense-pi Load: dtoverlay=audiosense-pi Params: Name: audremap Info: Switches PWM sound output to GPIOs on the 40-pin header Load: dtoverlay=audremap,= Params: swap_lr Reverse the channel allocation, which will also swap the audio jack outputs (default off) enable_jack Don't switch off the audio jack output. Does nothing on BCM2711 (default off) pins_12_13 Select GPIOs 12 & 13 (default) pins_18_19 Select GPIOs 18 & 19 pins_40_41 Select GPIOs 40 & 41 (not available on CM4, used for other purposes) pins_40_45 Select GPIOs 40 & 45 (don't use on BCM2711 - the pins are on different controllers) Name: balena-fin Info: Overlay that enables WLAN, Bluetooth and the GPIO expander on the balenaFin carrier board for the Raspberry Pi Compute Module 3/3+ Lite. Load: dtoverlay=balena-fin Params: Name: bcm2712d0 Info: Overlay encapsulating the BCM2712 C0->D0 differences Load: dtoverlay=bcm2712d0 Params: Name: bmp085_i2c-sensor Info: This overlay is now deprecated - see i2c-sensor Load: Name: camera-mux-2port Info: Configures a 2 port camera multiplexer Note that currently ALL IMX290 modules share a common clock, therefore all modules will need to have the same clock frequency. Load: dtoverlay=camera-mux-2port,= Params: cam0-arducam-64mp Select Arducam64MP for camera on port 0 cam0-imx219 Select IMX219 for camera on port 0 cam0-imx258 Select IMX258 for camera on port 0 cam0-imx290 Select IMX290 for camera on port 0 cam0-imx477 Select IMX477 for camera on port 0 cam0-imx519 Select IMX519 for camera on port 0 cam0-imx708 Select IMX708 for camera on port 0 cam0-ov2311 Select OV2311 for camera on port 0 cam0-ov5647 Select OV5647 for camera on port 0 cam0-ov64a40 Select OV64A40 for camera on port 0 cam0-ov7251 Select OV7251 for camera on port 0 cam0-ov9281 Select OV9281 for camera on port 0 cam0-imx290-clk-freq Set clock frequency for an IMX290 on port 0 cam1-arducam-64mp Select Arducam64MP for camera on port 1 cam1-imx219 Select IMX219 for camera on port 1 cam1-imx258 Select IMX258 for camera on port 1 cam1-imx290 Select IMX290 for camera on port 1 cam1-imx477 Select IMX477 for camera on port 1 cam1-imx519 Select IMX519 for camera on port 1 cam1-imx708 Select IMX708 for camera on port 1 cam1-ov2311 Select OV2311 for camera on port 1 cam1-ov5647 Select OV5647 for camera on port 1 cam1-ov64a40 Select OV64A40 for camera on port 1 cam1-ov7251 Select OV7251 for camera on port 1 cam1-ov9281 Select OV9281 for camera on port 1 cam1-imx290-clk-freq Set clock frequency for an IMX290 on port 1 cam0-sync-source Set camera on port 0 as vsync source cam0-sync-sink Set camera on port 0 as vsync sink cam1-sync-source Set camera on port 1 as vsync source cam1-sync-sink Set camera on port 1 as vsync sink cam0 Connect the mux to CAM0 port (default is CAM1) Name: camera-mux-4port Info: Configures a 4 port camera multiplexer Note that currently ALL IMX290 modules share a common clock, therefore all modules will need to have the same clock frequency. Load: dtoverlay=camera-mux-4port,= Params: cam0-arducam-64mp Select Arducam64MP for camera on port 0 cam0-imx219 Select IMX219 for camera on port 0 cam0-imx258 Select IMX258 for camera on port 0 cam0-imx290 Select IMX290 for camera on port 0 cam0-imx477 Select IMX477 for camera on port 0 cam0-imx519 Select IMX519 for camera on port 0 cam0-imx708 Select IMX708 for camera on port 0 cam0-ov2311 Select OV2311 for camera on port 0 cam0-ov5647 Select OV5647 for camera on port 0 cam0-ov64a40 Select OV64A40 for camera on port 0 cam0-ov7251 Select OV7251 for camera on port 0 cam0-ov9281 Select OV9281 for camera on port 0 cam0-imx290-clk-freq Set clock frequency for an IMX290 on port 0 cam1-arducam-64mp Select Arducam64MP for camera on port 1 cam1-imx219 Select IMX219 for camera on port 1 cam1-imx258 Select IMX258 for camera on port 1 cam1-imx290 Select IMX290 for camera on port 1 cam1-imx477 Select IMX477 for camera on port 1 cam1-imx519 Select IMX519 for camera on port 1 cam1-imx708 Select IMX708 for camera on port 1 cam1-ov2311 Select OV2311 for camera on port 1 cam1-ov5647 Select OV5647 for camera on port 1 cam1-ov64a40 Select OV64A40 for camera on port 1 cam1-ov7251 Select OV7251 for camera on port 1 cam1-ov9281 Select OV9281 for camera on port 1 cam1-imx290-clk-freq Set clock frequency for an IMX290 on port 1 cam2-arducam-64mp Select Arducam64MP for camera on port 2 cam2-imx219 Select IMX219 for camera on port 2 cam2-imx258 Select IMX258 for camera on port 2 cam2-imx290 Select IMX290 for camera on port 2 cam2-imx477 Select IMX477 for camera on port 2 cam2-imx519 Select IMX519 for camera on port 2 cam2-imx708 Select IMX708 for camera on port 2 cam2-ov2311 Select OV2311 for camera on port 2 cam2-ov5647 Select OV5647 for camera on port 2 cam2-ov64a40 Select OV64A40 for camera on port 2 cam2-ov7251 Select OV7251 for camera on port 2 cam2-ov9281 Select OV9281 for camera on port 2 cam2-imx290-clk-freq Set clock frequency for an IMX290 on port 2 cam3-arducam-64mp Select Arducam64MP for camera on port 3 cam3-imx219 Select IMX219 for camera on port 3 cam3-imx258 Select IMX258 for camera on port 3 cam3-imx290 Select IMX290 for camera on port 3 cam3-imx477 Select IMX477 for camera on port 3 cam3-imx519 Select IMX519 for camera on port 3 cam3-imx708 Select IMX708 for camera on port 3 cam3-ov2311 Select OV2311 for camera on port 3 cam3-ov5647 Select OV5647 for camera on port 3 cam3-ov64a40 Select OV64A40 for camera on port 3 cam3-ov7251 Select OV7251 for camera on port 3 cam3-ov9281 Select OV9281 for camera on port 3 cam3-imx290-clk-freq Set clock frequency for an IMX290 on port 3 cam0-sync-source Set camera on port 0 as vsync source cam0-sync-sink Set camera on port 0 as vsync sink cam1-sync-source Set camera on port 1 as vsync source cam1-sync-sink Set camera on port 1 as vsync sink cam2-sync-source Set camera on port 2 as vsync source cam2-sync-sink Set camera on port 2 as vsync sink cam3-sync-source Set camera on port 3 as vsync source cam3-sync-sink Set camera on port 3 as vsync sink cam0 Connect the mux to CAM0 port (default is CAM1) Name: cap1106 Info: Enables the ability to use the cap1106 touch sensor as a keyboard Load: dtoverlay=cap1106,= Params: int_pin GPIO pin for interrupt signal (default 23) Name: chipdip-dac Info: Configures Chip Dip audio cards. Load: dtoverlay=chipdip-dac Params: Name: cirrus-wm5102 Info: Configures the Cirrus Logic Audio Card Load: dtoverlay=cirrus-wm5102 Params: Name: cm-swap-i2c0 Info: Largely for Compute Modules 1&3 where the original instructions for adding a camera used GPIOs 0&1 for CAM1 and 28&29 for CAM0, whilst all other platforms use 28&29 (or 44&45) for CAM1. The default assignment through using this overlay is for i2c0 to use 28&29, and i2c10 (aka i2c_csi_dsi) to use 28&29, but the overrides allow this to be changed. Load: dtoverlay=cm-swap-i2c0,= Params: i2c0-gpio0 Use GPIOs 0&1 for i2c0 i2c0-gpio28 Use GPIOs 28&29 for i2c0 (default) i2c0-gpio44 Use GPIOs 44&45 for i2c0 i2c10-gpio0 Use GPIOs 0&1 for i2c0 (default) i2c10-gpio28 Use GPIOs 28&29 for i2c0 i2c10-gpio44 Use GPIOs 44&45 for i2c0 Name: cma Info: Set custom CMA sizes, only use if you know what you are doing, might clash with other overlays like vc4-fkms-v3d and vc4-kms-v3d. Load: dtoverlay=cma,= Params: cma-512 CMA is 512MB (needs 1GB) cma-448 CMA is 448MB (needs 1GB) cma-384 CMA is 384MB (needs 1GB) cma-320 CMA is 320MB (needs 1GB) cma-256 CMA is 256MB (needs 1GB) cma-192 CMA is 192MB (needs 1GB) cma-128 CMA is 128MB cma-96 CMA is 96MB cma-64 CMA is 64MB cma-size CMA size in bytes, 4MB aligned cma-default Use upstream's default value Name: crystalfontz-cfa050_pi_m Info: Configures the Crystalfontz CFA050-PI-M series of Raspberry Pi CM4 based modules using the CFA7201280A0_050Tx 7" TFT LCD displays, with or without capacitive touch screen. Requires use of vc4-kms-v3d. Load: dtoverlay=crystalfontz-cfa050_pi_m,= Params: captouch Enable capacitive touch display Name: cutiepi-panel Info: 8" TFT LCD display and touch panel used by cutiepi.io Load: dtoverlay=cutiepi-panel Params: Name: dacberry400 Info: Configures the dacberry400 add on soundcard Load: dtoverlay=dacberry400 Params: Name: dht11 Info: Overlay for the DHT11/DHT21/DHT22 humidity/temperature sensors Also sometimes found with the part number(s) AM230x. Load: dtoverlay=dht11,= Params: gpiopin GPIO connected to the sensor's DATA output. (default 4) Name: dionaudio-kiwi Info: Configures the Dion Audio KIWI STREAMER Load: dtoverlay=dionaudio-kiwi Params: Name: dionaudio-loco Info: Configures the Dion Audio LOCO DAC-AMP Load: dtoverlay=dionaudio-loco Params: Name: dionaudio-loco-v2 Info: Configures the Dion Audio LOCO-V2 DAC-AMP Load: dtoverlay=dionaudio-loco-v2,= Params: 24db_digital_gain Allow gain to be applied via the PCM512x codec Digital volume control. Enable with "dtoverlay=hifiberry-dacplus,24db_digital_gain" (The default behaviour is that the Digital volume control is limited to a maximum of 0dB. ie. it can attenuate but not provide gain. For most users, this will be desired as it will prevent clipping. By appending the 24dB_digital_gain parameter, the Digital volume control will allow up to 24dB of gain. If this parameter is enabled, it is the responsibility of the user to ensure that the Digital volume control is set to a value that does not result in clipping/distortion!) Name: disable-bt Info: Disable onboard Bluetooth on Bluetooth-capable Raspberry Pis. On Pis prior to Pi 5 this restores UART0/ttyAMA0 over GPIOs 14 & 15. Load: dtoverlay=disable-bt Params: Name: disable-bt-pi5 Info: See disable-bt Name: disable-emmc2 Info: Disable EMMC2 controller on BCM2711. The allows the onboard EMMC storage on Compute Module 4 to be disabled e.g. if a fault has occurred. Load: dtoverlay=disable-emmc2 Params: Name: disable-wifi Info: Disable onboard WLAN on WiFi-capable Raspberry Pis. Load: dtoverlay=disable-wifi Params: Name: disable-wifi-pi5 Info: See disable-wifi Name: dpi18 Info: Overlay for a generic 18-bit DPI display This uses GPIOs 0-21 (so no I2C, uart etc.), and activates the output 2-3 seconds after the kernel has started. Load: dtoverlay=dpi18 Params: Name: dpi18cpadhi Info: Overlay for a generic 18-bit DPI display (in 'mode 6' connection scheme) This uses GPIOs 0-9,12-17,20-25 (so no I2C, uart etc.), and activates the output 3-3 seconds after the kernel has started. Load: dtoverlay=dpi18cpadhi Params: Name: dpi24 Info: Overlay for a generic 24-bit DPI display This uses GPIOs 0-27 (so no I2C, uart etc.), and activates the output 2-3 seconds after the kernel has started. Load: dtoverlay=dpi24 Params: Name: draws Info: Configures the NW Digital Radio DRAWS Hat The board includes an ADC to measure various board values and also provides two analog user inputs on the expansion header. The ADC can be configured for various sample rates and gain values to adjust the input range. Tables describing the two parameters follow. ADC Gain Values: 0 = +/- 6.144V 1 = +/- 4.096V 2 = +/- 2.048V 3 = +/- 1.024V 4 = +/- 0.512V 5 = +/- 0.256V 6 = +/- 0.256V 7 = +/- 0.256V ADC Datarate Values: 0 = 128sps 1 = 250sps 2 = 490sps 3 = 920sps 4 = 1600sps (default) 5 = 2400sps 6 = 3300sps 7 = 3300sps Load: dtoverlay=draws,= Params: draws_adc_ch4_gain Sets the full scale resolution of the ADCs input voltage sensor (default 1) draws_adc_ch4_datarate Sets the datarate of the ADCs input voltage sensor draws_adc_ch5_gain Sets the full scale resolution of the ADCs 5V rail voltage sensor (default 1) draws_adc_ch5_datarate Sets the datarate of the ADCs 4V rail voltage sensor draws_adc_ch6_gain Sets the full scale resolution of the ADCs AIN2 input (default 2) draws_adc_ch6_datarate Sets the datarate of the ADCs AIN2 input draws_adc_ch7_gain Sets the full scale resolution of the ADCs AIN3 input (default 2) draws_adc_ch7_datarate Sets the datarate of the ADCs AIN3 input alsaname Name of the ALSA audio device (default "draws") Name: dwc-otg Info: Selects the dwc_otg USB controller driver which has fiq support. This is the default on all except the Pi Zero which defaults to dwc2. Load: dtoverlay=dwc-otg Params: Name: dwc2 Info: Selects the dwc2 USB controller driver Load: dtoverlay=dwc2,= Params: dr_mode Dual role mode: "host", "peripheral" or "otg" g-rx-fifo-size Size of rx fifo size in gadget mode g-np-tx-fifo-size Size of non-periodic tx fifo size in gadget mode [ The ds1307-rtc overlay has been deleted. See i2c-rtc. ] Name: edt-ft5406 Info: Overlay for the EDT FT5406 touchscreen. This works with the Raspberry Pi 7" touchscreen when not being polled by the firmware. By default the overlay uses the i2c_csi_dsi I2C interface, but this can be overridden You MUST use either "disable_touchscreen=1" or "ignore_lcd=1" in config.txt to stop the firmware polling the touchscreen. Load: dtoverlay=edt-ft5406,= Params: sizex Touchscreen size x (default 800) sizey Touchscreen size y (default 480) invx Touchscreen inverted x axis invy Touchscreen inverted y axis swapxy Touchscreen swapped x y axis i2c0 Choose the I2C0 bus on GPIOs 0&1 i2c1 Choose the I2C1 bus on GPIOs 2&3 i2c3 Choose the I2C3 bus (configure with the i2c3 overlay - BCM2711 only) i2c4 Choose the I2C4 bus (configure with the i2c4 overlay - BCM2711 only) i2c5 Choose the I2C5 bus (configure with the i2c5 overlay - BCM2711 only) i2c6 Choose the I2C6 bus (configure with the i2c6 overlay - BCM2711 only) addr Sets the address for the touch controller. Note that the device must be configured to use the specified address. Name: enc28j60 Info: Overlay for the Microchip ENC28J60 Ethernet Controller on SPI0 Load: dtoverlay=enc28j60,= Params: int_pin GPIO used for INT (default 25) speed SPI bus speed (default 12000000) Name: enc28j60-spi2 Info: Overlay for the Microchip ENC28J60 Ethernet Controller on SPI2 Load: dtoverlay=enc28j60-spi2,= Params: int_pin GPIO used for INT (default 39) speed SPI bus speed (default 12000000) Name: exc3000 Info: Enables I2C connected EETI EXC3000 multiple touch controller using GPIO 4 (pin 7 on GPIO header) for interrupt. Load: dtoverlay=exc3000,= Params: interrupt GPIO used for interrupt (default 4) sizex Touchscreen size x (default 4096) sizey Touchscreen size y (default 4096) invx Touchscreen inverted x axis invy Touchscreen inverted y axis swapxy Touchscreen swapped x y axis Name: fbtft Info: Overlay for SPI-connected displays using the fbtft drivers. This overlay seeks to replace the functionality provided by fbtft_device which is now gone from the kernel. Most displays from fbtft_device have been ported over. Example: dtoverlay=fbtft,spi0-0,rpi-display,reset_pin=23,dc_pin=24,led_pin=18,rotate=270 It is also possible to specify the controller (this will use the default init sequence in the driver). Example: dtoverlay=fbtft,spi0-0,ili9341,bgr,reset_pin=23,dc_pin=24,led_pin=18,rotate=270 For devices on spi1 or spi2, the interfaces should be enabled with one of the spi1-1/2/3cs and/or spi2-1/2/3cs overlays. The following features of fbtft_device have not been ported over: - parallel bus is not supported - the init property which overrides the controller initialization sequence is not supported as a parameter due to memory limitations in the bootloader responsible for applying the overlay. See https://github.com/notro/fbtft/wiki/FBTFT-RPI-overlays for how to create an overlay. Load: dtoverlay=fbtft,= Params: spi- Configure device at spi, cs (boolean, required) speed SPI bus speed in Hz (default 32000000) cpha Shifted clock phase (CPHA) mode cpol Inverse clock polarity (CPOL) mode adafruit18 Adafruit 1.8 adafruit22 Adafruit 2.2 (old) adafruit22a Adafruit 2.2 adafruit28 Adafruit 2.8 adafruit13m Adafruit 1.3 OLED admatec_c-berry28 C-Berry28 dogs102 EA DOGS102 er_tftm050_2 ER-TFTM070-2 er_tftm070_5 ER-TFTM070-5 ew24ha0 EW24HA0 ew24ha0_9bit EW24HA0 in 9-bit mode freetronicsoled128 Freetronics OLED128 hy28a HY28A hy28b HY28B itdb28_spi ITDB02-2.8 with SPI interface circuit mi0283qt-2 Watterott MI0283QT-2 mi0283qt-9a Watterott MI0283QT-9A nokia3310 Nokia 3310 nokia3310a Nokia 3310a nokia5110 Nokia 5110 piscreen PiScreen pitft Adafruit PiTFT 2.8 pioled ILSoft OLED rpi-display Watterott rpi-display sainsmart18 Sainsmart 1.8 sainsmart32_spi Sainsmart 3.2 with SPI interfce circuit tinylcd35 TinyLCD 3.5 tm022hdh26 Tianma TM022HDH26 tontec35_9481 Tontect 3.5 with ILI9481 controller tontec35_9486 Tontect 3.5 with ILI9486 controller waveshare32b Waveshare 3.2 waveshare22 Waveshare 2.2 bd663474 BD663474 display controller hx8340bn HX8340BN display controller hx8347d HX8347D display controller hx8353d HX8353D display controller hx8357d HX8357D display controller ili9163 ILI9163 display controller ili9320 ILI9320 display controller ili9325 ILI9325 display controller ili9340 ILI9340 display controller ili9341 ILI9341 display controller ili9481 ILI9481 display controller ili9486 ILI9486 display controller pcd8544 PCD8544 display controller ra8875 RA8875 display controller s6d02a1 S6D02A1 display controller s6d1121 S6D1121 display controller seps525 SEPS525 display controller sh1106 SH1106 display controller ssd1289 SSD1289 display controller ssd1305 SSD1305 display controller ssd1306 SSD1306 display controller ssd1325 SSD1325 display controller ssd1331 SSD1331 display controller ssd1351 SSD1351 display controller st7735r ST7735R display controller st7789v ST7789V display controller tls8204 TLS8204 display controller uc1611 UC1611 display controller uc1701 UC1701 display controller upd161704 UPD161704 display controller width Display width in pixels height Display height in pixels regwidth Display controller register width (default is driver specific) buswidth Display bus interface width (default 8) debug Debug output level {0-7} rotate Display rotation {0, 90, 180, 270} (counter clockwise). Not supported by all drivers. bgr Enable BGR mode (default off). Use if Red and Blue are swapped. Not supported by all drivers. fps Frames per second (default 30). In effect this states how long the driver will wait after video memory has been changed until display update transfer is started. txbuflen Length of the FBTFT transmit buffer (default 4096) startbyte Sets the Start byte used by fb_ili9320, fb_ili9325 and fb_hx8347d. Common value is 0x70. gamma String representation of Gamma Curve(s). Driver specific. Not supported by all drivers. reset_pin GPIO pin for RESET dc_pin GPIO pin for D/C led_pin GPIO pin for LED backlight Name: fe-pi-audio Info: Configures the Fe-Pi Audio Sound Card Load: dtoverlay=fe-pi-audio Params: Name: fsm-demo Info: A demonstration of the gpio-fsm driver. The GPIOs are chosen to work nicely with a "traffic-light" display of red, amber and green LEDs on GPIOs 7, 8 and 25 respectively. Load: dtoverlay=fsm-demo,= Params: fsm_debug Enable debug logging (default off) Name: gc9a01 Info: Enables GalaxyCore's GC9A01 single chip driver based displays on SPI0 as fb1, using GPIOs DC=25, RST=27 and BL=18 (physical GPIO header pins 22, 13 and 12 respectively) in addition to the SPI0 pins DIN=10, CLK=11 and CS=8 (physical GPIO header pins 19, 23 and 24 respectively). Load: dtoverlay=gc9a01,= Params: speed Display SPI bus speed rotate Display rotation {0,90,180,270} width Width of the display height Height of the display fps Delay between frame updates debug Debug output level {0-7} Name: ghost-amp Info: An overlay for the Ghost amplifier. Load: dtoverlay=ghost-amp,= Params: fsm_debug Enable debug logging of the GPIO FSM (default off) Name: goodix Info: Enables I2C connected Goodix gt9271 multiple touch controller using GPIOs 4 and 17 (pins 7 and 11 on GPIO header) for interrupt and reset. Load: dtoverlay=goodix,= Params: interrupt GPIO used for interrupt (default 4) reset GPIO used for reset (default 17) Name: googlevoicehat-soundcard Info: Configures the Google voiceHAT soundcard Load: dtoverlay=googlevoicehat-soundcard Params: Name: gpio-charger Info: This is a generic overlay for detecting charger with GPIO. Load: dtoverlay=gpio-charger,= Params: gpio GPIO pin to trigger on (default 4) active_low When this is 1 (active low), a falling edge generates a charging event and a rising edge generates a discharging event. When this is 0 (active high), this is reversed. The default is 0 (active high) gpio_pull Desired pull-up/down state (off, down, up) Default is "down". type Set a charger type for the pin. (Default: mains) Name: gpio-fan Info: Configure a GPIO pin to control a cooling fan. Load: dtoverlay=gpio-fan,= Params: gpiopin GPIO used to control the fan (default 12) temp Temperature at which the fan switches on, in millicelcius (default 55000) hyst Temperature delta (in millicelcius) below temp at which the fan will drop to minrpm (default 10000) Name: gpio-hog Info: Activate a "hog" for a GPIO - request that the kernel configures it as an output, driven low or high as indicated by the presence or absence of the active_low parameter. Note that a hogged GPIO is not available to other drivers or for gpioset/gpioget. Load: dtoverlay=gpio-hog,= Params: gpio GPIO pin to hog (default 26) active_low If set, the hog drives the GPIO low (defaults to off - the GPIO is driven high) 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/input/event* device, all decoding is done by the kernel - LIRC is not required! The key mapping and other decoding parameters can be configured by "ir-keytable" tool. Load: dtoverlay=gpio-ir,= Params: gpio_pin Input pin number. Default is 18. gpio_pull Desired pull-up/down state (off, down, up) Default is "up". invert "1" = invert the input (active-low signalling). "0" = non-inverted input (active-high signalling). Default is "1". rc-map-name Default rc keymap (can also be changed by ir-keytable), defaults to "rc-rc6-mce" Name: gpio-ir-tx Info: Use GPIO pin as bit-banged infrared transmitter output. This is an alternative to "pwm-ir-tx". gpio-ir-tx doesn't require a PWM so it can be used together with onboard analog audio. Load: dtoverlay=gpio-ir-tx,= Params: gpio_pin Output GPIO (default 18) invert "1" = invert the output (make it active-low). Default is "0" (active-high). Name: gpio-key Info: This is a generic overlay for activating GPIO keypresses using the gpio-keys library and this dtoverlay. Multiple keys can be set up using multiple calls to the overlay for configuring additional buttons or joysticks. You can see available keycodes at https://github.com/torvalds/linux/blob/v4.12/include/uapi/ linux/input-event-codes.h#L64 Load: dtoverlay=gpio-key,= Params: gpio GPIO pin to trigger on (default 3) active_low When this is 1 (active low), a falling edge generates a key down event and a rising edge generates a key up event. When this is 0 (active high), this is reversed. The default is 1 (active low) gpio_pull Desired pull-up/down state (off, down, up) Default is "up". Note that the default pin (GPIO3) has an external pullup label Set a label for the key keycode Set the key code for the button Name: gpio-led Info: This is a generic overlay for activating LEDs (or any other component) by a GPIO pin. Multiple LEDs can be set up using multiple calls to the overlay. While there are many existing methods to activate LEDs on the RPi, this method offers some advantages: 1) Does not require any userspace programs. 2) LEDs can be connected to the kernel's led-trigger framework, and drive the LED based on triggers such as cpu load, heartbeat, kernel panic, key input, timers and others. 3) LED can be tied to the input state of another GPIO pin. 4) The LED is setup early during the kernel boot process (useful for cpu/heartbeat/panic triggers). Typical electrical connection is: RPI-GPIO.19 -> LED -> 300ohm resister -> RPI-GND The GPIO pin number can be changed with the 'gpio=' parameter. To control an LED from userspace, write a 0 or 1 value: echo 1 > /sys/class/leds/myled1/brightness The 'myled1' name can be changed with the 'label=' parameter. To connect the LED to a kernel trigger from userspace: echo cpu > /sys/class/leds/myled1/trigger echo heartbeat > /sys/class/leds/myled1/trigger echo none > /sys/class/leds/myled1/trigger To connect the LED to GPIO.26 pin (physical pin 37): echo gpio > /sys/class/leds/myled1/trigger echo 26 > /sys/class/leds/myled1/gpio Available triggers: cat /sys/class/leds/myled1/trigger More information about the Linux kernel LED/Trigger system: https://www.kernel.org/doc/Documentation/leds/leds-class.rst https://www.kernel.org/doc/Documentation/leds/ledtrig-oneshot.rst Load: dtoverlay=gpio-led,= Params: gpio GPIO pin connected to the LED (default 19) label The label for this LED. It will appear under /sys/class/leds/