The BCM2835 SoC contains a DWC2 USB controller. Add this to the DT.
Set up the pin controller to fully enable the USB controller on the
Raspberry Pi. The GPIO setup works because the default output value for
GPIO 6 (LAN_RUN/n_reset) just happens to be 1, which enables the
USB/LAN chip.
Note that you'll need a U-Boot which enables power to the USB controller;
search for U-Boot patch "ARM: rpi_b: power on SDHCI and USB HW modules".
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Olof Johansson <olof@lixom.net>
The Raspberry Pi board has one GPIO-controlled LED labeled "ACT". Add it
to the DT via the gpio-leds driver, so users can control it from
userspace. If CONFIG_LEDS_TRIGGER_HEARTBEAT is set, the LED will also
signal some sign of life.
The GPIO circuitry is low-active. And as the bootloader may decide to
switch the LED on at boot time, the default state is 'keep'.
Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
The BCM2835 has 3 identical I2C controllers. Instantiate them all in the
SoC .dtsi file, and enable the relevant two in the Raspberry Pi board
.dts file.
Note that on the Raspberry Pi Model B revision 1, I2C0 is connected to
the general-purpose expansion header, and I2C1 is connected to the camera
connector. Revision 2 of the board swaps these assignments:-(
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Add the SDHCI device node to the SoC DT file. Add a dummy fixed-clock
to satisfy the SDHCI driver's clock lookup; eventually this should be
replaced by a real clock implementation. Add board specific properties
to the Raspberry Pi board file.
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
The Raspberry Pi has either 256MB or 512MB of RAM. However, a portion is
reserved for use by the VideoCore co-processor. The RPi DT contained a
/memreserve/ statement to reserve that RAM. However, the exact amount of
RAM used by the VideoCore is dynamic at boot-time; a firmware config
file specifies the amount. As such, we can't hard-code the size in the
DT. Remove the /memreserve/ statement. The bootloader is expected to
adjust the /memory properties to reflect the RAM size the ARM CPU can
use. Upstream U-Boot certainly does this, although I'm not sure that the
basic firmware does if it boots the kernel directly; users may need to
manually adjust their DT if not using U-Boot.
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Enable GPIO and pinctrl in Kconfig.
Add required <mach/gpio.h> for gpiolib.
Instantiate the BCM2835 GPIO module in bcm2835.dtsi.
Add a pinctrl definition to bcm2835-rpi-b.dts that sets up all of the
board's required pinmux configuration. GPIO aren't specified; that's
left to gpio_request().
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
The BCM2835 is an ARM SoC from Broadcom. This patch adds very basic
support for this SoC.
http://www.broadcom.com/products/BCM2835http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf
Note that the documentation in the latter .pdf assumes the MMU setup
that's used on the "VideoCore" companion processor, and does not document
physical peripheral addresses. Subtract 0x5e000000 to obtain the physical
addresses. This is accounted for by the ranges property in the /soc node
in the device tree.
The BCM2835 SoC is used in the Raspberry Pi. This patch also adds a
minimal device tree for this board; enough to see some very early kernel
boot messages through earlyprintk. However, this patch does not yet
provide a useful booting system.
http://www.raspberrypi.org/.
This patch was extracted from git://github.com/lp0/linux.git branch
rpi-split from 3-4 months ago, and significantly stripped down and
modified since.
Signed-off-by: Chris Boot <bootc@bootc.net>
Signed-off-by: Simon Arlott <simon@fire.lp0.eu>
Signed-off-by: Dom Cobley <popcornmix@gmail.com>
Signed-off-by: Dom Cobley <dc4@broadcom.com>
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>