linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] dt-bindings: Add root properties for Raspberry Pi 3
@ 2016-03-04 18:39 Eric Anholt
  2016-03-04 18:39 ` [PATCH 2/2] ARM: bcm2835: Add devicetree for the " Eric Anholt
  2016-03-17 11:53 ` [PATCH 1/2] dt-bindings: Add root properties for " Rob Herring
  0 siblings, 2 replies; 8+ messages in thread
From: Eric Anholt @ 2016-03-04 18:39 UTC (permalink / raw)
  To: linux-rpi-kernel
  Cc: linux-arm-kernel, linux-kernel, Stephen Warren, Lee Jones,
	Florian Fainelli, Rob Herring, Pawel Moll, Mark Rutland,
	Ian Campbell, Kumar Gala, devicetree, Eric Anholt

Signed-off-by: Eric Anholt <eric@anholt.net>
---
 Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
index 11d3056..6ffe087 100644
--- a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
+++ b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
@@ -30,6 +30,10 @@ Raspberry Pi 2 Model B
 Required root node properties:
 compatible = "raspberrypi,2-model-b", "brcm,bcm2836";
 
+Raspberry Pi 3 Model B
+Required root node properties:
+compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
+
 Raspberry Pi Compute Module
 Required root node properties:
 compatible = "raspberrypi,compute-module", "brcm,bcm2835";
-- 
2.7.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/2] ARM: bcm2835: Add devicetree for the Raspberry Pi 3.
  2016-03-04 18:39 [PATCH 1/2] dt-bindings: Add root properties for Raspberry Pi 3 Eric Anholt
@ 2016-03-04 18:39 ` Eric Anholt
  2016-03-04 18:41   ` Mark Rutland
  2016-03-08  5:54   ` Stephen Warren
  2016-03-17 11:53 ` [PATCH 1/2] dt-bindings: Add root properties for " Rob Herring
  1 sibling, 2 replies; 8+ messages in thread
From: Eric Anholt @ 2016-03-04 18:39 UTC (permalink / raw)
  To: linux-rpi-kernel
  Cc: linux-arm-kernel, linux-kernel, Stephen Warren, Lee Jones,
	Florian Fainelli, Rob Herring, Pawel Moll, Mark Rutland,
	Ian Campbell, Kumar Gala, devicetree, Eric Anholt

For now this doesn't support the new hardware present on the Pi 3 (BT,
wifi, GPIO expander).  Since the GPIO expander isn't supported, we
also don't have the LEDs like the other board files do.

Signed-off-by: Eric Anholt <eric@anholt.net>
---
 arch/arm/boot/dts/Makefile            |  3 +-
 arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 22 ++++++++++++
 arch/arm/boot/dts/bcm2837.dtsi        | 68 +++++++++++++++++++++++++++++++++++
 3 files changed, 92 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/bcm2837-rpi-3-b.dts
 create mode 100644 arch/arm/boot/dts/bcm2837.dtsi

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index a4a6d70..71082a3 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -63,7 +63,8 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
 	bcm2835-rpi-b-rev2.dtb \
 	bcm2835-rpi-b-plus.dtb \
 	bcm2835-rpi-a-plus.dtb \
-	bcm2836-rpi-2-b.dtb
+	bcm2836-rpi-2-b.dtb \
+	bcm2837-rpi-3-b.dtb
 dtb-$(CONFIG_ARCH_BCM_5301X) += \
 	bcm4708-asus-rt-ac56u.dtb \
 	bcm4708-asus-rt-ac68u.dtb \
diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
new file mode 100644
index 0000000..5e8eafd
--- /dev/null
+++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
@@ -0,0 +1,22 @@
+/dts-v1/;
+#include "bcm2837.dtsi"
+#include "bcm2835-rpi.dtsi"
+
+/ {
+	compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
+	model = "Raspberry Pi 3 Model B";
+
+	memory {
+		reg = <0 0x40000000>;
+	};
+};
+
+&gpio {
+	pinctrl-0 = <&gpioout &alt0 &i2s_alt0 &alt3>;
+
+	/* I2S interface */
+	i2s_alt0: i2s_alt0 {
+		brcm,pins = <28 29 30 31>;
+		brcm,function = <BCM2835_FSEL_ALT2>;
+	};
+};
diff --git a/arch/arm/boot/dts/bcm2837.dtsi b/arch/arm/boot/dts/bcm2837.dtsi
new file mode 100644
index 0000000..2f36722
--- /dev/null
+++ b/arch/arm/boot/dts/bcm2837.dtsi
@@ -0,0 +1,68 @@
+#include "bcm283x.dtsi"
+
+/ {
+	compatible = "brcm,bcm2836";
+
+	soc {
+		ranges = <0x7e000000 0x3f000000 0x1000000>,
+			 <0x40000000 0x40000000 0x00001000>;
+		dma-ranges = <0xc0000000 0x00000000 0x3f000000>;
+
+		local_intc: local_intc {
+			compatible = "brcm,bcm2836-l1-intc";
+			reg = <0x40000000 0x100>;
+			interrupt-controller;
+			#interrupt-cells = <1>;
+			interrupt-parent = <&local_intc>;
+		};
+	};
+
+	timer {
+		compatible = "arm,armv7-timer";
+		interrupt-parent = <&local_intc>;
+		interrupts = <0>, // PHYS_SECURE_PPI
+			     <1>, // PHYS_NONSECURE_PPI
+			     <3>, // VIRT_PPI
+			     <2>; // HYP_PPI
+		always-on;
+	};
+
+	cpus: cpus {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		cpu0: cpu@0 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a53";
+			reg = <0>;
+		};
+
+		cpu1: cpu@1 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a53";
+			reg = <1>;
+		};
+
+		cpu2: cpu@2 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a53";
+			reg = <2>;
+		};
+
+		cpu3: cpu@3 {
+			device_type = "cpu";
+			compatible = "arm,cortex-a53";
+			reg = <3>;
+		};
+	};
+};
+
+/* Make the BCM2835-style global interrupt controller be a child of the
+ * CPU-local interrupt controller.
+ */
+&intc {
+	compatible = "brcm,bcm2836-armctrl-ic";
+	reg = <0x7e00b200 0x200>;
+	interrupt-parent = <&local_intc>;
+	interrupts = <8>;
+};
-- 
2.7.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] ARM: bcm2835: Add devicetree for the Raspberry Pi 3.
  2016-03-04 18:39 ` [PATCH 2/2] ARM: bcm2835: Add devicetree for the " Eric Anholt
@ 2016-03-04 18:41   ` Mark Rutland
  2016-03-04 18:55     ` Eric Anholt
  2016-03-08  5:54   ` Stephen Warren
  1 sibling, 1 reply; 8+ messages in thread
From: Mark Rutland @ 2016-03-04 18:41 UTC (permalink / raw)
  To: Eric Anholt
  Cc: linux-rpi-kernel, linux-arm-kernel, linux-kernel, Stephen Warren,
	Lee Jones, Florian Fainelli, Rob Herring, Pawel Moll,
	Ian Campbell, Kumar Gala, devicetree

On Fri, Mar 04, 2016 at 10:39:29AM -0800, Eric Anholt wrote:
> For now this doesn't support the new hardware present on the Pi 3 (BT,
> wifi, GPIO expander).  Since the GPIO expander isn't supported, we
> also don't have the LEDs like the other board files do.
> 
> Signed-off-by: Eric Anholt <eric@anholt.net>
> ---
>  arch/arm/boot/dts/Makefile            |  3 +-
>  arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 22 ++++++++++++
>  arch/arm/boot/dts/bcm2837.dtsi        | 68 +++++++++++++++++++++++++++++++++++
>  3 files changed, 92 insertions(+), 1 deletion(-)
>  create mode 100644 arch/arm/boot/dts/bcm2837-rpi-3-b.dts
>  create mode 100644 arch/arm/boot/dts/bcm2837.dtsi

