[U-Boot] [PATCH 01/16] dts: Create a dtsi for BCM2835/6/7 specific configuration
Matthias Brugger
matthias.bgg at gmail.com
Tue Jul 16 14:20:30 UTC 2019
On 16/07/2019 15:37, andrei at gherzan.ro wrote:
> From: Andrei Gherzan <andrei at gherzan.ro>
>
> This follows a similar change in kernel[1]. The change moves
> configuration that was not applicable for all bcm2835/6/7/8 out of
> bcm283x.dtsi. The new file is bcm2835-common.dtsi and contains
> conifguration that is common for bcm2835/6/7 (not bcm2838).
>
> [1] https://github.com/raspberrypi/linux/commit/769a7330aa5bebcc98b1ff12ecb767db4e5c644d#diff-5979fba23a5bab2cf66dde09db872dfc
>
> Signed-off-by: Andrei Gherzan <andrei at gherzan.ro>
My opinion is that we should wait for official dts instead of using some
work-in-progress ones. So my opinion is to use the DTB from the FW for now until
we have something stable.
> ---
> arch/arm/dts/bcm2835-common.dtsi | 53 ++++++++++++++++++++++++++++++++
> arch/arm/dts/bcm2835.dtsi | 1 +
> arch/arm/dts/bcm2836.dtsi | 1 +
> arch/arm/dts/bcm2837.dtsi | 1 +
> arch/arm/dts/bcm283x.dtsi | 45 +--------------------------
> 5 files changed, 57 insertions(+), 44 deletions(-)
> create mode 100644 arch/arm/dts/bcm2835-common.dtsi
>
> diff --git a/arch/arm/dts/bcm2835-common.dtsi b/arch/arm/dts/bcm2835-common.dtsi
> new file mode 100644
> index 0000000000..17771730a3
> --- /dev/null
> +++ b/arch/arm/dts/bcm2835-common.dtsi
> @@ -0,0 +1,53 @@
> +// SPDX-License-Identifier: GPL-2.0
> +
> +/* This include file covers the common peripherals and configuration between
> + * bcm2835, bcm2836 and bcm2837 implementations.
> + */
> +
> +/ {
> + soc {
> + timer at 7e003000 {
> + compatible = "brcm,bcm2835-system-timer";
> + reg = <0x7e003000 0x1000>;
> + interrupts = <1 0>, <1 1>, <1 2>, <1 3>;
> + /* This could be a reference to BCM2835_CLOCK_TIMER,
> + * but we don't have the driver using the common clock
> + * support yet.
> + */
> + clock-frequency = <1000000>;
> + };
> +
> + intc: interrupt-controller at 7e00b200 {
> + compatible = "brcm,bcm2835-armctrl-ic";
> + reg = <0x7e00b200 0x200>;
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> +
> + thermal: thermal at 7e212000 {
> + compatible = "brcm,bcm2835-thermal";
> + reg = <0x7e212000 0x8>;
> + clocks = <&clocks BCM2835_CLOCK_TSENS>;
> + #thermal-sensor-cells = <0>;
> + status = "disabled";
> + };
> +
> + v3d: v3d at 7ec00000 {
> + compatible = "brcm,bcm2835-v3d";
> + reg = <0x7ec00000 0x1000>;
> + interrupts = <1 10>;
> + };
> + };
> +};
> +
> +&gpio {
> + 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_ALT5>;
> + };
> +};
> diff --git a/arch/arm/dts/bcm2835.dtsi b/arch/arm/dts/bcm2835.dtsi
> index a5c3824c80..53bf4579cc 100644
> --- a/arch/arm/dts/bcm2835.dtsi
> +++ b/arch/arm/dts/bcm2835.dtsi
> @@ -1,5 +1,6 @@
> // SPDX-License-Identifier: GPL-2.0
> #include "bcm283x.dtsi"
> +#include "bcm2835-common.dtsi"
>
> / {
> compatible = "brcm,bcm2835";
> diff --git a/arch/arm/dts/bcm2836.dtsi b/arch/arm/dts/bcm2836.dtsi
> index c933e84138..82d6c4662a 100644
> --- a/arch/arm/dts/bcm2836.dtsi
> +++ b/arch/arm/dts/bcm2836.dtsi
> @@ -1,5 +1,6 @@
> // SPDX-License-Identifier: GPL-2.0
> #include "bcm283x.dtsi"
> +#include "bcm2835-common.dtsi"
>
> / {
> compatible = "brcm,bcm2836";
> diff --git a/arch/arm/dts/bcm2837.dtsi b/arch/arm/dts/bcm2837.dtsi
> index beb6c502da..9e95fee78e 100644
> --- a/arch/arm/dts/bcm2837.dtsi
> +++ b/arch/arm/dts/bcm2837.dtsi
> @@ -1,4 +1,5 @@
> #include "bcm283x.dtsi"
> +#include "bcm2835-common.dtsi"
>
> / {
> compatible = "brcm,bcm2837";
> diff --git a/arch/arm/dts/bcm283x.dtsi b/arch/arm/dts/bcm283x.dtsi
> index 9777644c6c..a024727e4d 100644
> --- a/arch/arm/dts/bcm283x.dtsi
> +++ b/arch/arm/dts/bcm283x.dtsi
> @@ -56,17 +56,6 @@
> #address-cells = <1>;
> #size-cells = <1>;
>
> - timer at 7e003000 {
> - compatible = "brcm,bcm2835-system-timer";
> - reg = <0x7e003000 0x1000>;
> - interrupts = <1 0>, <1 1>, <1 2>, <1 3>;
> - /* This could be a reference to BCM2835_CLOCK_TIMER,
> - * but we don't have the driver using the common clock
> - * support yet.
> - */
> - clock-frequency = <1000000>;
> - };
> -
> txp at 7e004000 {
> compatible = "brcm,bcm2835-txp";
> reg = <0x7e004000 0x20>;
> @@ -114,13 +103,6 @@
> brcm,dma-channel-mask = <0x7f35>;
> };
>
> - intc: interrupt-controller at 7e00b200 {
> - compatible = "brcm,bcm2835-armctrl-ic";
> - reg = <0x7e00b200 0x200>;
> - interrupt-controller;
> - #interrupt-cells = <2>;
> - };
> -
> pm: watchdog at 7e100000 {
> compatible = "brcm,bcm2835-pm", "brcm,bcm2835-pm-wdt";
> #power-domain-cells = <1>;
> @@ -184,8 +166,7 @@
> interrupt-controller;
> #interrupt-cells = <2>;
>
> - /* Defines pin muxing groups according to
> - * BCM2835-ARM-Peripherals.pdf page 102.
> + /* Defines common pin muxing groups
> *
> * While each pin can have its mux selected
> * for various functions individually, some
> @@ -263,15 +244,6 @@
> 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_ALT5>;
> - };
> jtag_gpio22: jtag_gpio22 {
> brcm,pins = <22 23 24 25 26 27>;
> brcm,function = <BCM2835_FSEL_ALT4>;
> @@ -488,14 +460,6 @@
>
> };
>
> - thermal: thermal at 7e212000 {
> - compatible = "brcm,bcm2835-thermal";
> - reg = <0x7e212000 0x8>;
> - clocks = <&clocks BCM2835_CLOCK_TSENS>;
> - #thermal-sensor-cells = <0>;
> - status = "disabled";
> - };
> -
> aux: aux at 7e215000 {
> compatible = "brcm,bcm2835-aux";
> #clock-cells = <1>;
> @@ -635,13 +599,6 @@
> phy-names = "usb2-phy";
> };
>
> - v3d: v3d at 7ec00000 {
> - compatible = "brcm,bcm2835-v3d";
> - reg = <0x7ec00000 0x1000>;
> - interrupts = <1 10>;
> - power-domains = <&pm BCM2835_POWER_DOMAIN_GRAFX_V3D>;
> - };
> -
> vc4: gpu {
> compatible = "brcm,bcm2835-vc4";
> };
>
More information about the U-Boot
mailing list