]> git.ipfire.org Git - people/ms/u-boot.git/commitdiff
fdt: update bcm283x device tree sources to Linux 4.14 state
authorAlexander Graf <agraf@suse.de>
Wed, 4 Oct 2017 12:39:16 +0000 (14:39 +0200)
committerTom Rini <trini@konsulko.com>
Mon, 16 Oct 2017 13:42:51 +0000 (09:42 -0400)
Upstream Linux has received a few device tree updates to the RPi
which we should propagate into the builtin U-Boot one as well to
gain hardware support.

This patch bumps the dts files to their 4.14 Linux counterparts
with the exception of sdhost on 32bit RPi versions. There we stay
with iproc as the sdhost driver is missing in U-Boot.

Signed-off-by: Alexander Graf <agraf@suse.de>
17 files changed:
arch/arm/dts/bcm2835-rpi-a-plus.dts
arch/arm/dts/bcm2835-rpi-a.dts
arch/arm/dts/bcm2835-rpi-b-plus.dts
arch/arm/dts/bcm2835-rpi-b-rev2.dts
arch/arm/dts/bcm2835-rpi-b.dts
arch/arm/dts/bcm2835-rpi.dtsi
arch/arm/dts/bcm2835.dtsi
arch/arm/dts/bcm2836-rpi-2-b.dts
arch/arm/dts/bcm2836.dtsi
arch/arm/dts/bcm2837-rpi-3-b.dts
arch/arm/dts/bcm2837.dtsi
arch/arm/dts/bcm283x-rpi-smsc9512.dtsi
arch/arm/dts/bcm283x-rpi-smsc9514.dtsi
arch/arm/dts/bcm283x-rpi-usb-host.dtsi [new file with mode: 0644]
arch/arm/dts/bcm283x.dtsi
include/dt-bindings/clock/bcm2835.h
include/dt-bindings/pinctrl/bcm2835.h

index 35ff4e7a4aaca7f672428852bb43b221725ae51f..9f866491efdf5ac6c3bad1f785a9837fce33073c 100644 (file)
@@ -1,6 +1,7 @@
 /dts-v1/;
 #include "bcm2835.dtsi"
 #include "bcm2835-rpi.dtsi"
