- fix complation error for CONFIG_USB

- update RPi3 DTBs to v5.1-rc6 state
 - add defconfig for RPi3 B+
 - Fix BCM2835_MBOX_TAG_TEST_PIXEL_ORDER define
 -----BEGIN PGP SIGNATURE-----
 
 iQJGBAABCAAwFiEEiUuSfQSYnG8EMsBltDliWyzx00MFAl0A9VQSHG1icnVnZ2Vy
 QHN1c2UuY29tAAoJELQ5Ylss8dNDyY8P/AsPYLpXkARV1UPaEr9m89uCnrXa0Ggm
 PBFiNUUmM/xRB6J9IQe1YnMio+azVvcpc1AkOTLG7ypgFxAiukfzDS1mnaQye8Mg
 Exq3GgrDZrLp1jXYXSf3EZgIbJhpejHf433frNoJkveq6GTPJpI0mpMsaDVkzy/Q
 jVKm4bLolyXkERIUcOvvhyTwyUJhJv7n6n3+yBMgfssZexhSCzf9nXI7Ds98mxaN
 UNrF6oqvKeICJpvGpfJ+sO4lzaWk/Uc5TEzJ9QnUn0bEePLjJY35H1C5Wmhfo4/L
 KHPGwFTVNvi2byXmht6UK+OWdp1D7NWF+il2dhJUm3kaURkYBVdKAmFd9SpevRX6
 SCsM5spkLeciVIc4keTgZI7yRcvkIq7qul9eCTQnviO/I3h1YykHMgWZjNDkY8ZG
 HhKSKRjpdT+BHq4mWca1Q29cpWwshgC01Vq8Pig/4EOoOSWJ79Y+Qm+xeOwDf2ph
 fRKP40Ves+ER/z+2tAAmj/wuKqD1B8UTIZ4i69lAUei5aSvTwpf1saEV3gIjoaqj
 5fhoCKamsQhXnv0DjYMliXHYZ78EZzZyh6Fr9LHFnlc861IrRawqTPjRuerdjGwd
 jrp/vhwv5regzfDmWGSVo1CCscWvXgf3Tfag2Uwc+u5lXOSgJd8XPZJFiRMGFBon
 fJN1lxjxLRQf
 =0ulJ
 -----END PGP SIGNATURE-----

Merge tag 'rpi-next-2019.07' of https://github.com/mbgg/u-boot

- fix complation error for CONFIG_USB
- update RPi3 DTBs to v5.1-rc6 state
- add defconfig for RPi3 B+
- Fix BCM2835_MBOX_TAG_TEST_PIXEL_ORDER define
This commit is contained in:
Tom Rini 2019-07-05 18:19:47 -04:00
commit 54869e0811
33 changed files with 1365 additions and 106 deletions

View file

@ -737,14 +737,19 @@ dtb-$(CONFIG_TARGET_VINCO) += \
at91-vinco.dtb at91-vinco.dtb
dtb-$(CONFIG_ARCH_BCM283X) += \ dtb-$(CONFIG_ARCH_BCM283X) += \
bcm2835-rpi-a-plus.dtb \
bcm2835-rpi-a.dtb \ bcm2835-rpi-a.dtb \
bcm2835-rpi-a-plus.dtb \
bcm2835-rpi-b.dtb \
bcm2835-rpi-b-plus.dtb \ bcm2835-rpi-b-plus.dtb \
bcm2835-rpi-b-rev2.dtb \ bcm2835-rpi-b-rev2.dtb \
bcm2835-rpi-b.dtb \ bcm2835-rpi-cm1-io1.dtb \
bcm2835-rpi-zero-w.dtb \ bcm2835-rpi-zero.dtb \
bcm2835-rpi-zero-w.dtb\
bcm2836-rpi-2-b.dtb \ bcm2836-rpi-2-b.dtb \
bcm2837-rpi-3-b.dtb bcm2837-rpi-3-a-plus.dtb \
bcm2837-rpi-3-b.dtb \
bcm2837-rpi-3-b-plus.dtb \
bcm2837-rpi-cm3-io3.dtb
dtb-$(CONFIG_ARCH_BCM63158) += \ dtb-$(CONFIG_ARCH_BCM63158) += \
bcm963158.dtb bcm963158.dtb

View file

