Home
last modified time | relevance | path

Searched +full:bcm2835 +full:- +full:firmware (Results 1 – 25 of 47) sorted by relevance

12

/linux-5.10/Documentation/devicetree/bindings/arm/bcm/
Draspberrypi,bcm2835-firmware.yaml1 # 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/
Dbrcm,bcm2835-mbox.txt1 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/
Dbrcm,bcm2835-dma.txt1 * 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/
Dbcm2835-rpi.dtsi1 #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 …]
Dbcm2835-rpi-zero.dts1 // 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 …]
Dbcm283x.dtsi1 #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 …]
Dbcm2835-rpi-zero-w.dts1 // 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 …]
Dbcm2835-rpi-cm1-io1.dts1 // 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 …]
Dbcm2711.dtsi1 // 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 …]
Dbcm2835-rpi-common.dtsi1 // 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/
Draspberrypi,bcm2835-power.txt5 - 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>;
Dbrcm,bcm2835-vchiq.txt1 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/
Dbcm2835_wdt.c1 // 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/
DKconfig1 # 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.
Draspberrypi-power.c1 // 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/
Draspberrypi.c1 // 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/
Dclk-raspberrypi.c1 // 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 …]
DKconfig1 # 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/
Draspberrypi,firmware-ts.txt1 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/
Draspberrypi,firmware-gpio.txt3 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/
Dbcm2835-mailbox.c1 // 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/
Di2c-bcm2835.c1 // 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/
Dreset-raspberrypi.c1 // 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/
DKconfig1 # 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/
DTODO3 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 …]

12