+#include "bcm283x-rpi-usb-host.dtsi"
 
 / {
        compatible = "raspberrypi,model-a-plus", "brcm,bcm2835";
 };
 
 &gpio {
-       pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>;
+       /*
+        * This is based on the unreleased schematic for the Model A+.
+        *
+        * Legend:
+        * "NC" = not connected (no rail from the SoC)
+        * "FOO" = GPIO line named "FOO" on the schematic
+        * "FOO_N" = GPIO line named "FOO" on schematic, active low
+        */
+       gpio-line-names = "SDA0",
+                         "SCL0",
+                         "SDA1",
+                         "SCL1",
+                         "GPIO_GCLK",
+                         "GPIO5",
+                         "GPIO6",
+                         "SPI_CE1_N",
+                         "SPI_CE0_N",
+                         "SPI_MISO",
+                         "SPI_MOSI",
+                         "SPI_SCLK",
+                         "GPIO12",
+                         "GPIO13",
+                         /* Serial port */
+                         "TXD0",
+                         "RXD0",
+                         "GPIO16",
+                         "GPIO17",
+                         "GPIO18",
+                         "GPIO19",
+                         "GPIO20",
+                         "GPIO21",
+                         "GPIO22",
+                         "GPIO23",
+                         "GPIO24",
+                         "GPIO25",
+                         "GPIO26",
+                         "GPIO27",
+                         "SDA0",
+                         "SCL0",
+                         "NC", /* GPIO30 */
+                         "NC", /* GPIO31 */
+                         "CAM_GPIO1", /* GPIO32 */
+                         "NC", /* GPIO33 */
+                         "NC", /* GPIO34 */
+                         "PWR_LOW_N", /* GPIO35 */
+                         "NC", /* GPIO36 */
+                         "NC", /* GPIO37 */
+                         "USB_LIMIT", /* GPIO38 */
+                         "NC", /* GPIO39 */
+                         "PWM0_OUT", /* GPIO40 */
+                         "CAM_GPIO0", /* GPIO41 */
+                         "NC", /* GPIO42 */
+                         "NC", /* GPIO43 */
+                         "NC", /* GPIO44 */
+                         "PWM1_OUT", /* GPIO45 */
+                         "HDMI_HPD_N",
+                         "STATUS_LED",
+                         /* Used by SD Card */
+                         "SD_CLK_R",
+                         "SD_CMD_R",
+                         "SD_DATA0_R",
+                         "SD_DATA1_R",
+                         "SD_DATA2_R",
+                         "SD_DATA3_R";
+
+       pinctrl-0 = <&gpioout &alt0 &i2s_alt0>;
 
        /* I2S interface */
        i2s_alt0: i2s_alt0 {
@@ -33,3 +99,9 @@
 &hdmi {
        hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
 };
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_gpio14>;
+       status = "okay";
+};
index 306a84ee9898b17ae632fe8839633cd133d631ff..4b1af06c8dc03157113781ab27e9085346cd59d9 100644 (file)
@@ -1,6 +1,7 @@
 /dts-v1/;
 #include "bcm2835.dtsi"
 #include "bcm2835-rpi.dtsi"
+#include "bcm283x-rpi-usb-host.dtsi"
 
 / {
        compatible = "raspberrypi,model-a", "brcm,bcm2835";
 };
 
 &gpio {
-       pinctrl-0 = <&gpioout &alt0 &i2s_alt2 &alt3>;
+       /*
+        * Taken from Raspberry-Pi-Rev-1.0-Model-AB-Schematics.pdf
+        * RPI00021 sheet 02
+        *
+        * Legend:
+        * "NC" = not connected (no rail from the SoC)
+        * "FOO" = GPIO line named "FOO" on the schematic
+        * "FOO_N" = GPIO line named "FOO" on schematic, active low
+        */
+       gpio-line-names = "SDA0",
+                         "SCL0",
+                         "SDA1",
+                         "SCL1",
+                         "GPIO_GCLK",
+                         "CAM_GPIO1",
+                         "LAN_RUN",
+                         "SPI_CE1_N",
+                         "SPI_CE0_N",
+                         "SPI_MISO",
+                         "SPI_MOSI",
+                         "SPI_SCLK",
+                         "NC", /* GPIO12 */
+                         "NC", /* GPIO13 */
+                         /* Serial port */
+                         "TXD0",
+                         "RXD0",
+                         "STATUS_LED_N",
+                         "GPIO17",
+                         "GPIO18",
+                         "NC", /* GPIO19 */
+                         "NC", /* GPIO20 */
+                         "GPIO21",
+                         "GPIO22",
+                         "GPIO23",
+                         "GPIO24",
+                         "GPIO25",
+                         "NC", /* GPIO26 */
+                         "CAM_GPIO0",
+                         /* Binary number representing build/revision */
+                         "CONFIG0",
+                         "CONFIG1",
+                         "CONFIG2",
+                         "CONFIG3",
+                         "NC", /* GPIO32 */
+                         "NC", /* GPIO33 */
+                         "NC", /* GPIO34 */
+                         "NC", /* GPIO35 */
+                         "NC", /* GPIO36 */
+                         "NC", /* GPIO37 */
+                         "NC", /* GPIO38 */
+                         "NC", /* GPIO39 */
+                         "PWM0_OUT",
+                         "NC", /* GPIO41 */
+                         "NC", /* GPIO42 */
+                         "NC", /* GPIO43 */
+                         "NC", /* GPIO44 */
+                         "PWM1_OUT",
+                         "HDMI_HPD_P",
+                         "SD_CARD_DET",
+                         /* Used by SD Card */
+                         "SD_CLK_R",
+                         "SD_CMD_R",
+                         "SD_DATA0_R",
+                         "SD_DATA1_R",
+                         "SD_DATA2_R",
+                         "SD_DATA3_R";
+
+       pinctrl-0 = <&gpioout &alt0 &i2s_alt2>;
 
        /* I2S interface */
        i2s_alt2: i2s_alt2 {
@@ -26,3 +94,9 @@
 &hdmi {
        hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
 };
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_gpio14>;
+       status = "okay";
+};
index d5fdb8e761a39ef4ac063c916e9f889342b525e7..a846f1e781d8a30e2e0afeaed5e67c32005f9b97 100644 (file)
@@ -2,6 +2,7 @@
 #include "bcm2835.dtsi"
 #include "bcm2835-rpi.dtsi"
 #include "bcm283x-rpi-smsc9514.dtsi"
+#include "bcm283x-rpi-usb-host.dtsi"
 
 / {
        compatible = "raspberrypi,model-b-plus", "brcm,bcm2835";
 };
 
 &gpio {
-       pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>;
+       /*
+        * Taken from Raspberry-Pi-B-Plus-V1.2-Schematics.pdf
+        * RPI-BPLUS sheet 1
+        *
+        * Legend:
+        * "NC" = not connected (no rail from the SoC)
+        * "FOO" = GPIO line named "FOO" on the schematic
+        * "FOO_N" = GPIO line named "FOO" on schematic, active low
+        */
+       gpio-line-names = "SDA0",
+                         "SCL0",
+                         "SDA1",
+                         "SCL1",
+                         "GPIO_GCLK",
+                         "GPIO5",
+                         "GPIO6",
+                         "SPI_CE1_N",
+                         "SPI_CE0_N",
+                         "SPI_MISO",
+                         "SPI_MOSI",
+                         "SPI_SCLK",
+                         "GPIO12",
+                         "GPIO13",
+                         /* Serial port */
+                         "TXD0",
+                         "RXD0",
+                         "GPIO16",
+                         "GPIO17",
+                         "GPIO18",
+                         "GPIO19",
+                         "GPIO20",
+                         "GPIO21",
+                         "GPIO22",
+                         "GPIO23",
+                         "GPIO24",
+                         "GPIO25",
+                         "GPIO26",
+                         "GPIO27",
+                         "SDA0",
+                         "SCL0",
+                         "NC", /* GPIO30 */
+                         "LAN_RUN", /* GPIO31 */
+                         "CAM_GPIO1", /* GPIO32 */
+                         "NC", /* GPIO33 */
+                         "NC", /* GPIO34 */
+                         "PWR_LOW_N", /* GPIO35 */
+                         "NC", /* GPIO36 */
+                         "NC", /* GPIO37 */
+                         "USB_LIMIT", /* GPIO38 */
+                         "NC", /* GPIO39 */
+                         "PWM0_OUT", /* GPIO40 */
+                         "CAM_GPIO0", /* GPIO41 */
+                         "NC", /* GPIO42 */
+                         "NC", /* GPIO43 */
+                         "ETHCLK", /* GPIO44 */
+                         "PWM1_OUT", /* GPIO45 */
+                         "HDMI_HPD_N",
+                         "STATUS_LED",
+                         /* Used by SD Card */
+                         "SD_CLK_R",
+                         "SD_CMD_R",
+                         "SD_DATA0_R",
+                         "SD_DATA1_R",
+                         "SD_DATA2_R",
+                         "SD_DATA3_R";
+
+       pinctrl-0 = <&gpioout &alt0 &i2s_alt0>;
 
        /* I2S interface */
        i2s_alt0: i2s_alt0 {
 &hdmi {
        hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
 };
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_gpio14>;
+       status = "okay";
+};
index bfc4bd9b7733f41b05c40238be120bcc96c157f7..e860964e39fa9ce61fee3f858924019df37fdf81 100644 (file)
@@ -2,6 +2,7 @@
 #include "bcm2835.dtsi"
 #include "bcm2835-rpi.dtsi"
 #include "bcm283x-rpi-smsc9512.dtsi"
+#include "bcm283x-rpi-usb-host.dtsi"
 
 / {
        compatible = "raspberrypi,model-b-rev2", "brcm,bcm2835";
 };
 
 &gpio {
-       pinctrl-0 = <&gpioout &alt0 &i2s_alt2 &alt3>;
+       /*
+        * Taken from Raspberry-Pi-Rev-2.0-Model-AB-Schematics.pdf
+        * RPI00022 sheet 02
+        *
+        * Legend:
+        * "NC" = not connected (no rail from the SoC)
+        * "FOO" = GPIO line named "FOO" on the schematic
+        * "FOO_N" = GPIO line named "FOO" on schematic, active low
+        */
+       gpio-line-names = "SDA0",
+                         "SCL0",
+                         "SDA1",
+                         "SCL1",
+                         "GPIO_GCLK",
+                         "CAM_CLK",
+                         "LAN_RUN",
+                         "SPI_CE1_N",
+                         "SPI_CE0_N",
+                         "SPI_MISO",
+                         "SPI_MOSI",
+                         "SPI_SCLK",
+                         "NC", /* GPIO12 */
+                         "NC", /* GPIO13 */
+                         /* Serial port */
+                         "TXD0",
+                         "RXD0",
+                         "STATUS_LED_N",
+                         "GPIO17",
+                         "GPIO18",
+                         "NC", /* GPIO19 */
+                         "NC", /* GPIO20 */
+                         "CAM_GPIO",
+                         "GPIO22",
+                         "GPIO23",
+                         "GPIO24",
+                         "GPIO25",
+                         "NC", /* GPIO26 */
+                         "GPIO27",
+                         "GPIO28",
+                         "GPIO29",
+                         "GPIO30",
+                         "GPIO31",
+                         "NC", /* GPIO32 */
+                         "NC", /* GPIO33 */
+                         "NC", /* GPIO34 */
+                         "NC", /* GPIO35 */
+                         "NC", /* GPIO36 */
+                         "NC", /* GPIO37 */
+                         "NC", /* GPIO38 */
+                         "NC", /* GPIO39 */
+                         "PWM0_OUT",
+                         "NC", /* GPIO41 */
+                         "NC", /* GPIO42 */
+                         "NC", /* GPIO43 */
+                         "NC", /* GPIO44 */
+                         "PWM1_OUT",
+                         "HDMI_HPD_P",
+                         "SD_CARD_DET",
+                         /* Used by SD Card */
+                         "SD_CLK_R",
+                         "SD_CMD_R",
+                         "SD_DATA0_R",
+                         "SD_DATA1_R",
+                         "SD_DATA2_R",
+                         "SD_DATA3_R";
+
+       pinctrl-0 = <&gpioout &alt0 &i2s_alt2>;
 
        /* I2S interface */
        i2s_alt2: i2s_alt2 {
@@ -27,3 +94,9 @@
 &hdmi {
        hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
 };
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_gpio14>;
+       status = "okay";
+};
index 0371bb7374b88c63db7acc17300f07d4a96996b2..5d77f3f8c4c58475fcf5948af3d5815f7b6cd728 100644 (file)
@@ -2,6 +2,7 @@
 #include "bcm2835.dtsi"
 #include "bcm2835-rpi.dtsi"
 #include "bcm283x-rpi-smsc9512.dtsi"
+#include "bcm283x-rpi-usb-host.dtsi"
 
 / {
        compatible = "raspberrypi,model-b", "brcm,bcm2835";
 };
 
 &gpio {
-       pinctrl-0 = <&gpioout &alt0 &alt3>;
+       /*
+        * Taken from Raspberry-Pi-Rev-1.0-Model-AB-Schematics.pdf
+        * RPI00021 sheet 02
+        *
+        * Legend:
+        * "NC" = not connected (no rail from the SoC)
+        * "FOO" = GPIO line named "FOO" on the schematic
+        * "FOO_N" = GPIO line named "FOO" on schematic, active low
+        */
+       gpio-line-names = "SDA0",
+                         "SCL0",
+                         "SDA1",
+                         "SCL1",
+                         "GPIO_GCLK",
+                         "CAM_GPIO1",
+                         "LAN_RUN",
+                         "SPI_CE1_N",
+                         "SPI_CE0_N",
+                         "SPI_MISO",
+                         "SPI_MOSI",
+                         "SPI_SCLK",
+                         "NC", /* GPIO12 */
+                         "NC", /* GPIO13 */
+                         /* Serial port */
+                         "TXD0",
+                         "RXD0",
+                         "STATUS_LED_N",
+                         "GPIO17",
+                         "GPIO18",
+                         "NC", /* GPIO19 */
+                         "NC", /* GPIO20 */
+                         "GPIO21",
+                         "GPIO22",
+                         "GPIO23",
+                         "GPIO24",
+                         "GPIO25",
+                         "NC", /* GPIO26 */
+                         "CAM_GPIO0",
+                         /* Binary number representing build/revision */
+                         "CONFIG0",
+                         "CONFIG1",
+                         "CONFIG2",
+                         "CONFIG3",
+                         "NC", /* GPIO32 */
+                         "NC", /* GPIO33 */
+                         "NC", /* GPIO34 */
+                         "NC", /* GPIO35 */
+                         "NC", /* GPIO36 */
+                         "NC", /* GPIO37 */
+                         "NC", /* GPIO38 */
+                         "NC", /* GPIO39 */
+                         "PWM0_OUT",
+                         "NC", /* GPIO41 */
+                         "NC", /* GPIO42 */
+                         "NC", /* GPIO43 */
+                         "NC", /* GPIO44 */
+                         "PWM1_OUT",
+                         "HDMI_HPD_P",
+                         "SD_CARD_DET",
+                         /* Used by SD Card */
+                         "SD_CLK_R",
+                         "SD_CMD_R",
+                         "SD_DATA0_R",
+                         "SD_DATA1_R",
+                         "SD_DATA2_R",
+                         "SD_DATA3_R";
+
+       pinctrl-0 = <&gpioout &alt0>;
 };
 
 &hdmi {
        hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
 };
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_gpio14>;
+       status = "okay";
+};
index e9b47b2bbc3390edc2541f251ae5167640a445d9..8b95832dd00c911ffd523076ca9b0a13540ef19d 100644 (file)
        };
 
        alt0: alt0 {
-               brcm,pins = <0 1 2 3 4 5 7 8 9 10 11 14 15 40 45>;
+               brcm,pins = <4 5 7 8 9 10 11>;
                brcm,function = <BCM2835_FSEL_ALT0>;
        };
-
-       alt3: alt3 {
-               brcm,pins = <48 49 50 51 52 53>;
-               brcm,function = <BCM2835_FSEL_ALT3>;
-       };
 };
 
 &i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_gpio0>;
        status = "okay";
        clock-frequency = <100000>;
 };
 
 &i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_gpio2>;
        status = "okay";
        clock-frequency = <100000>;
 };
 };
 
 &sdhci {
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_gpio48>;
        status = "okay";
        bus-width = <4>;
 };
 