@ -1,3 +1,4 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/; /dts-v1/;
#include "bcm2835.dtsi" #include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi" #include "bcm2835-rpi.dtsi"
@ -9,12 +10,12 @@
leds { leds {
act { act {
gpios = <&gpio 47 0>; gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
}; };
pwr { pwr {
label = "PWR"; label = "PWR";
gpios = <&gpio 35 0>; gpios = <&gpio 35 GPIO_ACTIVE_HIGH>;
default-state = "keep"; default-state = "keep";
linux,default-trigger = "default-on"; linux,default-trigger = "default-on";
}; };
@ -30,8 +31,8 @@
* "FOO" = GPIO line named "FOO" on the schematic * "FOO" = GPIO line named "FOO" on the schematic
* "FOO_N" = GPIO line named "FOO" on schematic, active low * "FOO_N" = GPIO line named "FOO" on schematic, active low
*/ */
gpio-line-names = "SDA0", gpio-line-names = "ID_SDA",
"SCL0", "ID_SCL",
"SDA1", "SDA1",
"SCL1", "SCL1",
"GPIO_GCLK", "GPIO_GCLK",
@ -100,6 +101,12 @@
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
}; };
&pwm {
pinctrl-names = "default";
pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
status = "okay";
};
&uart0 { &uart0 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio14>; pinctrl-0 = <&uart0_gpio14>;

View file

@ -1,3 +1,4 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/; /dts-v1/;
#include "bcm2835.dtsi" #include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi" #include "bcm2835-rpi.dtsi"
@ -9,7 +10,7 @@
leds { leds {
act { act {
gpios = <&gpio 16 1>; gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
}; };
}; };
}; };
@ -95,6 +96,12 @@
hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
}; };
&pwm {
pinctrl-names = "default";
pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
status = "okay";
};
&uart0 { &uart0 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio14>; pinctrl-0 = <&uart0_gpio14>;

View file

@ -1,3 +1,4 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/; /dts-v1/;
#include "bcm2835.dtsi" #include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi" #include "bcm2835-rpi.dtsi"
@ -10,12 +11,12 @@
leds { leds {
act { act {
gpios = <&gpio 47 0>; gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
}; };
pwr { pwr {
label = "PWR"; label = "PWR";
gpios = <&gpio 35 0>; gpios = <&gpio 35 GPIO_ACTIVE_HIGH>;
default-state = "keep"; default-state = "keep";
linux,default-trigger = "default-on"; linux,default-trigger = "default-on";
}; };
@ -32,8 +33,8 @@
* "FOO" = GPIO line named "FOO" on the schematic * "FOO" = GPIO line named "FOO" on the schematic
* "FOO_N" = GPIO line named "FOO" on schematic, active low * "FOO_N" = GPIO line named "FOO" on schematic, active low
*/ */
gpio-line-names = "SDA0", gpio-line-names = "ID_SDA",
"SCL0", "ID_SCL",
"SDA1", "SDA1",
"SCL1", "SCL1",
"GPIO_GCLK", "GPIO_GCLK",
@ -102,6 +103,12 @@
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
}; };
&pwm {
pinctrl-names = "default";
pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
status = "okay";
};
&uart0 { &uart0 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio14>; pinctrl-0 = <&uart0_gpio14>;

View file

@ -1,3 +1,4 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/; /dts-v1/;
#include "bcm2835.dtsi" #include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi" #include "bcm2835-rpi.dtsi"
@ -10,7 +11,7 @@
leds { leds {
act { act {
gpios = <&gpio 16 1>; gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
}; };
}; };
}; };
@ -92,7 +93,13 @@
}; };
&hdmi { &hdmi {
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
};
&pwm {
pinctrl-names = "default";
pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
status = "okay";
}; };
&uart0 { &uart0 {

View file

@ -1,3 +1,4 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/; /dts-v1/;
#include "bcm2835.dtsi" #include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi" #include "bcm2835-rpi.dtsi"
@ -10,7 +11,7 @@
leds { leds {
act { act {
gpios = <&gpio 16 1>; gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
}; };
}; };
}; };
@ -90,6 +91,12 @@
hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
}; };
&pwm {
pinctrl-names = "default";
pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
status = "okay";
};
&uart0 { &uart0 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio14>; pinctrl-0 = <&uart0_gpio14>;

View file

@ -0,0 +1,88 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include "bcm2835-rpi-cm1.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
/ {
compatible = "raspberrypi,compute-module", "brcm,bcm2835";
model = "Raspberry Pi Compute Module IO board rev1";
};
&gpio {
/*
* This is based on the official GPU firmware DT blob.
*
* 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 = "GPIO0",
"GPIO1",
"GPIO2",
"GPIO3",
"GPIO4",
"GPIO5",
"GPIO6",
"GPIO7",
"GPIO8",
"GPIO9",
"GPIO10",
"GPIO11",
"GPIO12",
"GPIO13",
"GPIO14",
"GPIO15",
"GPIO16",
"GPIO17",
"GPIO18",
"GPIO19",
"GPIO20",
"GPIO21",
"GPIO22",
"GPIO23",
"GPIO24",
"GPIO25",
"GPIO26",
"GPIO27",
"GPIO28",
"GPIO29",
"GPIO30",
"GPIO31",
"GPIO32",
"GPIO33",
"GPIO34",
"GPIO35",
"GPIO36",
"GPIO37",
"GPIO38",
"GPIO39",
"GPIO40",
"GPIO41",
"GPIO42",
"GPIO43",
"GPIO44",
"GPIO45",
"HDMI_HPD_N",
/* Also used as ACT LED */
"EMMC_EN_N",
/* Used by eMMC */
"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_LOW>;
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio14>;
status = "okay";
};

View file

@ -0,0 +1,34 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
/ {
leds {
act {
gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
};
};
reg_3v3: fixed-regulator {
compatible = "regulator-fixed";
regulator-name = "3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
reg_1v8: fixed-regulator {
compatible = "regulator-fixed";
regulator-name = "1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
};
&sdhost {
non-removable;
vmmc-supply = <&reg_3v3>;
vqmmc-supply = <&reg_1v8>;
};

View file

@ -1,18 +1,131 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (C) 2017 Stefan Wahren <stefan.wahren@i2se.com>
*/
/dts-v1/; /dts-v1/;
#include "bcm2835.dtsi" #include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi" #include "bcm2835-rpi.dtsi"
#include "bcm283x-rpi-smsc9512.dtsi" #include "bcm283x-rpi-usb-otg.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
/ { / {
compatible = "raspberrypi,model-zero-w", "brcm,bcm2835"; compatible = "raspberrypi,model-zero-w", "brcm,bcm2835";
model = "Raspberry Pi Zero W"; model = "Raspberry Pi Zero W";
chosen {
/* 8250 auxiliary UART instead of pl011 */
stdout-path = "serial1:115200n8";
};
leds { leds {
act { act {
gpios = <&gpio 47 0>; gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
}; };
}; };
wifi_pwrseq: wifi-pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
};
};
&gpio {
/*
* This is based on the official GPU firmware DT blob.
*
* 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 = "ID_SDA",
"ID_SCL",
"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 */
"NC", /* GPIO32 */
"NC", /* GPIO33 */
"NC", /* GPIO34 */
"NC", /* GPIO35 */
"NC", /* GPIO36 */
"NC", /* GPIO37 */
"NC", /* GPIO38 */
"NC", /* GPIO39 */
"CAM_GPIO1", /* GPIO40 */
"WL_ON", /* GPIO41 */
"NC", /* GPIO42 */
"WIFI_CLK", /* GPIO43 */
"CAM_GPIO0", /* GPIO44 */
"BT_ON", /* GPIO45 */
"HDMI_HPD_N",
"STATUS_LED_N",
/* 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_LOW>;
};
&sdhci {
#address-cells = <1>;
#size-cells = <0>;
pinctrl-0 = <&emmc_gpio34 &gpclk2_gpio43>;
mmc-pwrseq = <&wifi_pwrseq>;
non-removable;
status = "okay";
brcmf: wifi@1 {
reg = <1>;
compatible = "brcm,bcm4329-fmac";
};
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio32 &uart0_ctsrts_gpio30>;
status = "okay";
bluetooth {
compatible = "brcm,bcm43438-bt";
max-speed = <2000000>;
shutdown-gpios = <&gpio 45 GPIO_ACTIVE_HIGH>;
};
}; };
&uart1 { &uart1 {
@ -20,7 +133,3 @@
pinctrl-0 = <&uart1_gpio14>; pinctrl-0 = <&uart1_gpio14>;
status = "okay"; status = "okay";
}; };
&hdmi {
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
};

View file

@ -0,0 +1,105 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (C) 2016 Stefan Wahren <stefan.wahren@i2se.com>
*/
/dts-v1/;
#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
#include "bcm283x-rpi-usb-otg.dtsi"
/ {
compatible = "raspberrypi,model-zero", "brcm,bcm2835";
model = "Raspberry Pi Zero";
leds {
act {
gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
};
};
};
&gpio {
/*
* This is based on the official GPU firmware DT blob.
*
* 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 = "ID_SDA",
"ID_SCL",
"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 */
"NC", /* GPIO35 */
"NC", /* GPIO36 */
"NC", /* GPIO37 */
"NC", /* GPIO38 */
"NC", /* GPIO39 */
"NC", /* GPIO40 */
"CAM_GPIO0", /* GPIO41 */
"NC", /* GPIO42 */
"NC", /* GPIO43 */
"NC", /* GPIO44 */
"NC", /* GPIO45 */
"HDMI_HPD_N",
"STATUS_LED_N",
/* 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 {
brcm,pins = <18 19 20 21>;
brcm,function = <BCM2835_FSEL_ALT0>;
};
};
&hdmi {
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio14>;
status = "okay";
};

View file

@ -1,7 +1,7 @@
#include <dt-bindings/power/raspberrypi-power.h> #include <dt-bindings/power/raspberrypi-power.h>
/ { / {
memory { memory@0 {
device_type = "memory"; device_type = "memory";
reg = <0 0x10000000>; reg = <0 0x10000000>;
}; };
@ -18,7 +18,7 @@
soc { soc {
firmware: firmware { firmware: firmware {
compatible = "raspberrypi,bcm2835-firmware"; compatible = "raspberrypi,bcm2835-firmware", "simple-bus";
mboxes = <&mailbox>; mboxes = <&mailbox>;
}; };
@ -27,6 +27,12 @@
firmware = <&firmware>; firmware = <&firmware>;
#power-domain-cells = <1>; #power-domain-cells = <1>;
}; };
vchiq: mailbox@7e00b840 {
compatible = "brcm,bcm2835-vchiq";
reg = <0x7e00b840 0x3c>;
interrupts = <0 2>;
};
}; };
}; };
@ -65,30 +71,20 @@
&sdhci { &sdhci {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&emmc_gpio48>; pinctrl-0 = <&emmc_gpio48>;
status = "okay";
bus-width = <4>; bus-width = <4>;
}; };
&sdhost { &sdhost {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&sdhost_gpio48>; pinctrl-0 = <&sdhost_gpio48>;
bus-width = <4>;
};
&pwm {
pinctrl-names = "default";
pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
status = "okay"; status = "okay";
bus-width = <4>;
}; };
&usb { &usb {
power-domains = <&power RPI_POWER_DOMAIN_USB>; power-domains = <&power RPI_POWER_DOMAIN_USB>;
}; };
&v3d {
power-domains = <&power RPI_POWER_DOMAIN_V3D>;
};
&hdmi { &hdmi {
power-domains = <&power RPI_POWER_DOMAIN_HDMI>; power-domains = <&power RPI_POWER_DOMAIN_HDMI>;
status = "okay"; status = "okay";

View file

@ -1,3 +1,4 @@
// SPDX-License-Identifier: GPL-2.0
#include "bcm283x.dtsi" #include "bcm283x.dtsi"
/ { / {
@ -17,11 +18,11 @@
soc { soc {
ranges = <0x7e000000 0x20000000 0x02000000>; ranges = <0x7e000000 0x20000000 0x02000000>;
dma-ranges = <0x40000000 0x00000000 0x20000000>; dma-ranges = <0x40000000 0x00000000 0x20000000>;
};
arm-pmu { arm-pmu {
compatible = "arm,arm1176-pmu"; compatible = "arm,arm1176-pmu";
}; };
};
}; };
&cpu_thermal { &cpu_thermal {

View file

@ -1,6 +1,7 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/; /dts-v1/;
#include "bcm2836.dtsi" #include "bcm2836.dtsi"
#include "bcm2835-rpi.dtsi" #include "bcm2836-rpi.dtsi"
#include "bcm283x-rpi-smsc9514.dtsi" #include "bcm283x-rpi-smsc9514.dtsi"
#include "bcm283x-rpi-usb-host.dtsi" #include "bcm283x-rpi-usb-host.dtsi"
@ -8,18 +9,18 @@
compatible = "raspberrypi,2-model-b", "brcm,bcm2836"; compatible = "raspberrypi,2-model-b", "brcm,bcm2836";
model = "Raspberry Pi 2 Model B"; model = "Raspberry Pi 2 Model B";
memory { memory@0 {
reg = <0 0x40000000>; reg = <0 0x40000000>;
}; };
leds { leds {
act { act {
gpios = <&gpio 47 0>; gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
}; };
pwr { pwr {
label = "PWR"; label = "PWR";
gpios = <&gpio 35 0>; gpios = <&gpio 35 GPIO_ACTIVE_HIGH>;
default-state = "keep"; default-state = "keep";
linux,default-trigger = "default-on"; linux,default-trigger = "default-on";
}; };
@ -27,6 +28,72 @@
}; };
&gpio { &gpio {
/*
* Taken from rpi_SCH_2b_1p2_reduced.pdf and
* the official GPU firmware DT blob.
*
* 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 = "ID_SDA",
"ID_SCL",
"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",
"", /* GPIO30 */
"LAN_RUN",
"CAM_GPIO1",
"", /* GPIO33 */
"", /* GPIO34 */
"PWR_LOW_N",
"", /* GPIO36 */
"", /* GPIO37 */
"USB_LIMIT",
"", /* GPIO39 */
"PWM0_OUT",
"CAM_GPIO0",
"SMPS_SCL",
"SMPS_SDA",
"ETHCLK",
"PWM1_OUT",
"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>; pinctrl-0 = <&gpioout &alt0 &i2s_alt0>;
/* I2S interface */ /* I2S interface */
@ -40,6 +107,12 @@
hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
}; };
&pwm {
pinctrl-names = "default";
pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
status = "okay";
};
&uart0 { &uart0 {
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio14>; pinctrl-0 = <&uart0_gpio14>;

View file

@ -0,0 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
#include "bcm2835-rpi.dtsi"
&vchiq {
compatible = "brcm,bcm2836-vchiq", "brcm,bcm2835-vchiq";
};

View file

@ -1,3 +1,4 @@
// SPDX-License-Identifier: GPL-2.0
#include "bcm283x.dtsi" #include "bcm283x.dtsi"
/ { / {
@ -8,28 +9,28 @@
<0x40000000 0x40000000 0x00001000>; <0x40000000 0x40000000 0x00001000>;
dma-ranges = <0xc0000000 0x00000000 0x3f000000>; dma-ranges = <0xc0000000 0x00000000 0x3f000000>;
local_intc: local_intc { local_intc: local_intc@40000000 {
compatible = "brcm,bcm2836-l1-intc"; compatible = "brcm,bcm2836-l1-intc";
reg = <0x40000000 0x100>; reg = <0x40000000 0x100>;
interrupt-controller; interrupt-controller;
#interrupt-cells = <1>; #interrupt-cells = <2>;
interrupt-parent = <&local_intc>; interrupt-parent = <&local_intc>;
}; };
};
arm-pmu { arm-pmu {
compatible = "arm,cortex-a7-pmu"; compatible = "arm,cortex-a7-pmu";
interrupt-parent = <&local_intc>; interrupt-parent = <&local_intc>;
interrupts = <9>; interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;
};
}; };
timer { timer {
compatible = "arm,armv7-timer"; compatible = "arm,armv7-timer";
interrupt-parent = <&local_intc>; interrupt-parent = <&local_intc>;
interrupts = <0>, // PHYS_SECURE_PPI interrupts = <0 IRQ_TYPE_LEVEL_HIGH>, // PHYS_SECURE_PPI
<1>, // PHYS_NONSECURE_PPI <1 IRQ_TYPE_LEVEL_HIGH>, // PHYS_NONSECURE_PPI
<3>, // VIRT_PPI <3 IRQ_TYPE_LEVEL_HIGH>, // VIRT_PPI
<2>; // HYP_PPI <2 IRQ_TYPE_LEVEL_HIGH>; // HYP_PPI
always-on; always-on;
}; };
@ -75,7 +76,7 @@
compatible = "brcm,bcm2836-armctrl-ic"; compatible = "brcm,bcm2836-armctrl-ic";
reg = <0x7e00b200 0x200>; reg = <0x7e00b200 0x200>;
interrupt-parent = <&local_intc>; interrupt-parent = <&local_intc>;
interrupts = <8>; interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
}; };
&cpu_thermal { &cpu_thermal {

View file

@ -0,0 +1,175 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include "bcm2837.dtsi"
#include "bcm2836-rpi.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
/ {
compatible = "raspberrypi,3-model-a-plus", "brcm,bcm2837";
model = "Raspberry Pi 3 Model A+";
chosen {
/* 8250 auxiliary UART instead of pl011 */
stdout-path = "serial1:115200n8";
};
memory@0 {
reg = <0 0x20000000>;
};
leds {
act {
gpios = <&gpio 29 GPIO_ACTIVE_HIGH>;
};
pwr {
label = "PWR";
gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
};
};
};
&firmware {
expgpio: gpio {
compatible = "raspberrypi,firmware-gpio";
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "",
"BT_WL_ON",
"STATUS_LED_R",
"",
"",
"CAM_GPIO0",
"CAM_GPIO1",
"";
status = "okay";
};
};
&gpio {
/*
* This is mostly based on the official GPU firmware DT blob.
*
* 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 = "ID_SDA",
"ID_SCL",
"SDA1",
"SCL1",
"GPIO_GCLK",
"GPIO5",
"GPIO6",
"SPI_CE1_N",
"SPI_CE0_N",
"SPI_MISO",
"SPI_MOSI",
"SPI_SCLK",
"GPIO12",
"GPIO13",
/* Serial port */
"TXD1",
"RXD1",
"GPIO16",
"GPIO17",
"GPIO18",
"GPIO19",
"GPIO20",
"GPIO21",
"GPIO22",
"GPIO23",
"GPIO24",
"GPIO25",
"GPIO26",
"GPIO27",
"HDMI_HPD_N",
"STATUS_LED_G",
/* Used by BT module */
"CTS0",
"RTS0",
"TXD0",
"RXD0",
/* Used by Wifi */
"SD1_CLK",
"SD1_CMD",
"SD1_DATA0",
"SD1_DATA1",
"SD1_DATA2",
"SD1_DATA3",
"PWM0_OUT",
"PWM1_OUT",
"", /* GPIO42 */
"WIFI_CLK",
"SDA0",
"SCL0",
"SMPS_SCL",
"SMPS_SDA",
/* Used by SD Card */
"SD_CLK_R",
"SD_CMD_R",
"SD_DATA0_R",
"SD_DATA1_R",
"SD_DATA2_R",
"SD_DATA3_R";
};
&hdmi {
hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
};
&pwm {
pinctrl-names = "default";
pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>;
status = "okay";
};
/*
* SDHCI is used to control the SDIO for wireless
*
* WL_REG_ON and BT_REG_ON of the CYW43455 Wifi/BT module are driven
* by a single GPIO. We can't give GPIO control to one of the drivers,
* otherwise the other part would get unexpectedly disturbed.
*/
&sdhci {
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&emmc_gpio34>;
status = "okay";
bus-width = <4>;
non-removable;
brcmf: wifi@1 {
reg = <1>;
compatible = "brcm,bcm4329-fmac";
};
};
/* SDHOST is used to drive the SD card */
&sdhost {
pinctrl-names = "default";
pinctrl-0 = <&sdhost_gpio48>;
status = "okay";
bus-width = <4>;
};
/* uart0 communicates with the BT module */
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32 &gpclk2_gpio43>;
status = "okay";
bluetooth {
compatible = "brcm,bcm43438-bt";
max-speed = <2000000>;
};
};
/* uart1 is mapped to the pin header */
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&uart1_gpio14>;
status = "okay";
};

View file

@ -0,0 +1,178 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include "bcm2837.dtsi"
#include "bcm2836-rpi.dtsi"
#include "bcm283x-rpi-lan7515.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
/ {
compatible = "raspberrypi,3-model-b-plus", "brcm,bcm2837";
model = "Raspberry Pi 3 Model B+";
chosen {
/* 8250 auxiliary UART instead of pl011 */
stdout-path = "serial1:115200n8";
};
memory@0 {
reg = <0 0x40000000>;
};
leds {
act {
gpios = <&gpio 29 GPIO_ACTIVE_HIGH>;
};
pwr {
label = "PWR";
gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
};
};
wifi_pwrseq: wifi-pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
};
};
&firmware {
expgpio: gpio {
compatible = "raspberrypi,firmware-gpio";
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "BT_ON",
"WL_ON",
"STATUS_LED_R",
"LAN_RUN",
"",
"CAM_GPIO0",
"CAM_GPIO1",
"";
status = "okay";
};
};
&gpio {
/*
* Taken from rpi_SCH_3bplus_1p0_reduced.pdf and
* the official GPU firmware DT blob.
*
* 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 = "ID_SDA",
"ID_SCL",
"SDA1",
"SCL1",
"GPIO_GCLK",
"GPIO5",
"GPIO6",
"SPI_CE1_N",
"SPI_CE0_N",
"SPI_MISO",
"SPI_MOSI",
"SPI_SCLK",
"GPIO12",
"GPIO13",
/* Serial port */
"TXD1",
"RXD1",
"GPIO16",
"GPIO17",
"GPIO18",
"GPIO19",
"GPIO20",
"GPIO21",
"GPIO22",
"GPIO23",
"GPIO24",
"GPIO25",
"GPIO26",
"GPIO27",
"HDMI_HPD_N",
"STATUS_LED_G",
/* Used by BT module */
"CTS0",
"RTS0",
"TXD0",
"RXD0",
/* Used by Wifi */
"SD1_CLK",
"SD1_CMD",
"SD1_DATA0",
"SD1_DATA1",
"SD1_DATA2",
"SD1_DATA3",
"PWM0_OUT",
"PWM1_OUT",
"ETHCLK",
"WIFI_CLK",
"SDA0",
"SCL0",
"SMPS_SCL",
"SMPS_SDA",
/* Used by SD Card */
"SD_CLK_R",
"SD_CMD_R",
"SD_DATA0_R",
"SD_DATA1_R",
"SD_DATA2_R",
"SD_DATA3_R";
};
&hdmi {
hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
};
&pwm {
pinctrl-names = "default";
pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>;
status = "okay";
};
/* SDHCI is used to control the SDIO for wireless */
&sdhci {
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&emmc_gpio34>;
status = "okay";
bus-width = <4>;
non-removable;
mmc-pwrseq = <&wifi_pwrseq>;
brcmf: wifi@1 {
reg = <1>;
compatible = "brcm,bcm4329-fmac";
};
};
/* SDHOST is used to drive the SD card */
&sdhost {
pinctrl-names = "default";
pinctrl-0 = <&sdhost_gpio48>;
status = "okay";
bus-width = <4>;
};
/* uart0 communicates with the BT module */
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32 &gpclk2_gpio43>;
status = "okay";
bluetooth {
compatible = "brcm,bcm43438-bt";
max-speed = <2000000>;
shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
};
};
/* uart1 is mapped to the pin header */
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&uart1_gpio14>;
status = "okay";
};

