Skip to content

Commit

Permalink
BCM270X_DT: Add Pi3 support
Browse files Browse the repository at this point in the history
  • Loading branch information
Phil Elwell committed Feb 29, 2016
1 parent 3730cc6 commit 02ce957
Show file tree
Hide file tree
Showing 3 changed files with 263 additions and 0 deletions.
1 change: 1 addition & 0 deletions arch/arm/boot/dts/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ dtb-$(CONFIG_BCM2708_DT) += bcm2708-rpi-b.dtb
dtb-$(CONFIG_BCM2708_DT) += bcm2708-rpi-b-plus.dtb
dtb-$(CONFIG_BCM2708_DT) += bcm2708-rpi-cm.dtb
dtb-$(CONFIG_BCM2709_DT) += bcm2709-rpi-2-b.dtb
dtb-$(CONFIG_BCM2709_DT) += bcm2710-rpi-3-b.dtb

# Raspberry Pi
ifeq ($(CONFIG_BCM2708_DT),y)
Expand Down
186 changes: 186 additions & 0 deletions arch/arm/boot/dts/bcm2710-rpi-3-b.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
/dts-v1/;

/include/ "bcm2710.dtsi"

/ {
model = "Raspberry Pi 3 Model B";
};

&gpio {
sdhost_pins: sdhost_pins {
brcm,pins = <48 49 50 51 52 53>;
brcm,function = <4>; /* alt0 */
};

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 */
};

sdio_pins: sdio_pins {
brcm,pins = <34 35 36 37 38 39>;
brcm,function = <7 7 7 7 7 7>; /* alt3 = SD1 */
brcm,pull = <0 2 2 2 2 2>;
};

bt_pins: bt_pins {
brcm,pins = <28 29 30 31 43>;
brcm,function = <6 6 6 6 4>; /* alt2:PCM alt0:GPCLK2 */
brcm,pull = <0 0 0 0 0>;
};

uart0_pins: uart0_pins {
brcm,pins = <32 33>;
brcm,function = <7>; /* alt3=UART0 */
brcm,pull = <0 0>;
};

uart1_pins: uart1_pins {
brcm,pins = <14 15>;
brcm,function = <2>; /* alt5=UART1 */
brcm,pull = <0 0>;
};
};

&sdhost {
pinctrl-names = "default";
pinctrl-0 = <&sdhost_pins>;
bus-width = <4>;
status = "okay";
};

&mmc {
pinctrl-names = "default";
pinctrl-0 = <&sdio_pins>;
non-removable;
bus-width = <4>;
status = "okay";

This comment has been minimized.

Copy link
@notro

notro Mar 1, 2016

Contributor

@pelwell Both sdhost and mmc enabled at the same time?

This comment has been minimized.

Copy link
@clivem

clivem Mar 1, 2016

mmc for BCM43430 wifi via sdio, and sdhost for sdcard, me thinks.

This comment has been minimized.

Copy link
@pelwell

pelwell Mar 1, 2016

Contributor

Yes - there's a clue on line 69.

brcm,overclock-50 = <0>;
};

&soc {
virtgpio: virtgpio {
compatible = "brcm,bcm2835-virtgpio";
gpio-controller;
#gpio-cells = <2>;
firmware = <&firmware>;
status = "okay";
};
};

&fb {
status = "okay";
};

&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins &bt_pins>;
status = "okay";
};

&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&uart1_pins>;
status = "okay";
};

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

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>;
};

&i2c2 {
clock-frequency = <100000>;
};

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

&random {
status = "okay";
};

&leds {
act_led: act {
label = "led0";
linux,default-trigger = "mmc0";
gpios = <&virtgpio 0 0>;
};
};

/ {
chosen {
bootargs = "8250.nr_uarts=1";
};
};

/ {
__overrides__ {
uart0 = <&uart0>,"status";
uart0_clkrate = <&clk_uart0>,"clock-frequency:0";
i2s = <&i2s>,"status";
spi = <&spi0>,"status";
i2c0 = <&i2c0>,"status";
i2c1 = <&i2c1>,"status";
i2c2_iknowwhatimdoing = <&i2c2>,"status";
i2c0_baudrate = <&i2c0>,"clock-frequency:0";
i2c1_baudrate = <&i2c1>,"clock-frequency:0";
i2c2_baudrate = <&i2c2>,"clock-frequency:0";
core_freq = <&clk_core>,"clock-frequency:0";

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

audio = <&audio>,"status";
watchdog = <&watchdog>,"status";
random = <&random>,"status";
};
};
76 changes: 76 additions & 0 deletions arch/arm/boot/dts/bcm2710.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
/include/ "bcm2708_common.dtsi"

/ {
compatible = "brcm,bcm2710","brcm,bcm2709";
model = "BCM2710";

chosen {
/* No padding required - the boot loader can do that. */
bootargs = "";
};

soc {
ranges = <0x7e000000 0x3f000000 0x01000000>;

arm-pmu {
compatible = "arm,cortex-a7-pmu";
interrupts = <3 9>;
};

gpiomem {
compatible = "brcm,bcm2835-gpiomem";
reg = <0x7e200000 0x1000>;
status = "okay";
};
};

timer {
compatible = "arm,armv7-timer";
clock-frequency = <19200000>;
interrupts = <3 0>, // PHYS_SECURE_PPI
<3 1>, // PHYS_NONSECURE_PPI
<3 3>, // VIRT_PPI
<3 2>; // HYP_PPI
always-on;
};

cpus: cpus {
#address-cells = <1>;
#size-cells = <0>;

v7_cpu0: cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x000>;
clock-frequency = <800000000>;
};

v7_cpu1: cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x001>;
clock-frequency = <800000000>;
};

v7_cpu2: cpu@2 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x002>;
clock-frequency = <800000000>;
};

v7_cpu3: cpu@3 {
device_type = "cpu";
compatible = "arm,cortex-a7";
reg = <0x003>;
clock-frequency = <800000000>;
};
};

__overrides__ {
arm_freq = <&v7_cpu0>, "clock-frequency:0",
<&v7_cpu1>, "clock-frequency:0",
<&v7_cpu2>, "clock-frequency:0",
<&v7_cpu3>, "clock-frequency:0";
};
};

0 comments on commit 02ce957

Please sign in to comment.