Skip to content

Rpi 3.18.y #775

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 90 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
6abdb13
Main bcm2708 linux port
popcornmix May 12, 2013
0848c94
Add bcm2708_gpio driver
popcornmix Oct 8, 2014
996d30e
Add quick config.
popcornmix May 7, 2013
bbc4fcb
Add dwc_otg driver
popcornmix May 1, 2013
c3067c4
bcm2708 watchdog driver
popcornmix May 1, 2013
1b14539
bcm2708 framebuffer driver
popcornmix May 1, 2013
944f2bd
Speed up console framebuffer imageblit function
hglm Jun 20, 2013
41deb8d
fbdev: add FBIOCOPYAREA ioctl
ssvb Jun 17, 2013
fb11324
bcm2708_fb: DMA acceleration for fb_copyarea
ssvb Jun 17, 2013
4e37bf5
bcm2708 vchiq driver
popcornmix Jul 2, 2013
c6ec34d
vchiq: Avoid high load when blocked and unkillable
popcornmix May 12, 2014
5bb55d4
cma: Add vc_cma driver to enable use of CMA
popcornmix Jul 2, 2013
bff7af9
bcm2708: alsa sound driver
popcornmix Mar 26, 2012
ef917cf
Add hwrng (hardware random number generator) driver
popcornmix Jul 2, 2013
0141d7d
lirc: added support for RaspberryPi GPIO
Jun 16, 2012
f0c5b02
Add cpufreq driver
popcornmix Jul 2, 2013
54d4e99
Added hwmon/thermal driver for reporting core temperature. Thanks Dorian
popcornmix Mar 26, 2013
b14a2e5
Allow mac address to be set in smsc95xx
popcornmix Mar 26, 2013
6bb783f
Add Chris Boot's i2c and spi drivers.
popcornmix Nov 4, 2013
59748b9
Perform I2C combined transactions when possible
cbeytas Jun 24, 2013
7fdeacc
enabling the realtime clock 1-wire chip DS1307 and 1-wire on GPIO4 (a…
popcornmix May 8, 2013
8be0052
Added Device IDs for August DVB-T 205
popcornmix Jul 2, 2013
82e5167
config: add missing options from 3.6.y kernel
popcornmix Apr 12, 2013
b4a7920
config: Enable CONFIG_MEMCG, but leave it disabled (due to memory cos…
popcornmix Dec 18, 2013
53c9de7
Add FIQ patch to dwc_otg driver. Enable with dwc_otg.fiq_fix_enable=1…
popcornmix Jul 2, 2013
8ee1af7
dwc_otg: fiq_fsm: Base commit for driver rewrite
Mar 19, 2014
4fe014c
bcm2835: add v4l2 camera device
Jan 30, 2013
520b7ab
V4L2: Fixes from 6by9
Dec 9, 2013
3de5c9b
dmaengine: Add support for BCM2708
koalo Nov 22, 2013
083c325
ASoC: Add support for BCM2708
koalo Nov 22, 2013
a9ef882
ASoC: Add support for PCM5102A codec
koalo Nov 22, 2013
c9daaaf
BCM2708: Add I2S support to board file
koalo Nov 22, 2013
e2d09fe
ASoC: Add support for HifiBerry DAC
koalo Nov 22, 2013
c984a22
BCM2708: Add HifiBerry DAC to board file
koalo Nov 22, 2013
2a7efdd
BCM2708: Add I2S and DMA support to default config
koalo Dec 2, 2013
d8a47ad
ASoC: BCM2708: Add support for RPi-DAC
koalo Dec 6, 2013
34acc7d
ASoC: wm8804: Implement MCLK configuration options, add 32bit support…
Jan 15, 2014
38dfd3a
ASoC: BCM:Add support for HiFiBerry Digi. Driver is based on the patc…
Jan 15, 2014
305e63e
BCM2708: Added support for HiFiBerry Digi board Board initalization b…
Jan 16, 2014
2837d4b
BCM2708: Added HiFiBerry Digi configuration option It will be compile…
Jan 16, 2014
a34253e
ASoC: wm8804: Set idle_bias_off to false Idle bias has been change to…
Jan 16, 2014
0363718
Add IQaudIO Sound Card support for Raspberry Pi
Mar 8, 2014
d545f61
pcm512x: Use a range macro for Volume and rename to PCM.
hmbedded Mar 28, 2014
6f32886
vmstat: Workaround for issue where dirty page count goes negative
popcornmix Jun 18, 2014
702681b
dwc_otg: Fix various issues with root port and transaction errors
Jun 20, 2014
eaf42b7
fiq_fsm: Implement hack for Split Interrupt transactions
Jun 20, 2014
84b6ab4
spi-bcm2708: Prepare for Common Clock Framework migration
notro Jul 6, 2014
0ce5d2b
BCM2708: Migrate to the Common Clock Framework
notro Jul 6, 2014
459d369
BCM2708: Add core Device Tree support
notro Jul 9, 2014
c310da2
BCM2708: armctrl: Add IRQ Device Tree support
notro Jul 9, 2014
80b53aa
pinctrl: add bcm2708 driver
notro Jul 10, 2014
b291e73
spi: bcm2708: add device tree support
notro Jul 27, 2014
99f19cf
BCM2708: don't register SPI controller when using DT
notro Jul 27, 2014
a7ac699
spi: bcm2835: make driver available on ARCH_BCM2708
notro Jul 27, 2014
ca1f3dc
i2c: bcm2708: add device tree support
notro Jul 29, 2014
e9c96be
bcm2708: don't register i2c controllers when using DT
notro Jul 29, 2014
882c6b1
i2c: bcm2835: make driver available on ARCH_BCM2708
notro Jul 29, 2014
e20f038
hid: Reduce default mouse polling interval to 60Hz
popcornmix Jul 14, 2014
7bdb7b2
usb: core: make overcurrent messages more prominent
Jul 24, 2014
1b24435
vcsm: VideoCore shared memory service for BCM2835
Jul 22, 2014
37d97ee
Revert "ARM: dma: Use dma_pfn_offset for dma address translation"
popcornmix Aug 7, 2014
e677b21
MMC: added alternative MMC driver
weiszg Aug 15, 2014
053e26a
Added support for HiFiBerry DAC+
Aug 4, 2014
f988ec8
Added driver for HiFiBerry Amp amplifier add-on board
Aug 4, 2014
6c9d79e
Improve __copy_to_user and __copy_from_user performance
Oct 13, 2014
a0c9db7
bcm2708: Allow option card devices to be configured via DT
Sep 1, 2014
84b340d
Adding Device Tree support for some RPi audio cards
Nov 12, 2014
6f9155e
fdt: Add support for the CONFIG_CMDLINE_EXTEND option
Dec 5, 2014
0edb276
config: Enable device tree
popcornmix Nov 25, 2014
f34070a
bcm2708: Remove the prohibition on mixing SPIDEV and DT
Dec 11, 2014
397ee17
bcm2708_fb: Update from 3.12
popcornmix Dec 13, 2014
0c40b1a
DMA: fix cyclic LITE length overflow bug
weiszg Dec 15, 2014
1bd5887
DT: Add overrides to enable i2c0, i2c1, spi and i2s
Dec 16, 2014
79957f9
lirc-rpi: Add device tree support, and a suitable overlay
Dec 18, 2014
b27c8a3
Update i2c-bcm2708.c
Dec 20, 2014
01a6ea5
BCM2708: armctrl: add space to allocate irq descriptors
notro Dec 27, 2014
e624e51
BCM2708: use pinctrl-bcm2835
notro Dec 27, 2014
e93d9bf
pinctrl: remove bcm2708 driver
notro Dec 27, 2014
4838870
BCM2708: armctrl: remove irq bank 3
notro Dec 27, 2014
3a2cef9
bcm2708-gpio: Revert the use of pinctrl_request_gpio
Jan 2, 2015
ecf68a7
Fix the activity LED in DT mode
Jan 6, 2015
0922de5
Add non-mainline source for rtl8192cu wireless driver version v4.0.2_…
popcornmix Sep 3, 2012
f28a4f4
lirc-rpi: Also support pinctrl-bcm2835 in non-DT mode
Jan 7, 2015
1cadb23
gpio: Only clear the currently occurring interrupt. Avoids losing int…
popcornmix Jan 7, 2015
d19b443
lirc-rpi: Use the higher-level irq control functions
Jan 8, 2015
f841e25
lirc-rpi: Correct the interrupt usage
Jan 9, 2015
ada7db3
MMC: support for non-AUTO_CMD23 transfer modes
weiszg Jan 13, 2015
23d7d16
mmc: Disable CMD23 transfers on all cards
Jan 13, 2015
12368ae
bcm2708-dmaengine: un-nobble DMA peak throughput
Jan 13, 2015
d3a1e4c
bcm2708_gpio: Avoid calling irq_unmask for all interrupts
Jan 12, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
60 changes: 60 additions & 0 deletions Documentation/video4linux/bcm2835-v4l2.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@

BCM2835 (aka Raspberry Pi) V4L2 driver
======================================

1. Copyright
============

Copyright © 2013 Raspberry Pi (Trading) Ltd.

2. License
==========

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

3. Quick Start
==============

You need a version 1.0 or later of v4l2-ctl, available from:
git://git.linuxtv.org/v4l-utils.git

$ sudo modprobe bcm2835-v4l2

Turn on the overlay:

$ v4l2-ctl --overlay=1

Turn off the overlay:

$ v4l2-ctl --overlay=0

Set the capture format for video:

$ v4l2-ctl --set-fmt-video=width=1920,height=1088,pixelformat=4

(Note: 1088 not 1080).

Capture:

$ v4l2-ctl --stream-mmap=3 --stream-count=100 --stream-to=somefile.h264

Stills capture:

$ v4l2-ctl --set-fmt-video=width=2592,height=1944,pixelformat=3
$ v4l2-ctl --stream-mmap=3 --stream-count=1 --stream-to=somefile.jpg

List of available formats:

$ v4l2-ctl --list-formats
18 changes: 18 additions & 0 deletions arch/arm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,23 @@ config ARCH_AT91
This enables support for systems based on Atmel
AT91RM9200 and AT91SAM9* processors.

config ARCH_BCM2708
bool "Broadcom BCM2708 family"
select CPU_V6
select ARM_AMBA
select HAVE_SCHED_CLOCK
select NEED_MACH_GPIO_H
select NEED_MACH_MEMORY_H
select COMMON_CLK
select ARCH_HAS_CPUFREQ
select GENERIC_CLOCKEVENTS
select ARM_ERRATA_411920
select MACH_BCM2708
select VC4
select FIQ
help
This enables support for Broadcom BCM2708 boards.

config ARCH_CLPS711X
bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
select ARCH_REQUIRE_GPIOLIB
Expand Down Expand Up @@ -972,6 +989,7 @@ source "arch/arm/plat-versatile/Kconfig"
source "arch/arm/mach-vt8500/Kconfig"

source "arch/arm/mach-w90x900/Kconfig"
source "arch/arm/mach-bcm2708/Kconfig"

source "arch/arm/mach-zynq/Kconfig"

Expand Down
8 changes: 8 additions & 0 deletions arch/arm/Kconfig.debug
Original file line number Diff line number Diff line change
Expand Up @@ -985,6 +985,14 @@ choice
options; the platform specific options are deprecated
and will be soon removed.

config DEBUG_BCM2708_UART0
bool "Broadcom BCM2708 UART0 (PL011)"
depends on MACH_BCM2708
help
Say Y here if you want the debug print routines to direct
their output to UART 0. The port must have been initialised
by the boot-loader before use.

endchoice

config DEBUG_EXYNOS_UART
Expand Down
1 change: 1 addition & 0 deletions arch/arm/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ textofs-$(CONFIG_ARCH_AXXIA) := 0x00308000
machine-$(CONFIG_ARCH_AT91) += at91
machine-$(CONFIG_ARCH_AXXIA) += axxia
machine-$(CONFIG_ARCH_BCM) += bcm
machine-$(CONFIG_ARCH_BCM2708) += bcm2708
machine-$(CONFIG_ARCH_BERLIN) += berlin
machine-$(CONFIG_ARCH_CLPS711X) += clps711x
machine-$(CONFIG_ARCH_CNS3XXX) += cns3xxx
Expand Down
3 changes: 3 additions & 0 deletions arch/arm/boot/dts/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ dtb-$(CONFIG_ARCH_AT91) += at91-sama5d4ek.dtb

dtb-$(CONFIG_ARCH_ATLAS6) += atlas6-evb.dtb
dtb-$(CONFIG_ARCH_AXXIA) += axm5516-amarillo.dtb
dtb-$(CONFIG_BCM2708_DT) += bcm2708-rpi-b.dtb
dtb-$(CONFIG_BCM2708_DT) += bcm2708-rpi-b-plus.dtb
dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb
dtb-$(CONFIG_ARCH_BCM_5301X) += bcm4708-netgear-r6250.dtb
dtb-$(CONFIG_ARCH_BCM_63XX) += bcm963138dvt.dtb
Expand Down Expand Up @@ -519,6 +521,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt6589-aquaris5.dtb

targets += dtbs dtbs_install
targets += $(dtb-y)

endif

# *.dtb used to be generated in the directory above. Clean out the
Expand Down
101 changes: 101 additions & 0 deletions arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
/dts-v1/;

/include/ "bcm2708.dtsi"

/ {
compatible = "brcm,bcm2708";
model = "Raspberry Pi Model B+";

aliases {
soc = &soc;
spi0 = &spi0;
i2c0 = &i2c0;
i2c1 = &i2c1;
i2s = &i2s;
gpio = &gpio;
intc = &intc;
leds = &leds;
sound = &sound;
};

sound: sound {
};
};

&gpio {
spi0_pins: spi0_pins {
brcm,pins = <7 8 9 10 11>;
brcm,function = <4>; /* alt0 */
};

i2c0_pins: i2c0 {
brcm,pins = <0 1>;
brcm,function = <4>;
};

i2c1_pins: i2c1 {
brcm,pins = <2 3>;
brcm,function = <4>;
};

i2s_pins: i2s {
brcm,pins = <18 19 20 21>;
brcm,function = <4>; /* alt0 */
};
};

&spi0 {
pinctrl-names = "default";
pinctrl-0 = <&spi0_pins>;

spidev@0{
compatible = "spidev";
reg = <0>; /* CE0 */
#address-cells = <1>;
#size-cells = <0>;
spi-max-frequency = <500000>;
};

spidev@1{
compatible = "spidev";
reg = <1>; /* CE1 */
#address-cells = <1>;
#size-cells = <0>;
spi-max-frequency = <500000>;
};
};

&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins>;
clock-frequency = <100000>;
};

&i2c1 {
pinctrl-names = "default";
pinctrl-0 = <&i2c1_pins>;
clock-frequency = <100000>;
};

&i2s {
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&i2s_pins>;
};

&act_led {
gpios = <&gpio 47 0>;
};

/ {
__overrides__ {
i2s = <&i2s>,"status";
spi = <&spi0>,"status";
i2c0 = <&i2c0>,"status";
i2c1 = <&i2c1>,"status";

act_led_gpio = <&act_led>,"gpios:4";
act_led_activelow = <&act_led>,"gpios:8";
act_led_trigger = <&act_led>,"linux,default-trigger";
};
};
101 changes: 101 additions & 0 deletions arch/arm/boot/dts/bcm2708-rpi-b.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
/dts-v1/;

/include/ "bcm2708.dtsi"

/ {
compatible = "brcm,bcm2708";
model = "Raspberry Pi Model B";

aliases {
soc = &soc;
spi0 = &spi0;
i2c0 = &i2c0;
i2c1 = &i2c1;
i2s = &i2s;
gpio = &gpio;
intc = &intc;
leds = &leds;
sound = &sound;
};

sound: sound {
};
};

&gpio {
spi0_pins: spi0_pins {
brcm,pins = <7 8 9 10 11>;
brcm,function = <4>; /* alt0 */
};

i2c0_pins: i2c0 {
brcm,pins = <0 1>;
brcm,function = <4>;
};

i2c1_pins: i2c1 {
brcm,pins = <2 3>;
brcm,function = <4>;
};

i2s_pins: i2s {
brcm,pins = <28 29 30 31>;
brcm,function = <4>; /* alt0 */
};
};

&spi0 {
pinctrl-names = "default";
pinctrl-0 = <&spi0_pins>;

spidev@0{
compatible = "spidev";
reg = <0>; /* CE0 */
#address-cells = <1>;
#size-cells = <0>;
spi-max-frequency = <500000>;
};

spidev@1{
compatible = "spidev";
reg = <1>; /* CE1 */
#address-cells = <1>;
#size-cells = <0>;
spi-max-frequency = <500000>;
};
};

&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins>;
clock-frequency = <100000>;
};

&i2c1 {
pinctrl-names = "default";
pinctrl-0 = <&i2c1_pins>;
clock-frequency = <100000>;
};

&i2s {
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&i2s_pins>;
};

&act_led {
gpios = <&gpio 16 1>;
};

/ {
__overrides__ {
i2s = <&i2s>,"status";
spi = <&spi0>,"status";
i2c0 = <&i2c0>,"status";
i2c1 = <&i2c1>,"status";

act_led_gpio = <&act_led>,"gpios:4";
act_led_activelow = <&act_led>,"gpios:8";
act_led_trigger = <&act_led>,"linux,default-trigger";
};
};
Loading