View file

@ -1,6 +1,7 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/; /dts-v1/;
#include "bcm2837.dtsi" #include "bcm2837.dtsi"
#include "bcm2835-rpi.dtsi" #include "bcm2836-rpi.dtsi"
#include "bcm283x-rpi-smsc9514.dtsi" #include "bcm283x-rpi-smsc9514.dtsi"
#include "bcm283x-rpi-usb-host.dtsi" #include "bcm283x-rpi-usb-host.dtsi"
@ -8,15 +9,122 @@
compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
model = "Raspberry Pi 3 Model B"; model = "Raspberry Pi 3 Model B";
memory { chosen {
/* 8250 auxiliary UART instead of pl011 */
stdout-path = "serial1:115200n8";
};
memory@0 {
reg = <0 0x40000000>; reg = <0 0x40000000>;
}; };
leds { leds {
act { act {
gpios = <&gpio 47 0>; gpios = <&expgpio 2 GPIO_ACTIVE_HIGH>;
}; };
}; };
wifi_pwrseq: wifi-pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
};
};
&firmware {
expgpio: gpio {
compatible = "raspberrypi,firmware-gpio";
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "BT_ON",
"WL_ON",
"STATUS_LED",
"LAN_RUN",
"HDMI_HPD_N",
"CAM_GPIO0",
"CAM_GPIO1",
"PWR_LOW_N";
status = "okay";
};
};
&gpio {
/*
* Taken from rpi_SCH_3b_1p2_reduced.pdf and
* the official GPU firmware DT blob.
*
* 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 = "ID_SDA",
"ID_SCL",
"SDA1",
"SCL1",
"GPIO_GCLK",
"GPIO5",
"GPIO6",
"SPI_CE1_N",
"SPI_CE0_N",
"SPI_MISO",
"SPI_MOSI",
"SPI_SCLK",
"GPIO12",
"GPIO13",
/* Serial port */
"TXD1",
"RXD1",
"GPIO16",
"GPIO17",
"GPIO18",
"GPIO19",
"GPIO20",
"GPIO21",
"GPIO22",
"GPIO23",
"GPIO24",
"GPIO25",
"GPIO26",
"GPIO27",
"", /* GPIO 28 */
"LAN_RUN_BOOT",
/* Used by BT module */
"CTS0",
"RTS0",
"TXD0",
"RXD0",
/* Used by Wifi */
"SD1_CLK",
"SD1_CMD",
"SD1_DATA0",
"SD1_DATA1",
"SD1_DATA2",
"SD1_DATA3",
"PWM0_OUT",
"PWM1_OUT",
"ETHCLK",
"WIFI_CLK",
"SDA0",
"SCL0",
"SMPS_SCL",
"SMPS_SDA",
/* Used by SD Card */
"SD_CLK_R",
"SD_CMD_R",
"SD_DATA0_R",
"SD_DATA1_R",
"SD_DATA2_R",
"SD_DATA3_R";
};
&pwm {
pinctrl-names = "default";
pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio41>;
status = "okay";
};
&hdmi {
hpd-gpios = <&expgpio 4 GPIO_ACTIVE_LOW>;
}; };
/* uart0 communicates with the BT module */ /* uart0 communicates with the BT module */
@ -24,6 +132,12 @@
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>; pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>;
status = "okay"; status = "okay";
bluetooth {
compatible = "brcm,bcm43438-bt";
max-speed = <2000000>;
shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
};
}; };
/* uart1 is mapped to the pin header */ /* uart1 is mapped to the pin header */
@ -35,11 +149,19 @@
/* SDHCI is used to control the SDIO for wireless */ /* SDHCI is used to control the SDIO for wireless */
&sdhci { &sdhci {
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&emmc_gpio34>; pinctrl-0 = <&emmc_gpio34>;
status = "okay"; status = "okay";
bus-width = <4>; bus-width = <4>;
non-removable; non-removable;
mmc-pwrseq = <&wifi_pwrseq>;
brcmf: wifi@1 {
reg = <1>;
compatible = "brcm,bcm4329-fmac";
};
}; };
/* SDHOST is used to drive the SD card */ /* SDHOST is used to drive the SD card */