> +	timer {
> +		compatible = "arm,armv7-timer";
> +		interrupt-parent = <&local_intc>;
> +		interrupts = <0>, // PHYS_SECURE_PPI
> +			     <1>, // PHYS_NONSECURE_PPI
> +			     <3>, // VIRT_PPI
> +			     <2>; // HYP_PPI
> +		always-on;
> +	};

Are the CPUs in an always-on power domain? Or is it jsut that the kernel
doesn't perform power management of CPUs?

The always-on proeprty is only intended for the former.

Mark.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] ARM: bcm2835: Add devicetree for the Raspberry Pi 3.
  2016-03-04 18:41   ` Mark Rutland
@ 2016-03-04 18:55     ` Eric Anholt
  2016-03-04 18:59       ` Mark Rutland
  0 siblings, 1 reply; 8+ messages in thread
From: Eric Anholt @ 2016-03-04 18:55 UTC (permalink / raw)
  To: Mark Rutland
  Cc: linux-rpi-kernel, linux-arm-kernel, linux-kernel, Stephen Warren,
	Lee Jones, Florian Fainelli, Rob Herring, Pawel Moll,
	Ian Campbell, Kumar Gala, devicetree

[-- Attachment #1: Type: text/plain, Size: 1366 bytes --]

Mark Rutland <mark.rutland@arm.com> writes:

> On Fri, Mar 04, 2016 at 10:39:29AM -0800, Eric Anholt wrote:
>> For now this doesn't support the new hardware present on the Pi 3 (BT,
>> wifi, GPIO expander).  Since the GPIO expander isn't supported, we
>> also don't have the LEDs like the other board files do.
>> 
>> Signed-off-by: Eric Anholt <eric@anholt.net>
>> ---
>>  arch/arm/boot/dts/Makefile            |  3 +-
>>  arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 22 ++++++++++++
>>  arch/arm/boot/dts/bcm2837.dtsi        | 68 +++++++++++++++++++++++++++++++++++
>>  3 files changed, 92 insertions(+), 1 deletion(-)
>>  create mode 100644 arch/arm/boot/dts/bcm2837-rpi-3-b.dts
>>  create mode 100644 arch/arm/boot/dts/bcm2837.dtsi
>
>> +	timer {
>> +		compatible = "arm,armv7-timer";
>> +		interrupt-parent = <&local_intc>;
>> +		interrupts = <0>, // PHYS_SECURE_PPI
>> +			     <1>, // PHYS_NONSECURE_PPI
>> +			     <3>, // VIRT_PPI
>> +			     <2>; // HYP_PPI
>> +		always-on;
>> +	};
>
> Are the CPUs in an always-on power domain? Or is it jsut that the kernel
> doesn't perform power management of CPUs?
>
> The always-on proeprty is only intended for the former.

The kernel doesn't get to do power management of CPUs.  We only have
control of power domains through the firmware, and the firmware's
keeping the CPU domain on.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] ARM: bcm2835: Add devicetree for the Raspberry Pi 3.
  2016-03-04 18:55     ` Eric Anholt
@ 2016-03-04 18:59       ` Mark Rutland
  2016-03-04 19:39         ` Eric Anholt
  0 siblings, 1 reply; 8+ messages in thread
From: Mark Rutland @ 2016-03-04 18:59 UTC (permalink / raw)
  To: Eric Anholt
  Cc: linux-rpi-kernel, linux-arm-kernel, linux-kernel, Stephen Warren,
	Lee Jones, Florian Fainelli, Rob Herring, Pawel Moll,
	Ian Campbell, Kumar Gala, devicetree