+&sdhost {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdhost_gpio48>;
+       bus-width = <4>;
+};
+
 &pwm {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
        status = "okay";
 };
 
        power-domains = <&power RPI_POWER_DOMAIN_HDMI>;
        status = "okay";
 };
+
+&vec {
+       power-domains = <&power RPI_POWER_DOMAIN_VEC>;
+       status = "okay";
+};
+
+&dsi0 {
+       power-domains = <&power RPI_POWER_DOMAIN_DSI0>;
+};
+
+&dsi1 {
+       power-domains = <&power RPI_POWER_DOMAIN_DSI1>;
+};
index a78759e737101728340675ff1b7cc4a171e00fb2..659b6e9513b1d28fdd28171fd7973dc3cc968e3f 100644 (file)
                };
        };
 };
+
+&cpu_thermal {
+       coefficients = <(-538)  407000>;
+};
+
+/* enable thermal sensor with the correct compatible property set */
+&thermal {
+       compatible = "brcm,bcm2835-thermal";
+       status = "okay";
+};
index 29e1cfe8eb142bd1af81e5b1869b8c406c46ad0b..e8de41444b68eed33efa16e92ddf29e3ace5fd1c 100644 (file)
@@ -2,6 +2,7 @@
 #include "bcm2836.dtsi"
 #include "bcm2835-rpi.dtsi"
 #include "bcm283x-rpi-smsc9514.dtsi"
