From bd291f0ff613ad270a7c9352f3f27a09c058553f Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 21 Apr 2020 17:34:27 +0100 Subject: [PATCH] ARM: dts: Create bcm2708-rpi-b-rev1.dts 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 --- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/bcm2708-rpi-b-rev1.dts | 127 +++++++++++++++++++++++ arch/arm/boot/dts/bcm270x-rpi.dtsi | 4 + 3 files changed, 132 insertions(+) create mode 100644 arch/arm/boot/dts/bcm2708-rpi-b-rev1.dts --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -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 \ --- /dev/null +++ b/arch/arm/boot/dts/bcm2708-rpi-b-rev1.dts @@ -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"; + }; +}; --- a/arch/arm/boot/dts/bcm270x-rpi.dtsi +++ b/arch/arm/boot/dts/bcm270x-rpi.dtsi @@ -110,6 +110,10 @@ status = "disabled"; }; +&i2c0mux { + status = "disabled"; +}; + &i2c1 { status = "disabled"; };