View file

@ -0,0 +1,87 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include "bcm2837-rpi-cm3.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
/ {
compatible = "raspberrypi,3-compute-module", "brcm,bcm2837";
model = "Raspberry Pi Compute Module 3 IO board V3.0";
};
&gpio {
/*
* This is based on the official GPU firmware DT blob.
*
* 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 = "GPIO0",
"GPIO1",
"GPIO2",
"GPIO3",
"GPIO4",
"GPIO5",
"GPIO6",
"GPIO7",
"GPIO8",
"GPIO9",
"GPIO10",
"GPIO11",
"GPIO12",
"GPIO13",
"GPIO14",
"GPIO15",
"GPIO16",
"GPIO17",
"GPIO18",
"GPIO19",
"GPIO20",
"GPIO21",
"GPIO22",
"GPIO23",
"GPIO24",
"GPIO25",
"GPIO26",
"GPIO27",
"GPIO28",
"GPIO29",
"GPIO30",
"GPIO31",
"GPIO32",
"GPIO33",
"GPIO34",
"GPIO35",
"GPIO36",
"GPIO37",
"GPIO38",
"GPIO39",
"GPIO40",
"GPIO41",
"GPIO42",
"GPIO43",
"GPIO44",
"GPIO45",
"GPIO46",
"GPIO47",
/* Used by eMMC */
"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 = <&expgpio 1 GPIO_ACTIVE_LOW>;
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_gpio14>;
status = "okay";
};