+#include "bcm283x-rpi-usb-host.dtsi"
 
 / {
        compatible = "raspberrypi,2-model-b", "brcm,bcm2836";
@@ -26,7 +27,7 @@
 };
 
 &gpio {
-       pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>;
+       pinctrl-0 = <&gpioout &alt0 &i2s_alt0>;
 
        /* I2S interface */
        i2s_alt0: i2s_alt0 {
@@ -38,3 +39,9 @@
 &hdmi {
        hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
 };
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_gpio14>;
+       status = "okay";
+};
index 9d0651d8f373d4042a0a9ed7809d0b9b81921ae8..2c26d0be8b0316792188890ed677e87fc1fb13ea 100644 (file)
@@ -36,6 +36,7 @@
        cpus: cpus {
                #address-cells = <1>;
                #size-cells = <0>;
+               enable-method = "brcm,bcm2836-smp";
 
                v7_cpu0: cpu@0 {
                        device_type = "cpu";
        interrupt-parent = <&local_intc>;
        interrupts = <8>;
 };
+
+&cpu_thermal {
+       coefficients = <(-538)  407000>;
+};
+
+/* enable thermal sensor with the correct compatible property set */
+&thermal {
+       compatible = "brcm,bcm2836-thermal";
+       status = "okay";
+};
index 7841b724e340e1441867254c9a89c53c014eb031..20725ca487f30afd5e84059fbcb1513d3399cfa8 100644 (file)
@@ -2,6 +2,7 @@
 #include "bcm2837.dtsi"
 #include "bcm2835-rpi.dtsi"
 #include "bcm283x-rpi-smsc9514.dtsi"
+#include "bcm283x-rpi-usb-host.dtsi"
 
 / {
        compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
                act {
                        gpios = <&gpio 47 0>;
                };
-
-               pwr {
-                       label = "PWR";
-                       gpios = <&gpio 35 0>;
-                       default-state = "keep";
-                       linux,default-trigger = "default-on";
-               };
        };
 };
 
+/* uart0 communicates with the BT module */
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>;
+       status = "okay";
+};
+
+/* uart1 is mapped to the pin header */
 &uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1_gpio14>;
