| /linux/Documentation/devicetree/bindings/dma/ |
| H A D | brcm,bcm2835-dma.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/dma/brcm,bcm2835-dma.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: BCM2835 DMA controller 10 - Nicolas Saenz Julienne <nsaenz@kernel.org> 13 The BCM2835 DMA controller has 16 channels in total. Only the lower 15 VideoCore firmware (1,3,6,7 in the current firmware version). The channels 19 - $ref: dma-controller.yaml# 23 const: brcm,bcm2835-dma [all …]
|
| /linux/drivers/media/platform/broadcom/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 13 Say Y here to enable support for the BCM283x/BCM271x CSI-2 receiver. 14 This is a V4L2 driver that controls the CSI-2 receiver directly, 15 independently from the VC4 firmware. 17 This driver is mutually exclusive with the use of bcm2835-camera. The 18 firmware will disable all access to the peripheral from within the 19 firmware if it finds a DT node using it, and bcm2835-camera will 23 called bcm2835-unicam.
|
| /linux/arch/arm/boot/dts/broadcom/ |
| H A D | bcm2835-rpi.dtsi | 1 #include <dt-bindings/power/raspberrypi-power.h> 5 firmware: firmware { label 6 compatible = "raspberrypi,bcm2835-firmware", "simple-mfd"; 10 compatible = "raspberrypi,firmware-clocks"; 11 #clock-cells = <1>; 16 compatible = "raspberrypi,bcm2835-power"; 17 firmware = <&firmware>; 18 #power-domain-cells = <1>; 22 compatible = "brcm,bcm2835-vchiq"; 32 clock-names = "lp", "vpu"; [all …]
|
| H A 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 "bcm2835-rpi-common.dtsi" 10 #include "bcm283x-rpi-led-deprecated.dtsi" 11 #include "bcm283x-rpi-usb-otg.dtsi" 14 compatible = "raspberrypi,model-zero", "brcm,bcm2835"; 25 * This is based on the official GPU firmware DT blob. 31 gpio-line-names = "ID_SDA", [all …]
|
| H A 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 "bcm2835-rpi-common.dtsi" 10 #include "bcm283x-rpi-led-deprecated.dtsi" 11 #include "bcm283x-rpi-usb-otg.dtsi" 12 #include "bcm283x-rpi-wifi-bt.dtsi" 15 compatible = "raspberrypi,model-zero-w", "brcm,bcm2835"; 25 stdout-path = "serial1:115200n8"; [all …]
|
| H A 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 …]
|
| H A 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. 19 gpio-line-names = "GPIO0", 76 pinctrl-names = "default"; 77 pinctrl-0 = <&gpioout &alt0>; 81 hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; [all …]
|
| H A 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 …]
|
| /linux/Documentation/devicetree/bindings/media/ |
| H A D | brcm,bcm2835-unicam.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/media/brcm,bcm2835-unicam.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com> 12 description: |- 14 CSI-2 or CCP2 data from image sensors or similar devices. 17 the Pi the VideoCore firmware can also control this hardware block, and 19 the firmware checks the device tree configuration during boot. If it finds 20 device tree nodes whose name starts with 'csi' then it will stop the firmware [all …]
|
| /linux/Documentation/devicetree/bindings/soc/bcm/ |
| H A D | brcm,bcm2835-vchiq.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/soc/bcm/brcm,bcm2835-vchiq.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Broadcom VCHIQ firmware services 10 - Nicolas Saenz Julienne <nsaenz@kernel.org> 14 to communicate with the VPU-side OS services. 19 - description: BCM2835 based boards 21 - enum: 22 - brcm,bcm2835-vchiq [all …]
|
| /linux/drivers/watchdog/ |
| H A 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. 61 cur = readl(wdt->base + PM_RSTC); in bcm2835_wdt_is_running() 72 spin_lock_irqsave(&wdt->lock, flags); in bcm2835_wdt_start() 74 writel_relaxed(PM_PASSWORD | (SECS_TO_WDOG_TICKS(wdog->timeout) & in bcm2835_wdt_start() [all …]
|
| /linux/drivers/gpu/drm/vc4/ |
| H A D | vc4_drv.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (C) 2014-2015 Broadcom 11 * OpenGL ES 2.0-compatible 3D engine called V3D, and a highly 16 * compute shader-style jobs using the same shader processor as is 27 #include <linux/dma-mapping.h> 41 #include <soc/bcm2835/raspberrypi-firmware.h> 68 int min_pitch = DIV_ROUND_UP(args->width * args->bpp, 8); in vc4_dumb_fixup_args() 70 if (args->pitch < min_pitch) in vc4_dumb_fixup_args() 71 args->pitch = min_pitch; in vc4_dumb_fixup_args() 73 if (args->size < args->pitch * args->height) in vc4_dumb_fixup_args() [all …]
|
| /linux/drivers/pmdomain/bcm/ |
| H A 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.
|
| H A 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 bool old_interface = rpi_domain->old_interface; in rpi_firmware_set_power() 59 packet.domain = rpi_domain->domain; in rpi_firmware_set_power() 62 ret = rpi_firmware_property(rpi_domain->fw, old_interface ? in rpi_firmware_set_power() 67 dev_err(&domain->dev, "Failed to set %s to %u (%d)\n", in rpi_firmware_set_power() 70 dev_dbg(&domain->dev, "Set %s to %u\n", in rpi_firmware_set_power() [all …]
|
| /linux/drivers/clk/bcm/ |
| H A 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 107 tristate "Raspberry Pi firmware based clock support" 110 Enable common clock framework support for Raspberry Pi's firmware
|
| H A 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> 35 [RPI_FIRMWARE_PIXEL_BVB_CLK_ID] = "pixel-bvb", 47 struct rpi_firmware *firmware; member 108 * HDMI connector, the firmware will skip the HSM [all …]
|
| /linux/drivers/mailbox/ |
| H A 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/drivers/reset/ |
| H A 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/drivers/thermal/broadcom/ |
| H A D | bcm2835_thermal.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * Driver for Broadcom BCM2835 SoC temperature sensor 37 BCM2835_TS_TSENSCTL_CTRL_SHIFT - 1, \ 47 BCM2835_TS_TSENSCTL_THOLD_SHIFT - 1, \ 61 BCM2835_TS_TSENSSTAT_DATA_SHIFT - 1, \ 80 temp -= offset; in bcm2835_thermal_temp2adc() 86 temp = BIT(BCM2835_TS_TSENSSTAT_DATA_BITS) - 1; in bcm2835_thermal_temp2adc() 94 u32 val = readl(data->regs + BCM2835_TS_TSENSSTAT); in bcm2835_thermal_get_temp() 97 return -EIO; in bcm2835_thermal_get_temp() 103 thermal_zone_get_offset(data->tz), in bcm2835_thermal_get_temp() [all …]
|
| /linux/drivers/pwm/ |
| H A D | pwm-raspberrypi-poe.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * https://www.raspberrypi.org/products/poe-hat/ 8 * - No disable bit, so a disabled PWM is simulated by duty_cycle 0 9 * - Only normal polarity 10 * - Fixed 12.5 kHz period 20 #include <soc/bcm2835/raspberrypi-firmware.h> 21 #include <dt-bindings/pwm/raspberrypi,firmware-poe-pwm.h> 29 struct rpi_firmware *firmware; member 45 static int raspberrypi_pwm_set_property(struct rpi_firmware *firmware, in raspberrypi_pwm_set_property() argument 54 ret = rpi_firmware_property(firmware, RPI_FIRMWARE_SET_POE_HAT_VAL, in raspberrypi_pwm_set_property() [all …]
|
| /linux/drivers/staging/vc04_services/interface/vchiq_arm/ |
| H A D | vchiq_arm.c | 1 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 4 * Copyright (c) 2010-2012 Broadcom. All rights reserved. 24 #include <linux/dma-mapping.h> 31 #include <soc/bcm2835/raspberrypi-firmware.h> 60 * The devices implemented in the VCHIQ firmware are not discoverable, 76 /* Keepalive-related data */ 121 mgmt = dev_get_drvdata(state->dev); in vchiq_doorbell_irq() 124 status = readl(mgmt->regs + BELL0); in vchiq_doorbell_irq() 142 if (mutex_lock_killable(&drv_mgmt->connected_mutex)) in vchiq_call_connected_callbacks() 145 for (i = 0; i < drv_mgmt->num_deferred_callbacks; i++) in vchiq_call_connected_callbacks() [all …]
|
| /linux/drivers/input/touchscreen/ |
| H A D | raspberrypi-ts.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Raspberry Pi firmware based touchscreen driver 15 #include <linux/dma-mapping.h> 20 #include <soc/bcm2835/raspberrypi-firmware.h> 70 memcpy_fromio(®s, ts->fw_regs_va, sizeof(regs)); in rpi_ts_poll() 75 * 0 - 10 points) in rpi_ts_poll() 78 ts->fw_regs_va + offsetof(struct rpi_ts_regs, num_points)); in rpi_ts_poll() 81 (regs.num_points == 0 && ts->known_ids == 0)) in rpi_ts_poll() 96 touchscreen_report_pos(input, &ts->prop, x, y, true); in rpi_ts_poll() 100 released_ids = ts->known_ids & ~modified_ids; in rpi_ts_poll() [all …]
|
| /linux/drivers/gpio/ |
| H A D | gpio-raspberrypi-exp.c | 1 // SPDX-License-Identifier: GPL-2.0+ 5 * Uses the firmware mailbox service to communicate with the 15 #include <soc/bcm2835/raspberrypi-firmware.h> 17 #define MODULE_NAME "raspberrypi-exp-gpio" 30 /* VC4 firmware mailbox interface data structures */ 64 ret = rpi_firmware_property(gpio->fw, RPI_FIRMWARE_GET_GPIO_CONFIG, in rpi_exp_gpio_get_polarity() 67 dev_err(gc->parent, "Failed to get GPIO %u config (%d %x)\n", in rpi_exp_gpio_get_polarity() 69 return ret ? ret : -EIO; in rpi_exp_gpio_get_polarity() 93 ret = rpi_firmware_property(gpio->fw, RPI_FIRMWARE_SET_GPIO_CONFIG, in rpi_exp_gpio_dir_in() 96 dev_err(gc->parent, "Failed to set GPIO %u to input (%d %x)\n", in rpi_exp_gpio_dir_in() [all …]
|
| /linux/drivers/tty/serial/8250/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 23 non-standard serial ports, since the configuration information will 51 If you did not notice yet and/or you have userspace from pre-3.7, it 146 Note that serial ports on NetMos 9835 Multi-I/O cards are handled 169 Say Y here to enable support for 16-bit PCMCIA serial devices, 171 multi-function Ethernet/modem cards. (PCMCIA- or PC-cards are 172 credit-card size devices often used with laptops.) 198 PCI enumeration and any ports that may be added at run-time 199 via hot-plug, or any ISA multi-port serial cards. 209 with the module parameter "nr_uarts", or boot-time parameter [all …]
|
| /linux/drivers/staging/vc04_services/bcm2835-camera/ |
| H A D | bcm2835-camera.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Broadcom BCM2835 V4L2 driver 14 #include <linux/dma-mapping.h> 19 #include <media/videobuf2-vmalloc.h> 20 #include <media/videobuf2-dma-contig.h> 21 #include <media/v4l2-device.h> 22 #include <media/v4l2-ioctl.h> 23 #include <media/v4l2-ctrls.h> 24 #include <media/v4l2-fh.h> 25 #include <media/v4l2-event.h> [all …]
|