On Fri, Mar 04, 2016 at 10:55:03AM -0800, Eric Anholt wrote:
> Mark Rutland <mark.rutland@arm.com> writes:
> 
> > On Fri, Mar 04, 2016 at 10:39:29AM -0800, Eric Anholt wrote:
> >> For now this doesn't support the new hardware present on the Pi 3 (BT,
> >> wifi, GPIO expander).  Since the GPIO expander isn't supported, we
> >> also don't have the LEDs like the other board files do.
> >> 
> >> Signed-off-by: Eric Anholt <eric@anholt.net>
> >> ---
> >>  arch/arm/boot/dts/Makefile            |  3 +-
> >>  arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 22 ++++++++++++
> >>  arch/arm/boot/dts/bcm2837.dtsi        | 68 +++++++++++++++++++++++++++++++++++
> >>  3 files changed, 92 insertions(+), 1 deletion(-)
> >>  create mode 100644 arch/arm/boot/dts/bcm2837-rpi-3-b.dts
> >>  create mode 100644 arch/arm/boot/dts/bcm2837.dtsi
> >
> >> +	timer {
> >> +		compatible = "arm,armv7-timer";
> >> +		interrupt-parent = <&local_intc>;
> >> +		interrupts = <0>, // PHYS_SECURE_PPI
> >> +			     <1>, // PHYS_NONSECURE_PPI
> >> +			     <3>, // VIRT_PPI
> >> +			     <2>; // HYP_PPI
> >> +		always-on;
> >> +	};
> >
> > Are the CPUs in an always-on power domain? Or is it jsut that the kernel
> > doesn't perform power management of CPUs?
> >
> > The always-on proeprty is only intended for the former.
> 
> The kernel doesn't get to do power management of CPUs.  We only have
> control of power domains through the firmware, and the firmware's
> keeping the CPU domain on.

So there is no way that the CPUs could request for the firmare to place
them in a state where the timer would lose context (but other events
coukd wake them up), even if they don't do that today?

Mark

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] ARM: bcm2835: Add devicetree for the Raspberry Pi 3.
  2016-03-04 18:59       ` Mark Rutland
@ 2016-03-04 19:39         ` Eric Anholt
  0 siblings, 0 replies; 8+ messages in thread
From: Eric Anholt @ 2016-03-04 19:39 UTC (permalink / raw)
  To: Mark Rutland
  Cc: linux-rpi-kernel, linux-arm-kernel, linux-kernel, Stephen Warren,
	Lee Jones, Florian Fainelli, Rob Herring, Pawel Moll,
	Ian Campbell, Kumar Gala, devicetree

[-- Attachment #1: Type: text/plain, Size: 2105 bytes --]

Mark Rutland <mark.rutland@arm.com> writes:

> On Fri, Mar 04, 2016 at 10:55:03AM -0800, Eric Anholt wrote:
>> Mark Rutland <mark.rutland@arm.com> writes:
>> 
>> > On Fri, Mar 04, 2016 at 10:39:29AM -0800, Eric Anholt wrote:
>> >> For now this doesn't support the new hardware present on the Pi 3 (BT,
>> >> wifi, GPIO expander).  Since the GPIO expander isn't supported, we
>> >> also don't have the LEDs like the other board files do.
>> >> 
>> >> Signed-off-by: Eric Anholt <eric@anholt.net>
>> >> ---
>> >>  arch/arm/boot/dts/Makefile            |  3 +-
>> >>  arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 22 ++++++++++++
>> >>  arch/arm/boot/dts/bcm2837.dtsi        | 68 +++++++++++++++++++++++++++++++++++
>> >>  3 files changed, 92 insertions(+), 1 deletion(-)
>> >>  create mode 100644 arch/arm/boot/dts/bcm2837-rpi-3-b.dts
>> >>  create mode 100644 arch/arm/boot/dts/bcm2837.dtsi
>> >
>> >> +	timer {
>> >> +		compatible = "arm,armv7-timer";
>> >> +		interrupt-parent = <&local_intc>;
>> >> +		interrupts = <0>, // PHYS_SECURE_PPI
>> >> +			     <1>, // PHYS_NONSECURE_PPI
>> >> +			     <3>, // VIRT_PPI
>> >> +			     <2>; // HYP_PPI
>> >> +		always-on;
>> >> +	};
>> >
>> > Are the CPUs in an always-on power domain? Or is it jsut that the kernel
>> > doesn't perform power management of CPUs?
>> >
>> > The always-on proeprty is only intended for the former.
>> 
>> The kernel doesn't get to do power management of CPUs.  We only have
>> control of power domains through the firmware, and the firmware's
>> keeping the CPU domain on.
>
> So there is no way that the CPUs could request for the firmare to place
> them in a state where the timer would lose context (but other events
> coukd wake them up), even if they don't do that today?

