mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 16:31:13 +00:00
f07e572f64
bcm2708: boot tested on RPi B+ v1.2 bcm2709: boot tested on RPi 3B v1.2 and RPi 4B v1.1 4G bcm2710: boot tested on RPi 3B v1.2 bcm2711: boot tested on RPi 4B v1.1 4G Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
183 lines
3.9 KiB
Diff
183 lines
3.9 KiB
Diff
From bd291f0ff613ad270a7c9352f3f27a09c058553f Mon Sep 17 00:00:00 2001
|
|
From: Phil Elwell <phil@raspberrypi.com>
|
|
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 <phil@raspberrypi.com>
|
|
---
|
|
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";
|
|
};
|