+       status = "okay";
+};
+
+/* SDHCI is used to control the SDIO for wireless */
+&sdhci {
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_gpio34>;
+       status = "okay";
+       bus-width = <4>;
+       non-removable;
+};
+
+/* SDHOST is used to drive the SD card */
+&sdhost {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdhost_gpio48>;
        status = "okay";
+       bus-width = <4>;
 };
index 8216bbb29fe0758ff315098fb1319d97fea91469..bc1cca5cf43c41b8dad3902ce1a627b625883cb3 100644 (file)
@@ -1,7 +1,7 @@
 #include "bcm283x.dtsi"
 
 / {
-       compatible = "brcm,bcm2836";
+       compatible = "brcm,bcm2837";
 
        soc {
                ranges = <0x7e000000 0x3f000000 0x1000000>,
@@ -30,6 +30,7 @@
        cpus: cpus {
                #address-cells = <1>;
                #size-cells = <0>;
+               enable-method = "brcm,bcm2836-smp"; // for ARM 32-bit
 
                cpu0: cpu@0 {
                        device_type = "cpu";
        interrupt-parent = <&local_intc>;
        interrupts = <8>;
 };
+
+&cpu_thermal {
+       coefficients = <(-538)  412000>;
+};
+
+/* enable thermal sensor with the correct compatible property set */
+&thermal {
+       compatible = "brcm,bcm2837-thermal";
+       status = "okay";
+};
index 12c981e5113489ea785d8f4d8b0a5b9f99d61beb..9a0599f711ff3382a7b908bb72e9f0392db5e1bf 100644 (file)
@@ -1,6 +1,6 @@
 / {
        aliases {
-               ethernet = &ethernet;
+               ethernet0 = &ethernet;
        };
 };
 
index 3f0a56ebcf1f64692cbdd311752ce8d1fd36a5f1..dc7ae776db5fc0ca54e91ef6369fbaee71162d22 100644 (file)
@@ -1,6 +1,6 @@
 / {
        aliases {
-               ethernet = &ethernet;
+               ethernet0 = &ethernet;
        };
 };
 
diff --git a/arch/arm/dts/bcm283x-rpi-usb-host.dtsi b/arch/arm/dts/bcm283x-rpi-usb-host.dtsi
new file mode 100644 (file)
index 0000000..73f4ece
--- /dev/null
@@ -0,0 +1,3 @@
+&usb {
+       dr_mode = "host";
+};
index e5b4f20c2ad3973fa4c03734b7a9fbba7a02adff..05a6f489afcbfc19c9e3f358991df3950e111d88 100644 (file)
@@ -3,6 +3,11 @@
 #include <dt-bindings/clock/bcm2835-aux.h>
 #include <dt-bindings/gpio/gpio.h>
 
+/* firmware-provided startup stubs live here, where the secondary CPUs are
+ * spinning.
+ */
+/memreserve/ 0x00000000 0x00001000;
+
 /* This include file covers the common peripherals and configuration between
  * bcm2835 and bcm2836 implementations, leaving the CPU configuration to
  * bcm2835.dtsi and bcm2836.dtsi.
                bootargs = "earlyprintk console=ttyAMA0";
        };
 
+       thermal-zones {
+               cpu_thermal: cpu-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&thermal>;
+
+                       trips {
+                               cpu-crit {
+                                       temperature     = <80000>;
+                                       hysteresis      = <0>;
+                                       type            = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                       };
+               };
+       };
+
        soc: soc {
                compatible = "simple-bus";
                #address-cells = <1>;
                        #clock-cells = <1>;
                        reg = <0x7e101000 0x2000>;
 
-                       /* CPRMAN derives everything from the platform's
-                        * oscillator.
+                       /* CPRMAN derives almost everything from the
+                        * platform's oscillator.  However, the DSI
+                        * pixel clocks come from the DSI analog PHY.
                         */
-                       clocks = <&clk_osc>;
+                       clocks = <&clk_osc>,
+                               <&dsi0 0>, <&dsi0 1>, <&dsi0 2>,
+                               <&dsi1 0>, <&dsi1 1>, <&dsi1 2>;
                };
 
                rng@7e104000 {
                        reg = <0x7e104000 0x10>;
                };
 
-               mailbox: mailbox@7e00b800 {
+               mailbox: mailbox@7e00b880 {
                        compatible = "brcm,bcm2835-mbox";
                        reg = <0x7e00b880 0x40>;
                        interrupts = <0 1>;
 
                        interrupt-controller;
                        #interrupt-cells = <2>;
+
+                       /* Defines pin muxing groups according to
+                        * BCM2835-ARM-Peripherals.pdf page 102.
+                        *
+                        * While each pin can have its mux selected
+                        * for various functions individually, some
+                        * groups only make sense to switch to a
+                        * particular function together.
+                        */
+                       dpi_gpio0: dpi_gpio0 {
+                               brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11
+                                            12 13 14 15 16 17 18 19
+                                            20 21 22 23 24 25 26 27>;
+                               brcm,function = <BCM2835_FSEL_ALT2>;
+                       };
+                       emmc_gpio22: emmc_gpio22 {
+                               brcm,pins = <22 23 24 25 26 27>;
+                               brcm,function = <BCM2835_FSEL_ALT3>;
+                       };
+                       emmc_gpio34: emmc_gpio34 {
+                               brcm,pins = <34 35 36 37 38 39>;
+                               brcm,function = <BCM2835_FSEL_ALT3>;
+                               brcm,pull = <BCM2835_PUD_OFF
+                                            BCM2835_PUD_UP
+                                            BCM2835_PUD_UP
+                                            BCM2835_PUD_UP
+                                            BCM2835_PUD_UP
+                                            BCM2835_PUD_UP>;
+                       };
+                       emmc_gpio48: emmc_gpio48 {
+                               brcm,pins = <48 49 50 51 52 53>;
+                               brcm,function = <BCM2835_FSEL_ALT3>;
+                       };
+
+                       gpclk0_gpio4: gpclk0_gpio4 {
+                               brcm,pins = <4>;
+                               brcm,function = <BCM2835_FSEL_ALT0>;
+                       };
+                       gpclk1_gpio5: gpclk1_gpio5 {
+                               brcm,pins = <5>;
+                               brcm,function = <BCM2835_FSEL_ALT0>;
+                       };
+                       gpclk1_gpio42: gpclk1_gpio42 {
+                               brcm,pins = <42>;
+                               brcm,function = <BCM2835_FSEL_ALT0>;
+                       };
+                       gpclk1_gpio44: gpclk1_gpio44 {
+                               brcm,pins = <44>;
+                               brcm,function = <BCM2835_FSEL_ALT0>;
+                       };
+                       gpclk2_gpio6: gpclk2_gpio6 {
+                               brcm,pins = <6>;
+                               brcm,function = <BCM2835_FSEL_ALT0>;
+                       };
+                       gpclk2_gpio43: gpclk2_gpio43 {
+                               brcm,pins = <43>;
+                               brcm,function = <BCM2835_FSEL_ALT0>;
+                       };
+
+                       i2c0_gpio0: i2c0_gpio0 {
+                               brcm,pins = <0 1>;
+                               brcm,function = <BCM2835_FSEL_ALT0>;
+                       };
+                       i2c0_gpio28: i2c0_gpio28 {
+                               brcm,pins = <28 29>;
+                               brcm,function = <BCM2835_FSEL_ALT0>;
+                       };
+                       i2c0_gpio44: i2c0_gpio44 {
+                               brcm,pins = <44 45>;
+                               brcm,function = <BCM2835_FSEL_ALT1>;
+                       };
+                       i2c1_gpio2: i2c1_gpio2 {
+                               brcm,pins = <2 3>;
+                               brcm,function = <BCM2835_FSEL_ALT0>;
+                       };
+                       i2c1_gpio44: i2c1_gpio44 {
+                               brcm,pins = <44 45>;
+                               brcm,function = <BCM2835_FSEL_ALT2>;
+                       };
+                       i2c_slave_gpio18: i2c_slave_gpio18 {
+                               brcm,pins = <18 19 20 21>;
+                               brcm,function = <BCM2835_FSEL_ALT3>;
+                       };
+
+                       jtag_gpio4: jtag_gpio4 {
+                               brcm,pins = <4 5 6 12 13>;
+                               brcm,function = <BCM2835_FSEL_ALT4>;
+                       };
+                       jtag_gpio22: jtag_gpio22 {
+                               brcm,pins = <22 23 24 25 26 27>;
+                               brcm,function = <BCM2835_FSEL_ALT4>;
+                       };
+
+                       pcm_gpio18: pcm_gpio18 {
+                               brcm,pins = <18 19 20 21>;
+                               brcm,function = <BCM2835_FSEL_ALT0>;
+                       };
+                       pcm_gpio28: pcm_gpio28 {
+                               brcm,pins = <28 29 30 31>;
+                               brcm,function = <BCM2835_FSEL_ALT2>;
+                       };
+
+                       pwm0_gpio12: pwm0_gpio12 {
+                               brcm,pins = <12>;
+                               brcm,function = <BCM2835_FSEL_ALT0>;
+                       };
+                       pwm0_gpio18: pwm0_gpio18 {
+                               brcm,pins = <18>;
+                               brcm,function = <BCM2835_FSEL_ALT5>;
+                       };
+                       pwm0_gpio40: pwm0_gpio40 {
+                               brcm,pins = <40>;
+                               brcm,function = <BCM2835_FSEL_ALT0>;
+                       };
+                       pwm1_gpio13: pwm1_gpio13 {
+                               brcm,pins = <13>;
+                               brcm,function = <BCM2835_FSEL_ALT0>;
+                       };
+                       pwm1_gpio19: pwm1_gpio19 {
+                               brcm,pins = <19>;
+                               brcm,function = <BCM2835_FSEL_ALT5>;
+                       };
+                       pwm1_gpio41: pwm1_gpio41 {
+                               brcm,pins = <41>;
+                               brcm,function = <BCM2835_FSEL_ALT0>;
+                       };
+                       pwm1_gpio45: pwm1_gpio45 {
+                               brcm,pins = <45>;
+                               brcm,function = <BCM2835_FSEL_ALT0>;
+                       };
+
+                       sdhost_gpio48: sdhost_gpio48 {
+                               brcm,pins = <48 49 50 51 52 53>;
+                               brcm,function = <BCM2835_FSEL_ALT0>;
+                       };
+
+                       spi0_gpio7: spi0_gpio7 {
+                               brcm,pins = <7 8 9 10 11>;
+                               brcm,function = <BCM2835_FSEL_ALT0>;
+                       };
+                       spi0_gpio35: spi0_gpio35 {
+                               brcm,pins = <35 36 37 38 39>;
+                               brcm,function = <BCM2835_FSEL_ALT0>;
+                       };
+                       spi1_gpio16: spi1_gpio16 {
+                               brcm,pins = <16 17 18 19 20 21>;
+                               brcm,function = <BCM2835_FSEL_ALT4>;
+                       };
+                       spi2_gpio40: spi2_gpio40 {
+                               brcm,pins = <40 41 42 43 44 45>;
+                               brcm,function = <BCM2835_FSEL_ALT4>;
+                       };
+
+                       uart0_gpio14: uart0_gpio14 {
+                               brcm,pins = <14 15>;
+                               brcm,function = <BCM2835_FSEL_ALT0>;
+                       };
+                       /* Separate from the uart0_gpio14 group
+                        * because it conflicts with spi1_gpio16, and
+                        * people often run uart0 on the two pins
+                        * without flow control.
+                        */
+                       uart0_ctsrts_gpio16: uart0_ctsrts_gpio16 {
+                               brcm,pins = <16 17>;
+                               brcm,function = <BCM2835_FSEL_ALT3>;
+                       };
+                       uart0_ctsrts_gpio30: uart0_ctsrts_gpio30 {
+                               brcm,pins = <30 31>;
+                               brcm,function = <BCM2835_FSEL_ALT3>;
+                       };
+                       uart0_gpio32: uart0_gpio32 {
+                               brcm,pins = <32 33>;
+                               brcm,function = <BCM2835_FSEL_ALT3>;
+                       };
+                       uart0_gpio36: uart0_gpio36 {
+                               brcm,pins = <36 37>;
+                               brcm,function = <BCM2835_FSEL_ALT2>;
+                       };
+                       uart0_ctsrts_gpio38: uart0_ctsrts_gpio38 {
+                               brcm,pins = <38 39>;
+                               brcm,function = <BCM2835_FSEL_ALT2>;
+                       };
+
+                       uart1_gpio14: uart1_gpio14 {
+                               brcm,pins = <14 15>;
+                               brcm,function = <BCM2835_FSEL_ALT5>;
+                       };
+                       uart1_ctsrts_gpio16: uart1_ctsrts_gpio16 {
+                               brcm,pins = <16 17>;
+                               brcm,function = <BCM2835_FSEL_ALT5>;
+                       };
+                       uart1_gpio32: uart1_gpio32 {
+                               brcm,pins = <32 33>;
+                               brcm,function = <BCM2835_FSEL_ALT5>;
+                       };
+                       uart1_ctsrts_gpio30: uart1_ctsrts_gpio30 {
+                               brcm,pins = <30 31>;
+                               brcm,function = <BCM2835_FSEL_ALT5>;
+                       };
+                       uart1_gpio40: uart1_gpio40 {
+                               brcm,pins = <40 41>;
+                               brcm,function = <BCM2835_FSEL_ALT5>;
+                       };
+                       uart1_ctsrts_gpio42: uart1_ctsrts_gpio42 {
+                               brcm,pins = <42 43>;
+                               brcm,function = <BCM2835_FSEL_ALT5>;
+                       };
                };
 
                uart0: serial@7e201000 {
                        arm,primecell-periphid = <0x00241011>;
                };
 
+               sdhost: mmc@7e202000 {
+                       compatible = "brcm,bcm2835-sdhost";
+                       reg = <0x7e202000 0x100>;
+                       interrupts = <2 24>;
+                       clocks = <&clocks BCM2835_CLOCK_VPU>;
+                       dmas = <&dma 13>;
+                       dma-names = "rx-tx";
+                       status = "disabled";
+               };
+
                i2s: i2s@7e203000 {
                        compatible = "brcm,bcm2835-i2s";
                        reg = <0x7e203000 0x20>,
                        interrupts = <2 14>; /* pwa1 */
                };
 
+               dsi0: dsi@7e209000 {
+                       compatible = "brcm,bcm2835-dsi0";
+                       reg = <0x7e209000 0x78>;
+                       interrupts = <2 4>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #clock-cells = <1>;
+
+                       clocks = <&clocks BCM2835_PLLA_DSI0>,
+                                <&clocks BCM2835_CLOCK_DSI0E>,
+                                <&clocks BCM2835_CLOCK_DSI0P>;
+                       clock-names = "phy", "escape", "pixel";
+
+                       clock-output-names = "dsi0_byte",
+                                            "dsi0_ddr2",
+                                            "dsi0_ddr";
+
+               };
+
+               thermal: thermal@7e212000 {
+                       compatible = "brcm,bcm2835-thermal";
+                       reg = <0x7e212000 0x8>;
+                       clocks = <&clocks BCM2835_CLOCK_TSENS>;
+                       #thermal-sensor-cells = <0>;
+                       status = "disabled";
+               };
+
                aux: aux@0x7e215000 {
                        compatible = "brcm,bcm2835-aux";
                        #clock-cells = <1>;
                        interrupts = <2 1>;
                };
 
+               dsi1: dsi@7e700000 {
+                       compatible = "brcm,bcm2835-dsi1";
+                       reg = <0x7e700000 0x8c>;
+                       interrupts = <2 12>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #clock-cells = <1>;
+
+                       clocks = <&clocks BCM2835_PLLD_DSI1>,
+                                <&clocks BCM2835_CLOCK_DSI1E>,
+                                <&clocks BCM2835_CLOCK_DSI1P>;
+                       clock-names = "phy", "escape", "pixel";
+
+                       clock-output-names = "dsi1_byte",
+                                            "dsi1_ddr2",
+                                            "dsi1_ddr";
+
+                       status = "disabled";
+               };
+
                i2c1: i2c@7e804000 {
                        compatible = "brcm,bcm2835-i2c";
                        reg = <0x7e804000 0x1000>;
                        status = "disabled";
                };
 
+               vec: vec@7e806000 {
+                       compatible = "brcm,bcm2835-vec";
+                       reg = <0x7e806000 0x1000>;
+                       clocks = <&clocks BCM2835_CLOCK_VEC>;
+                       interrupts = <2 27>;
+                       status = "disabled";
+               };
+
                pixelvalve@7e807000 {
                        compatible = "brcm,bcm2835-pixelvalve2";
                        reg = <0x7e807000 0x100>;
                        clocks = <&clocks BCM2835_PLLH_PIX>,
                                 <&clocks BCM2835_CLOCK_HSM>;
                        clock-names = "pixel", "hdmi";
+                       dmas = <&dma 17>;
+                       dma-names = "audio-rx";
                        status = "disabled";
                };
 
                        interrupts = <1 9>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&clk_usb>;
+                       clock-names = "otg";
+                       phys = <&usbphy>;
+                       phy-names = "usb2-phy";
                };
 
                v3d: v3d@7ec00000 {
                        clock-frequency = <19200000>;
                };
 
+               clk_usb: clock@4 {
+                       compatible = "fixed-clock";
+                       reg = <4>;
+                       #clock-cells = <0>;
+                       clock-output-names = "otg";
+                       clock-frequency = <480000000>;
+               };
+       };
+
+       usbphy: phy {
+               compatible = "usb-nop-xceiv";
        };
 };
 
index 360e00cefd35679b49890234b5c369fb52b89e20..a0c812b0fa391d149b4f546db39bdc4bef207960 100644 (file)
@@ -64,3 +64,5 @@
 #define BCM2835_CLOCK_CAM1             46
 #define BCM2835_CLOCK_DSI0E            47
 #define BCM2835_CLOCK_DSI1E            48
+#define BCM2835_CLOCK_DSI0P            49
+#define BCM2835_CLOCK_DSI1P            50
index 6f0bc37af39ca64a51258a0673b6c981fec7d110..e4e4fdf5d38fbef0dfdcff1ca2e288507f252677 100644 (file)
@@ -24,4 +24,9 @@
 #define BCM2835_FSEL_ALT2      6
 #define BCM2835_FSEL_ALT3      7
 
+/* brcm,pull property */
+#define BCM2835_PUD_OFF                0
+#define BCM2835_PUD_DOWN       1
+#define BCM2835_PUD_UP         2
+
 #endif /* __DT_BINDINGS_PINCTRL_BCM2835_H__ */