View file

@ -0,0 +1,52 @@
// SPDX-License-Identifier: GPL-2.0
/dts-v1/;
#include "bcm2837.dtsi"
#include "bcm2836-rpi.dtsi"
/ {
memory@0 {
reg = <0 0x40000000>;
};
reg_3v3: fixed-regulator {
compatible = "regulator-fixed";
regulator-name = "3V3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
reg_1v8: fixed-regulator {
compatible = "regulator-fixed";
regulator-name = "1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
};
&firmware {
expgpio: gpio {
compatible = "raspberrypi,firmware-gpio";
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "HDMI_HPD_N",
"EMMC_EN_N",
"NC",
"NC",
"NC",
"NC",
"NC",
"NC";
status = "okay";
};
};
&sdhost {
pinctrl-names = "default";
pinctrl-0 = <&sdhost_gpio48>;
bus-width = <4>;
vmmc-supply = <&reg_3v3>;
vqmmc-supply = <&reg_1v8>;
status = "okay";
};

View file

@ -8,22 +8,28 @@
<0x40000000 0x40000000 0x00001000>; <0x40000000 0x40000000 0x00001000>;
dma-ranges = <0xc0000000 0x00000000 0x3f000000>; dma-ranges = <0xc0000000 0x00000000 0x3f000000>;
local_intc: local_intc { local_intc: local_intc@40000000 {
compatible = "brcm,bcm2836-l1-intc"; compatible = "brcm,bcm2836-l1-intc";
reg = <0x40000000 0x100>; reg = <0x40000000 0x100>;
interrupt-controller; interrupt-controller;
#interrupt-cells = <1>; #interrupt-cells = <2>;
interrupt-parent = <&local_intc>; interrupt-parent = <&local_intc>;
}; };
}; };
arm-pmu {
compatible = "arm,cortex-a53-pmu";
interrupt-parent = <&local_intc>;
interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;
};
timer { timer {
compatible = "arm,armv7-timer"; compatible = "arm,armv7-timer";
interrupt-parent = <&local_intc>; interrupt-parent = <&local_intc>;
interrupts = <0>, // PHYS_SECURE_PPI interrupts = <0 IRQ_TYPE_LEVEL_HIGH>, // PHYS_SECURE_PPI
<1>, // PHYS_NONSECURE_PPI <1 IRQ_TYPE_LEVEL_HIGH>, // PHYS_NONSECURE_PPI
<3>, // VIRT_PPI <3 IRQ_TYPE_LEVEL_HIGH>, // VIRT_PPI
<2>; // HYP_PPI <2 IRQ_TYPE_LEVEL_HIGH>; // HYP_PPI
always-on; always-on;
}; };
@ -73,7 +79,7 @@
compatible = "brcm,bcm2836-armctrl-ic"; compatible = "brcm,bcm2836-armctrl-ic";
reg = <0x7e00b200 0x200>; reg = <0x7e00b200 0x200>;
interrupt-parent = <&local_intc>; interrupt-parent = <&local_intc>;
interrupts = <8>; interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
}; };
&cpu_thermal { &cpu_thermal {

View file

@ -0,0 +1,41 @@
// SPDX-License-Identifier: GPL-2.0
#include <dt-bindings/net/microchip-lan78xx.h>
/ {
aliases {
ethernet0 = &ethernet;
};
};
&usb {
usb-port@1 {
compatible = "usb424,2514";
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
usb-port@1 {
compatible = "usb424,2514";
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
ethernet: ethernet@1 {
compatible = "usb424,7800";
reg = <1>;
mdio {
#address-cells = <0x1>;
#size-cells = <0x0>;
eth_phy: ethernet-phy@1 {
reg = <1>;
microchip,led-modes = <
LAN78XX_LINK_1000_ACTIVITY
LAN78XX_LINK_10_100_ACTIVITY
>;
};
};
};
};
};
};

View file

@ -1,3 +1,4 @@
// SPDX-License-Identifier: GPL-2.0
/ { / {
aliases { aliases {
ethernet0 = &ethernet; ethernet0 = &ethernet;

View file

@ -0,0 +1,11 @@
// SPDX-License-Identifier: GPL-2.0
&usb {
dr_mode = "otg";
g-rx-fifo-size = <256>;
g-np-tx-fifo-size = <32>;
/*
* According to dwc2 the sum of all device EP
* fifo sizes shouldn't exceed 3776 bytes.
*/
g-tx-fifo-size = <256 256 512 512 512 768 768>;
};

View file

@ -2,6 +2,8 @@
#include <dt-bindings/clock/bcm2835.h> #include <dt-bindings/clock/bcm2835.h>
#include <dt-bindings/clock/bcm2835-aux.h> #include <dt-bindings/clock/bcm2835-aux.h>
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/soc/bcm2835-pm.h>
/* firmware-provided startup stubs live here, where the secondary CPUs are /* firmware-provided startup stubs live here, where the secondary CPUs are
* spinning. * spinning.
@ -20,8 +22,13 @@
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
aliases {
serial0 = &uart0;
serial1 = &uart1;
};
chosen { chosen {
bootargs = "earlyprintk console=ttyAMA0"; stdout-path = "serial0:115200n8";
}; };
thermal-zones { thermal-zones {
@ -44,7 +51,7 @@
}; };
}; };
soc: soc { soc {
compatible = "simple-bus"; compatible = "simple-bus";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
@ -60,6 +67,12 @@
clock-frequency = <1000000>; clock-frequency = <1000000>;
}; };
txp@7e004000 {
compatible = "brcm,bcm2835-txp";
reg = <0x7e004000 0x20>;
interrupts = <1 11>;
};
dma: dma@7e007000 { dma: dma@7e007000 {
compatible = "brcm,bcm2835-dma"; compatible = "brcm,bcm2835-dma";
reg = <0x7e007000 0xf00>; reg = <0x7e007000 0xf00>;
@ -108,9 +121,18 @@
#interrupt-cells = <2>; #interrupt-cells = <2>;
}; };
watchdog@7e100000 { pm: watchdog@7e100000 {
compatible = "brcm,bcm2835-pm-wdt"; compatible = "brcm,bcm2835-pm", "brcm,bcm2835-pm-wdt";
reg = <0x7e100000 0x28>; #power-domain-cells = <1>;
#reset-cells = <1>;
reg = <0x7e100000 0x114>,
<0x7e00a000 0x24>;
clocks = <&clocks BCM2835_CLOCK_V3D>,
<&clocks BCM2835_CLOCK_PERI_IMAGE>,
<&clocks BCM2835_CLOCK_H264>,
<&clocks BCM2835_CLOCK_ISP>;
clock-names = "v3d", "peri_image", "h264", "isp";
system-power-controller;
}; };
clocks: cprman@7e101000 { clocks: cprman@7e101000 {
@ -130,6 +152,7 @@
rng@7e104000 { rng@7e104000 {
compatible = "brcm,bcm2835-rng"; compatible = "brcm,bcm2835-rng";
reg = <0x7e104000 0x10>; reg = <0x7e104000 0x10>;
interrupts = <2 29>;
}; };
mailbox: mailbox@7e00b880 { mailbox: mailbox@7e00b880 {
@ -217,6 +240,7 @@
gpclk2_gpio43: gpclk2_gpio43 { gpclk2_gpio43: gpclk2_gpio43 {
brcm,pins = <43>; brcm,pins = <43>;
brcm,function = <BCM2835_FSEL_ALT0>; brcm,function = <BCM2835_FSEL_ALT0>;
brcm,pull = <BCM2835_PUD_OFF>;
}; };
i2c0_gpio0: i2c0_gpio0 { i2c0_gpio0: i2c0_gpio0 {
@ -329,10 +353,12 @@
uart0_ctsrts_gpio30: uart0_ctsrts_gpio30 { uart0_ctsrts_gpio30: uart0_ctsrts_gpio30 {
brcm,pins = <30 31>; brcm,pins = <30 31>;
brcm,function = <BCM2835_FSEL_ALT3>; brcm,function = <BCM2835_FSEL_ALT3>;
brcm,pull = <BCM2835_PUD_UP BCM2835_PUD_OFF>;
}; };
uart0_gpio32: uart0_gpio32 { uart0_gpio32: uart0_gpio32 {
brcm,pins = <32 33>; brcm,pins = <32 33>;
brcm,function = <BCM2835_FSEL_ALT3>; brcm,function = <BCM2835_FSEL_ALT3>;
brcm,pull = <BCM2835_PUD_OFF BCM2835_PUD_UP>;
}; };
uart0_gpio36: uart0_gpio36 { uart0_gpio36: uart0_gpio36 {
brcm,pins = <36 37>; brcm,pins = <36 37>;
@ -391,8 +417,8 @@
i2s: i2s@7e203000 { i2s: i2s@7e203000 {
compatible = "brcm,bcm2835-i2s"; compatible = "brcm,bcm2835-i2s";
reg = <0x7e203000 0x20>, reg = <0x7e203000 0x24>;
<0x7e101098 0x02>; clocks = <&clocks BCM2835_CLOCK_PCM>;
dmas = <&dma 2>, dmas = <&dma 2>,
<&dma 3>; <&dma 3>;
@ -432,6 +458,17 @@
interrupts = <2 14>; /* pwa1 */ interrupts = <2 14>; /* pwa1 */
}; };
dpi: dpi@7e208000 {
compatible = "brcm,bcm2835-dpi";
reg = <0x7e208000 0x8c>;
clocks = <&clocks BCM2835_CLOCK_VPU>,
<&clocks BCM2835_CLOCK_DPI>;
clock-names = "core", "pixel";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
dsi0: dsi@7e209000 { dsi0: dsi@7e209000 {
compatible = "brcm,bcm2835-dsi0"; compatible = "brcm,bcm2835-dsi0";
reg = <0x7e209000 0x78>; reg = <0x7e209000 0x78>;
@ -459,7 +496,7 @@
status = "disabled"; status = "disabled";
}; };
aux: aux@0x7e215000 { aux: aux@7e215000 {
compatible = "brcm,bcm2835-aux"; compatible = "brcm,bcm2835-aux";
#clock-cells = <1>; #clock-cells = <1>;
reg = <0x7e215000 0x8>; reg = <0x7e215000 0x8>;
@ -602,6 +639,7 @@
compatible = "brcm,bcm2835-v3d"; compatible = "brcm,bcm2835-v3d";
reg = <0x7ec00000 0x1000>; reg = <0x7ec00000 0x1000>;
interrupts = <1 10>; interrupts = <1 10>;
power-domains = <&pm BCM2835_POWER_DOMAIN_GRAFX_V3D>;
}; };
vc4: gpu { vc4: gpu {
@ -634,7 +672,6 @@
usbphy: phy { usbphy: phy {
compatible = "usb-nop-xceiv"; compatible = "usb-nop-xceiv";
#phy-cells = <0>;
}; };
}; };
#include "bcm283x-uboot.dtsi"

View file

@ -348,7 +348,7 @@ struct bcm2835_mbox_tag_depth {
}; };
#define BCM2835_MBOX_TAG_GET_PIXEL_ORDER 0x00040006 #define BCM2835_MBOX_TAG_GET_PIXEL_ORDER 0x00040006
#define BCM2835_MBOX_TAG_TEST_PIXEL_ORDER 0x00044005 #define BCM2835_MBOX_TAG_TEST_PIXEL_ORDER 0x00044006
#define BCM2835_MBOX_TAG_SET_PIXEL_ORDER 0x00048006 #define BCM2835_MBOX_TAG_SET_PIXEL_ORDER 0x00048006
#define BCM2835_MBOX_PIXEL_ORDER_BGR 0 #define BCM2835_MBOX_PIXEL_ORDER_BGR 0

View file

@ -0,0 +1,43 @@
CONFIG_ARM=y
CONFIG_ARCH_BCM283X=y
CONFIG_SYS_TEXT_BASE=0x00080000
CONFIG_TARGET_RPI_3=y
CONFIG_SYS_MALLOC_F_LEN=0x2000
CONFIG_DISTRO_DEFAULTS=y
CONFIG_NR_DRAM_BANKS=1
CONFIG_OF_BOARD_SETUP=y
CONFIG_MISC_INIT_R=y
# CONFIG_DISPLAY_CPUINFO is not set
# CONFIG_DISPLAY_BOARDINFO is not set
CONFIG_SYS_PROMPT="U-Boot> "
# CONFIG_CMD_FLASH is not set
CONFIG_CMD_GPIO=y
CONFIG_CMD_MMC=y
CONFIG_CMD_USB=y
CONFIG_CMD_FS_UUID=y
CONFIG_OF_EMBED=y
CONFIG_DEFAULT_DEVICE_TREE="bcm2837-rpi-3-b-plus"
CONFIG_ENV_FAT_INTERFACE="mmc"
CONFIG_ENV_FAT_DEVICE_AND_PART="0:1"
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
CONFIG_DM_KEYBOARD=y
CONFIG_DM_MMC=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_BCM2835=y
CONFIG_PHYLIB=y
CONFIG_DM_ETH=y
CONFIG_PINCTRL=y
# CONFIG_PINCTRL_GENERIC is not set
# CONFIG_REQUIRE_SERIAL_CONSOLE is not set
CONFIG_USB=y
CONFIG_DM_USB=y
CONFIG_USB_DWC2=y
CONFIG_USB_KEYBOARD=y
CONFIG_USB_HOST_ETHER=y
CONFIG_USB_ETHER_LAN78XX=y
CONFIG_USB_ETHER_SMSC95XX=y
CONFIG_DM_VIDEO=y
CONFIG_SYS_WHITE_ON_BLACK=y
CONFIG_CONSOLE_SCROLL_LINES=10
CONFIG_PHYS_TO_BUS=y
CONFIG_OF_LIBFDT_OVERLAY=y

View file

@ -146,12 +146,38 @@
"fdt_addr_r=0x02600000\0" \ "fdt_addr_r=0x02600000\0" \
"ramdisk_addr_r=0x02700000\0" "ramdisk_addr_r=0x02700000\0"
#define BOOT_TARGET_DEVICES(func) \ #if CONFIG_IS_ENABLED(CMD_MMC)
#define BOOT_TARGET_MMC(func) \
func(MMC, mmc, 0) \ func(MMC, mmc, 0) \
func(MMC, mmc, 1) \ func(MMC, mmc, 1)
func(USB, usb, 0) \ #else
func(PXE, pxe, na) \ #define BOOT_TARGET_MMC(func)
func(DHCP, dhcp, na) #endif
#if CONFIG_IS_ENABLED(CMD_USB)
#define BOOT_TARGET_USB(func) func(USB, usb, 0)
#else
#define BOOT_TARGET_USB(func)
#endif
#if CONFIG_IS_ENABLED(CMD_PXE)
#define BOOT_TARGET_PXE(func) func(PXE, pxe, na)
#else
#define BOOT_TARGET_PXE(func)
#endif
#if CONFIG_IS_ENABLED(CMD_DHCP)
#define BOOT_TARGET_DHCP(func) func(DHCP, dhcp, na)
#else
#define BOOT_TARGET_DHCP(func)
#endif
#define BOOT_TARGET_DEVICES(func) \
BOOT_TARGET_MMC(func) \
BOOT_TARGET_USB(func) \
BOOT_TARGET_PXE(func) \
BOOT_TARGET_DHCP(func)
#include <config_distro_bootcmd.h> #include <config_distro_bootcmd.h>
#define CONFIG_EXTRA_ENV_SETTINGS \ #define CONFIG_EXTRA_ENV_SETTINGS \

View file

@ -1,14 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0 */
/* /*
* Copyright (C) 2015 Broadcom Corporation * Copyright (C) 2015 Broadcom Corporation
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation version 2.
*
* This program is distributed "as is" WITHOUT ANY WARRANTY of any
* kind, whether express or implied; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/ */
#define BCM2835_AUX_CLOCK_UART 0 #define BCM2835_AUX_CLOCK_UART 0

View file

@ -1,14 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0 */
/* /*
* Copyright (C) 2015 Broadcom Corporation * Copyright (C) 2015 Broadcom Corporation
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation version 2.
*
* This program is distributed "as is" WITHOUT ANY WARRANTY of any
* kind, whether express or implied; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/ */
#define BCM2835_PLLA 0 #define BCM2835_PLLA 0

View file

@ -0,0 +1,21 @@
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _DT_BINDINGS_MICROCHIP_LAN78XX_H
#define _DT_BINDINGS_MICROCHIP_LAN78XX_H
/* LED modes for LAN7800/LAN7850 embedded PHY */
#define LAN78XX_LINK_ACTIVITY 0
#define LAN78XX_LINK_1000_ACTIVITY 1
#define LAN78XX_LINK_100_ACTIVITY 2
#define LAN78XX_LINK_10_ACTIVITY 3
#define LAN78XX_LINK_100_1000_ACTIVITY 4
#define LAN78XX_LINK_10_1000_ACTIVITY 5
#define LAN78XX_LINK_10_100_ACTIVITY 6
#define LAN78XX_DUPLEX_COLLISION 8
#define LAN78XX_COLLISION 9
#define LAN78XX_ACTIVITY 10
#define LAN78XX_AUTONEG_FAULT 12
#define LAN78XX_FORCE_LED_OFF 14
#define LAN78XX_FORCE_LED_ON 15
#endif

View file

@ -1,14 +1,8 @@
/* SPDX-License-Identifier: GPL-2.0 */
/* /*
* Header providing constants for bcm2835 pinctrl bindings. * Header providing constants for bcm2835 pinctrl bindings.
* *
* Copyright (C) 2015 Stefan Wahren <stefan.wahren@i2se.com> * Copyright (C) 2015 Stefan Wahren <stefan.wahren@i2se.com>
*
* The code contained herein is licensed under the GNU General Public
* License. You may obtain a copy of the GNU General Public License
* Version 2 at the following locations:
*
* http://www.opensource.org/licenses/gpl-license.html
* http://www.gnu.org/copyleft/gpl.html
*/ */
#ifndef __DT_BINDINGS_PINCTRL_BCM2835_H__ #ifndef __DT_BINDINGS_PINCTRL_BCM2835_H__

View file

@ -0,0 +1,28 @@
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
#ifndef _DT_BINDINGS_ARM_BCM2835_PM_H
#define _DT_BINDINGS_ARM_BCM2835_PM_H
#define BCM2835_POWER_DOMAIN_GRAFX 0
#define BCM2835_POWER_DOMAIN_GRAFX_V3D 1
#define BCM2835_POWER_DOMAIN_IMAGE 2
#define BCM2835_POWER_DOMAIN_IMAGE_PERI 3
#define BCM2835_POWER_DOMAIN_IMAGE_ISP 4
#define BCM2835_POWER_DOMAIN_IMAGE_H264 5
#define BCM2835_POWER_DOMAIN_USB 6
#define BCM2835_POWER_DOMAIN_DSI0 7
#define BCM2835_POWER_DOMAIN_DSI1 8
#define BCM2835_POWER_DOMAIN_CAM0 9
#define BCM2835_POWER_DOMAIN_CAM1 10
#define BCM2835_POWER_DOMAIN_CCP2TX 11
#define BCM2835_POWER_DOMAIN_HDMI 12
#define BCM2835_POWER_DOMAIN_COUNT 13
#define BCM2835_RESET_V3D 0
#define BCM2835_RESET_ISP 1
#define BCM2835_RESET_H264 2
#define BCM2835_RESET_COUNT 3
#endif /* _DT_BINDINGS_ARM_BCM2835_PM_H */