Skip to content

Commit

Permalink
ARM: dts: Create bcm2708-rpi-b-rev1.dts
Browse files Browse the repository at this point in the history
The first revision of the Pi Model B used I2C0 to address the camera
and I2C0 was available for user applications on the 26-pin header.
The second revision switched the roles, kept I2C0 on the 26-pin header
and added I2C1 on a new 8-way header (P5).

Up to now, downstream DTS has used a single file for both revisions of
the board, with a small amount of patching from the firmware. With the
introduction of an I2C mux to share I2C0 between the camera/display
connectors and the IDC headers, the difference between the two versions
becomes too great to comfortably manage with tweaking, hence this split.

Upstream DTS files already have bcm2835-rpi-b.dts and
bcm2835-rpi-b-rev2.dts, but for backwards compatibility the new file is
being added as bcm2708-rpi-b-rev1.dts, rather than renaming the old
shared version to bcm2708-rpi-b-rev2.dts.

Signed-off-by: Phil Elwell <[email protected]>
  • Loading branch information
pelwell committed Apr 22, 2020
1 parent 39e472b commit c5ecb35
Show file tree
Hide file tree
Showing 3 changed files with 132 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 @@ -2,6 +2,7 @@

dtb-$(CONFIG_ARCH_BCM2835) += \
bcm2708-rpi-b.dtb \
bcm2708-rpi-b-rev1.dtb \
bcm2708-rpi-b-plus.dtb \
bcm2708-rpi-cm.dtb \
bcm2708-rpi-zero.dtb \
Expand Down
127 changes: 127 additions & 0 deletions arch/arm/boot/dts/bcm2708-rpi-b-rev1.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
/dts-v1/;

#include "bcm2708.dtsi"
#include "bcm2708-rpi.dtsi"
#include "bcm283x-rpi-smsc9512.dtsi"
#include "bcm283x-rpi-csi1-2lane.dtsi"

/ {
compatible = "raspberrypi,model-b", "brcm,bcm2835";
model = "Raspberry Pi Model B";
};

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

spi0_cs_pins: spi0_cs_pins {
brcm,pins = <8 7>;
brcm,function = <1>; /* output */
};

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

audio_pins: audio_pins {
brcm,pins = <40 45>;
brcm,function = <4>;
};
};

&uart0 {
status = "okay";
};

&spi0 {
pinctrl-names = "default";
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
cs-gpios = <&gpio 8 1>, <&gpio 7 1>;

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

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

/delete-node/ &i2c0mux;

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

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

/ {
aliases {
i2c0 = &i2c0;
};

__overrides__ {
i2c0 = <&i2c0>, "status";
};
};

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

&i2s {
pinctrl-names = "default";
pinctrl-0 = <&i2s_pins>;
};

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

&hdmi {
hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
};

&audio {
pinctrl-names = "default";
pinctrl-0 = <&audio_pins>;
};

/ {
__overrides__ {
act_led_gpio = <&act_led>,"gpios:4";
act_led_activelow = <&act_led>,"gpios:8";
act_led_trigger = <&act_led>,"linux,default-trigger";
};
};
4 changes: 4 additions & 0 deletions arch/arm/boot/dts/bcm270x-rpi.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,10 @@
status = "disabled";
};

&i2c0mux {
status = "disabled";
};

&i2c1 {
status = "disabled";
};
Expand Down

0 comments on commit c5ecb35

Please sign in to comment.