/linux-5.10/Documentation/devicetree/bindings/arm/bcm/ |
D | raspberrypi,bcm2835-firmware.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 4 $id: http://devicetree.org/schemas/arm/bcm/raspberrypi,bcm2835-firmware.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Raspberry Pi VideoCore firmware driver 10 - Eric Anholt <eric@anholt.net> 11 - Stefan Wahren <wahrenst@gmx.net> 17 const: raspberrypi,bcm2835-firmware 20 - compatible 25 - const: raspberrypi,bcm2835-firmware [all …]
|
/linux-5.10/Documentation/devicetree/bindings/mailbox/ |
D | brcm,bcm2835-mbox.txt | 1 Broadcom BCM2835 VideoCore mailbox IPC 5 - compatible: Should be "brcm,bcm2835-mbox" 6 - reg: Specifies base physical address and size of the registers 7 - interrupts: The interrupt number 8 See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt 9 - #mbox-cells: Specifies the number of cells needed to encode a mailbox 16 compatible = "brcm,bcm2835-mbox"; 19 #mbox-cells = <0>; 22 firmware: firmware { 23 compatible = "raspberrypi,firmware"; [all …]
|
/linux-5.10/Documentation/devicetree/bindings/dma/ |
D | brcm,bcm2835-dma.txt | 1 * BCM2835 DMA controller 3 The BCM2835 DMA controller has 16 channels in total. 5 Some arbitrary channels are used by the firmware 6 (1,3,6,7 in the current firmware version). 11 - compatible: Should be "brcm,bcm2835-dma". 12 - reg: Should contain DMA registers location and length. 13 - interrupts: Should contain the DMA interrupts associated 15 - interrupt-names: Should contain the names of the interrupt 17 Use "dma-shared-all" for the common interrupt line 19 - #dma-cells: Must be <1>, the cell in the dmas property of the [all …]
|
/linux-5.10/arch/arm/boot/dts/ |
D | bcm2835-rpi.dtsi | 1 #include <dt-bindings/power/raspberrypi-power.h> 5 compatible = "gpio-leds"; 9 default-state = "keep"; 10 linux,default-trigger = "heartbeat"; 15 firmware: firmware { label 16 compatible = "raspberrypi,bcm2835-firmware", "simple-mfd"; 17 #address-cells = <1>; 18 #size-cells = <1>; 21 dma-ranges; 25 compatible = "raspberrypi,bcm2835-power"; [all …]
|
D | bcm2835-rpi-zero.dts | 1 // SPDX-License-Identifier: GPL-2.0+ 6 /dts-v1/; 7 #include "bcm2835.dtsi" 8 #include "bcm2835-rpi.dtsi" 9 #include "bcm283x-rpi-usb-otg.dtsi" 12 compatible = "raspberrypi,model-zero", "brcm,bcm2835"; 29 * This is based on the official GPU firmware DT blob. 36 gpio-line-names = "ID_SDA", 93 pinctrl-0 = <&gpioout &alt0 &i2s_alt0>; 103 hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; [all …]
|
D | bcm283x.dtsi | 1 #include <dt-bindings/pinctrl/bcm2835.h> 2 #include <dt-bindings/clock/bcm2835.h> 3 #include <dt-bindings/clock/bcm2835-aux.h> 4 #include <dt-bindings/gpio/gpio.h> 5 #include <dt-bindings/interrupt-controller/irq.h> 6 #include <dt-bindings/soc/bcm2835-pm.h> 8 /* firmware-provided startup stubs live here, where the secondary CPUs are 14 * bcm2835 and bcm2836 implementations, leaving the CPU configuration to 15 * bcm2835.dtsi and bcm2836.dtsi. 19 compatible = "brcm,bcm2835"; [all …]
|
D | bcm2835-rpi-zero-w.dts | 1 // SPDX-License-Identifier: GPL-2.0+ 6 /dts-v1/; 7 #include "bcm2835.dtsi" 8 #include "bcm2835-rpi.dtsi" 9 #include "bcm283x-rpi-usb-otg.dtsi" 12 compatible = "raspberrypi,model-zero-w", "brcm,bcm2835"; 22 stdout-path = "serial1:115200n8"; 31 wifi_pwrseq: wifi-pwrseq { 32 compatible = "mmc-pwrseq-simple"; 33 reset-gpios = <&gpio 41 GPIO_ACTIVE_LOW>; [all …]
|
D | bcm2835-rpi-cm1-io1.dts | 1 // SPDX-License-Identifier: GPL-2.0 2 /dts-v1/; 3 #include "bcm2835-rpi-cm1.dtsi" 4 #include "bcm283x-rpi-usb-host.dtsi" 7 compatible = "raspberrypi,compute-module", "brcm,bcm2835"; 13 * This is based on the official GPU firmware DT blob. 20 gpio-line-names = "GPIO0", 77 pinctrl-0 = <&gpioout &alt0>; 81 hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; 82 power-domains = <&power RPI_POWER_DOMAIN_HDMI>; [all …]
|
D | bcm2711.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 4 #include <dt-bindings/interrupt-controller/arm-gic.h> 5 #include <dt-bindings/soc/bcm2835-pm.h> 10 #address-cells = <2>; 11 #size-cells = <1>; 13 interrupt-parent = <&gicv2>; 16 compatible = "brcm,bcm2711-vc5"; 20 clk_27MHz: clk-27M { 21 #clock-cells = <0>; 22 compatible = "fixed-clock"; [all …]
|
D | bcm2835-rpi-common.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 4 * bcm2835, bcm2836 and bcm2837 implementations that interact with RPi's 5 * firmware interface. 8 #include <dt-bindings/power/raspberrypi-power.h> 11 power-domains = <&power RPI_POWER_DOMAIN_V3D>;
|
/linux-5.10/Documentation/devicetree/bindings/soc/bcm/ |
D | raspberrypi,bcm2835-power.txt | 5 - compatible: Should be "raspberrypi,bcm2835-power". 6 - firmware: Reference to the RPi firmware device node. 7 - #power-domain-cells: Should be <1>, we providing multiple power domains. 38 compatible = "raspberrypi,bcm2835-power"; 39 firmware = <&firmware>; 40 #power-domain-cells = <1>; 46 power-domains = <&power RPI_POWER_DOMAIN_USB>;
|
D | brcm,bcm2835-vchiq.txt | 1 Broadcom VCHIQ firmware services 5 - compatible: Should be "brcm,bcm2835-vchiq" on BCM2835, otherwise 6 "brcm,bcm2836-vchiq". 7 - reg: Physical base address and length of the doorbell register pair 8 - interrupts: The interrupt number 9 See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt 14 compatible = "brcm,bcm2835-vchiq";
|
/linux-5.10/drivers/watchdog/ |
D | bcm2835_wdt.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * Watchdog driver for Broadcom BCM2835 6 * branch "rpi-3.6.y" of git://github.com/raspberrypi/linux.git was used 7 * as a hardware reference for the Broadcom BCM2835 watchdog timer. 15 #include <linux/mfd/bcm2835-pm.h> 37 * The Raspberry Pi firmware uses the RSTS register to know which partition 39 * Partition 63 is a special partition used by the firmware to indicate halt. 60 cur = readl(wdt->base + PM_RSTC); in bcm2835_wdt_is_running() 71 spin_lock_irqsave(&wdt->lock, flags); in bcm2835_wdt_start() 73 writel_relaxed(PM_PASSWORD | (SECS_TO_WDOG_TICKS(wdog->timeout) & in bcm2835_wdt_start() [all …]
|
/linux-5.10/drivers/soc/bcm/ |
D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 5 bool "BCM2835 power domain driver" 11 This enables support for the BCM2835 power domains and reset 13 firmware means that Linux usage of the same power domain 23 or disabled via the RPi firmware. 39 Enables drivers for the Broadcom Set-Top Box (STB) series of chips.
|
D | raspberrypi-power.c | 1 // SPDX-License-Identifier: GPL-2.0 13 #include <dt-bindings/power/raspberrypi-power.h> 14 #include <soc/bcm2835/raspberrypi-firmware.h> 17 * Firmware indices for the old power domains interface. Only a few 48 * Asks the firmware to enable or disable power on a specific power 55 packet.domain = rpi_domain->domain; in rpi_firmware_set_power() 57 return rpi_firmware_property(rpi_domain->fw, in rpi_firmware_set_power() 58 rpi_domain->old_interface ? in rpi_firmware_set_power() 83 struct rpi_power_domain *dom = &rpi_domains->domains[xlate_index]; in rpi_common_init_power_domain() 85 dom->fw = rpi_domains->fw; in rpi_common_init_power_domain() [all …]
|
/linux-5.10/drivers/firmware/ |
D | raspberrypi.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Defines interfaces for interacting wtih the Raspberry Pi firmware's 9 #include <linux/dma-mapping.h> 15 #include <soc/bcm2835/raspberrypi-firmware.h> 37 complete(&fw->c); in response_callback() 41 * Sends a request to the firmware through the BCM2835 mailbox driver, 53 reinit_completion(&fw->c); in rpi_firmware_transaction() 54 ret = mbox_send_message(fw->chan, &message); in rpi_firmware_transaction() 56 if (wait_for_completion_timeout(&fw->c, HZ)) { in rpi_firmware_transaction() 59 ret = -ETIMEDOUT; in rpi_firmware_transaction() [all …]
|
/linux-5.10/drivers/clk/bcm/ |
D | clk-raspberrypi.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * Raspberry Pi driver for firmware controlled clocks 5 * Even though clk-bcm2835 provides an interface to the hardware registers for 6 * the system clocks we've had to factor out 'pllb' as the firmware 'owns' it. 8 * over-temperature and under-voltage protections provided by the firmware. 14 #include <linux/clk-provider.h> 19 #include <soc/bcm2835/raspberrypi-firmware.h> 53 [RPI_FIRMWARE_PIXEL_BVB_CLK_ID] = "pixel-bvb", 61 struct rpi_firmware *firmware; member 74 * Structure of the message passed to Raspberry Pi's firmware in order to [all …]
|
D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 15 bool "Broadcom BCM2835 clock support" 20 Enable common clock framework support for Broadcom BCM2835 98 tristate "Raspberry Pi firmware based clock support" 101 Enable common clock framework support for Raspberry Pi's firmware
|
/linux-5.10/Documentation/devicetree/bindings/input/touchscreen/ |
D | raspberrypi,firmware-ts.txt | 1 Raspberry Pi firmware based 7" touchscreen 5 - compatible: "raspberrypi,firmware-ts" 8 - firmware: Reference to RPi's firmware device node 9 - touchscreen-size-x: See touchscreen.txt 10 - touchscreen-size-y: See touchscreen.txt 11 - touchscreen-inverted-x: See touchscreen.txt 12 - touchscreen-inverted-y: See touchscreen.txt 13 - touchscreen-swapped-x-y: See touchscreen.txt 17 firmware: firmware-rpi { 18 compatible = "raspberrypi,bcm2835-firmware"; [all …]
|
/linux-5.10/Documentation/devicetree/bindings/gpio/ |
D | raspberrypi,firmware-gpio.txt | 3 The Raspberry Pi 3 GPIO expander is controlled by the VC4 firmware. The 4 firmware exposes a mailbox interface that allows the ARM core to control the 8 firmware node. 12 - compatible : Should be "raspberrypi,firmware-gpio" 13 - gpio-controller : Marks the device node as a gpio controller 14 - #gpio-cells : Should be two. The first cell is the pin number, and 21 firmware: firmware-rpi { 22 compatible = "raspberrypi,bcm2835-firmware"; 26 compatible = "raspberrypi,firmware-gpio"; 27 gpio-controller; [all …]
|
/linux-5.10/drivers/mailbox/ |
D | bcm2835-mailbox.c | 1 // SPDX-License-Identifier: GPL-2.0 4 * Copyright (C) 2013-2014 Lubomir Rintel 8 * - arch/arm/mach-bcm2708/vcio.c file written by Gray Girling that was 9 * obtained from branch "rpi-3.6.y" of git://github.com/raspberrypi/ 11 * - drivers/mailbox/bcm2835-ipc.c by Lubomir Rintel at 12 * https://github.com/hackerspace/rpi-linux/blob/lr-raspberry-pi/drivers/ 13 * mailbox/bcm2835-ipc.c 14 * - documentation available on the following web site: 15 * https://github.com/raspberrypi/firmware/wiki/Mailbox-property-interface 19 #include <linux/dma-mapping.h> [all …]
|
/linux-5.10/drivers/i2c/busses/ |
D | i2c-bcm2835.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * BCM2835 master mode driver 8 #include <linux/clk-provider.h> 71 writel(val, i2c_dev->regs + reg); in bcm2835_i2c_writel() 76 return readl(i2c_dev->regs + reg); in bcm2835_i2c_readl() 99 return -EINVAL; in clk_bcm2835_i2c_calc_divider() 111 if (divider == -EINVAL) in clk_bcm2835_i2c_set_rate() 112 return -EINVAL; in clk_bcm2835_i2c_set_rate() 114 bcm2835_i2c_writel(div->i2c_dev, BCM2835_I2C_DIV, divider); in clk_bcm2835_i2c_set_rate() 129 bcm2835_i2c_writel(div->i2c_dev, BCM2835_I2C_DEL, in clk_bcm2835_i2c_set_rate() [all …]
|
/linux-5.10/drivers/reset/ |
D | reset-raspberrypi.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Raspberry Pi 4 firmware reset driver 12 #include <linux/reset-controller.h> 13 #include <soc/bcm2835/raspberrypi-firmware.h> 14 #include <dt-bindings/reset/raspberrypi,firmware-reset.h> 37 * firmware may either be loaded directly from an EEPROM or, if in rpi_reset_reset() 38 * not present, by the SoC's co-processor, VideoCore. rpi's in rpi_reset_reset() 39 * VideoCore OS contains both the non public firmware load in rpi_reset_reset() 40 * logic and the VL805 firmware blob. This triggers the in rpi_reset_reset() 44 * firmware encoded like this: in rpi_reset_reset() [all …]
|
/linux-5.10/drivers/gpu/drm/vc4/ |
D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 18 VC4 GPU, such as the Raspberry Pi or other BCM2708/BCM2835. 21 the config.txt for the firmware, to keep it from smashing
|
/linux-5.10/drivers/staging/vc04_services/interface/ |
D | TODO | 3 VCHI is just a tool to let drivers talk to the firmware. Here are 6 - vc_mem (https://github.com/raspberrypi/linux/blob/rpi-4.4.y/drivers/char/broadcom/vc_mem.c) 9 requests to the firmware, which are transmitted across VCHIQ. vcdbg 10 is really useful for debugging firmware interactions. 12 - VCSM (https://github.com/raspberrypi/linux/tree/rpi-4.4.y/drivers/char/broadcom/vc_sm) 15 firmware protocols including VCHI. We'll want to extend this driver 16 to manage these buffers as dmabufs so that we can zero-copy import 19 2) Garbage-collect unused code 23 days. Once we have the set of VCHI-using drivers we want in tree, we 32 vchiq_test -f 1 [all …]
|