I don't see any mechanism in the RPi firmware for the ARM to request
suspend or anything like that.  Enabling something like that would
definitely require an updated DT, to enable a driver that talks to the
firmware to make requests like that.

(Note that this is the same timer setup we have in bcm2836.dtsi)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 818 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] ARM: bcm2835: Add devicetree for the Raspberry Pi 3.
  2016-03-04 18:39 ` [PATCH 2/2] ARM: bcm2835: Add devicetree for the " Eric Anholt
  2016-03-04 18:41   ` Mark Rutland
@ 2016-03-08  5:54   ` Stephen Warren
  1 sibling, 0 replies; 8+ messages in thread
From: Stephen Warren @ 2016-03-08  5:54 UTC (permalink / raw)
  To: Eric Anholt
  Cc: linux-rpi-kernel, linux-arm-kernel, linux-kernel, Lee Jones,
	Florian Fainelli, Rob Herring, Pawel Moll, Mark Rutland,
	Ian Campbell, Kumar Gala, devicetree

On 03/04/2016 11:39 AM, Eric Anholt wrote:
> For now this doesn't support the new hardware present on the Pi 3 (BT,
> wifi, GPIO expander).  Since the GPIO expander isn't supported, we
> also don't have the LEDs like the other board files do.

The series,
Acked-by: Stephen Warren <swarren@wwwdotorg.org>

... although I'd be slightly surprised if this was accepted; when 
AArch64 was first announced, I thought the mainline ARM kernel community 
decided that only 64-bit kernels would be supported on 64-bit HW? Still, 
I don't immediately see that in any commit log or in the kernel doc 
directory, so perhaps I'm misremembering. Hopefully; life is simpler 
that way:-)

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/2] dt-bindings: Add root properties for Raspberry Pi 3
  2016-03-04 18:39 [PATCH 1/2] dt-bindings: Add root properties for Raspberry Pi 3 Eric Anholt
  2016-03-04 18:39 ` [PATCH 2/2] ARM: bcm2835: Add devicetree for the " Eric Anholt
@ 2016-03-17 11:53 ` Rob Herring
  1 sibling, 0 replies; 8+ messages in thread
From: Rob Herring @ 2016-03-17 11:53 UTC (permalink / raw)
  To: Eric Anholt
  Cc: linux-rpi-kernel, linux-arm-kernel, linux-kernel, Stephen Warren,
	Lee Jones, Florian Fainelli, Pawel Moll, Mark Rutland,
	Ian Campbell, Kumar Gala, devicetree

On Fri, Mar 04, 2016 at 10:39:28AM -0800, Eric Anholt wrote:
> Signed-off-by: Eric Anholt <eric@anholt.net>
> ---
>  Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt | 4 ++++
>  1 file changed, 4 insertions(+)

Acked-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2016-03-17 11:53 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-04 18:39 [PATCH 1/2] dt-bindings: Add root properties for Raspberry Pi 3 Eric Anholt
2016-03-04 18:39 ` [PATCH 2/2] ARM: bcm2835: Add devicetree for the " Eric Anholt
2016-03-04 18:41   ` Mark Rutland
2016-03-04 18:55     ` Eric Anholt
2016-03-04 18:59       ` Mark Rutland
2016-03-04 19:39         ` Eric Anholt
2016-03-08  5:54   ` Stephen Warren
2016-03-17 11:53 ` [PATCH 1/2] dt-bindings: Add root properties for " Rob Herring

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).