* [PATCH 0/3] ARM: bcm2835: Include VC4 GPU in the DT
@ 2016-03-04 20:32 Eric Anholt
2016-03-04 20:32 ` [PATCH 1/3] dt-bindings: Add binding docs for V3D Eric Anholt
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Eric Anholt @ 2016-03-04 20:32 UTC (permalink / raw)
To: linux-arm-kernel
This has been floating around out of tree, and the Pi Foundation is
including a variant of it in the device tree overlay in its firmware
update system.
Eric Anholt (3):
dt-bindings: Add binding docs for V3D.
drm/vc4: Recognize a more specific compatible string for V3D.
ARM: bcm2835: Add VC4 to the device tree.
.../devicetree/bindings/display/brcm,bcm-vc4.txt | 12 ++++++
arch/arm/boot/dts/bcm2835-rpi-a-plus.dts | 4 ++
arch/arm/boot/dts/bcm2835-rpi-a.dts | 4 ++
arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 4 ++
arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts | 4 ++
arch/arm/boot/dts/bcm2835-rpi-b.dts | 4 ++
arch/arm/boot/dts/bcm2835-rpi.dtsi | 9 +++++
arch/arm/boot/dts/bcm2836-rpi-2-b.dts | 4 ++
arch/arm/boot/dts/bcm283x.dtsi | 47 ++++++++++++++++++++++
drivers/gpu/drm/vc4/vc4_v3d.c | 1 +
10 files changed, 93 insertions(+)
--
2.7.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/3] dt-bindings: Add binding docs for V3D.
2016-03-04 20:32 [PATCH 0/3] ARM: bcm2835: Include VC4 GPU in the DT Eric Anholt
@ 2016-03-04 20:32 ` Eric Anholt
2016-03-17 11:53 ` Rob Herring
2016-03-04 20:32 ` [PATCH 2/3] drm/vc4: Recognize a more specific compatible string " Eric Anholt
2016-03-04 20:32 ` [PATCH 3/3] ARM: bcm2835: Add VC4 to the device tree Eric Anholt
2 siblings, 1 reply; 8+ messages in thread
From: Eric Anholt @ 2016-03-04 20:32 UTC (permalink / raw)
To: linux-arm-kernel
This was missed in the upstreaming process.
Signed-off-by: Eric Anholt <eric@anholt.net>
---
Documentation/devicetree/bindings/display/brcm,bcm-vc4.txt | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/Documentation/devicetree/bindings/display/brcm,bcm-vc4.txt b/Documentation/devicetree/bindings/display/brcm,bcm-vc4.txt
index 56a961a..9f97df4 100644
--- a/Documentation/devicetree/bindings/display/brcm,bcm-vc4.txt
+++ b/Documentation/devicetree/bindings/display/brcm,bcm-vc4.txt
@@ -35,6 +35,12 @@ Optional properties for HDMI:
as an interrupt/status bit in the HDMI controller
itself). See bindings/pinctrl/brcm,bcm2835-gpio.txt
+Required properties for V3D:
+- compatible: Should be "brcm,bcm2835-v3d"
+- reg: Physical base address and length of the V3D's registers
+- interrupts: The interrupt number
+ See bindings/interrupt-controller/brcm,bcm2835-armctrl-ic.txt
+
Example:
pixelvalve at 7e807000 {
compatible = "brcm,bcm2835-pixelvalve2";
@@ -60,6 +66,12 @@ hdmi: hdmi at 7e902000 {
clock-names = "pixel", "hdmi";
};
+v3d: v3d at 7ec00000 {
+ compatible = "brcm,bcm2835-v3d";
+ reg = <0x7ec00000 0x1000>;
+ interrupts = <1 10>;
+};
+
vc4: gpu {
compatible = "brcm,bcm2835-vc4";
};
--
2.7.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/3] drm/vc4: Recognize a more specific compatible string for V3D.
2016-03-04 20:32 [PATCH 0/3] ARM: bcm2835: Include VC4 GPU in the DT Eric Anholt
2016-03-04 20:32 ` [PATCH 1/3] dt-bindings: Add binding docs for V3D Eric Anholt
@ 2016-03-04 20:32 ` Eric Anholt
2016-03-04 20:32 ` [PATCH 3/3] ARM: bcm2835: Add VC4 to the device tree Eric Anholt
2 siblings, 0 replies; 8+ messages in thread
From: Eric Anholt @ 2016-03-04 20:32 UTC (permalink / raw)
To: linux-arm-kernel
The Raspberry Pi Foundation's firmware updates are shipping device
trees using the old string, so we'll keep recognizing that as this rev
of V3D. Still, we should use a more specific name in the upstream DT
to clarify which board is being supported, in case we do other revs of
V3D in the future.
Signed-off-by: Eric Anholt <eric@anholt.net>
---
drivers/gpu/drm/vc4/vc4_v3d.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/vc4/vc4_v3d.c b/drivers/gpu/drm/vc4/vc4_v3d.c
index 31de5d1..e6d3c60 100644
--- a/drivers/gpu/drm/vc4/vc4_v3d.c
+++ b/drivers/gpu/drm/vc4/vc4_v3d.c
@@ -268,6 +268,7 @@ static int vc4_v3d_dev_remove(struct platform_device *pdev)
}
static const struct of_device_id vc4_v3d_dt_match[] = {
+ { .compatible = "brcm,bcm2835-v3d" },
{ .compatible = "brcm,vc4-v3d" },
{}
};
--
2.7.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/3] ARM: bcm2835: Add VC4 to the device tree.
2016-03-04 20:32 [PATCH 0/3] ARM: bcm2835: Include VC4 GPU in the DT Eric Anholt
2016-03-04 20:32 ` [PATCH 1/3] dt-bindings: Add binding docs for V3D Eric Anholt
2016-03-04 20:32 ` [PATCH 2/3] drm/vc4: Recognize a more specific compatible string " Eric Anholt
@ 2016-03-04 20:32 ` Eric Anholt
2016-03-08 6:00 ` Stephen Warren
2 siblings, 1 reply; 8+ messages in thread
From: Eric Anholt @ 2016-03-04 20:32 UTC (permalink / raw)
To: linux-arm-kernel
VC4 is the GPU (display and 3D) present on the 283x.
Signed-off-by: Eric Anholt <eric@anholt.net>
---
v2: Sort by register address, mark HDMI as disabled by default in the
SoC file and enable it from -rpi.
v3: Add references to the pixel/HSM clocks for HDMI. Rename
compatibility strings and clean up node names.
v4: Fix comment marking pv0's interrupt as pwa2 instead of pwa0.
Rename hpd-gpio to hpd-gpios.
v5: Rebase on bcm283x.dtsi change, add v3d.
v6: Make HDMI reference the power domain.
v7: Fix the HDMI HPD gpios active value and HDMI enable for each RPI
board. Change V3D compatible string to 2835.
arch/arm/boot/dts/bcm2835-rpi-a-plus.dts | 4 +++
arch/arm/boot/dts/bcm2835-rpi-a.dts | 4 +++
arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 4 +++
arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts | 4 +++
arch/arm/boot/dts/bcm2835-rpi-b.dts | 4 +++
arch/arm/boot/dts/bcm2835-rpi.dtsi | 9 ++++++
arch/arm/boot/dts/bcm2836-rpi-2-b.dts | 4 +++
arch/arm/boot/dts/bcm283x.dtsi | 47 ++++++++++++++++++++++++++++++++
8 files changed, 80 insertions(+)
diff --git a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
index 228614f..35ff4e7a 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
@@ -29,3 +29,7 @@
brcm,function = <BCM2835_FSEL_ALT0>;
};
};
+
+&hdmi {
+ hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
+};
diff --git a/arch/arm/boot/dts/bcm2835-rpi-a.dts b/arch/arm/boot/dts/bcm2835-rpi-a.dts
index ddbbbbd..306a84e 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-a.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-a.dts
@@ -22,3 +22,7 @@
brcm,function = <BCM2835_FSEL_ALT2>;
};
};
+
+&hdmi {
+ hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
+};
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
index ef54050..57d313b 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
@@ -29,3 +29,7 @@
brcm,function = <BCM2835_FSEL_ALT0>;
};
};
+
+&hdmi {
+ hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
+};
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
index 86f1f2f..cf2774e 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
@@ -22,3 +22,7 @@
brcm,function = <BCM2835_FSEL_ALT2>;
};
};
+
+&hdmi {
+ hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
+};
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b.dts b/arch/arm/boot/dts/bcm2835-rpi-b.dts
index 4859e9d..8b15f9c 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts
@@ -16,3 +16,7 @@
&gpio {
pinctrl-0 = <&gpioout &alt0 &alt3>;
};
+
+&hdmi {
+ hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
+};
diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
index 76bdbca..caf2707 100644
--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
@@ -74,3 +74,12 @@
&usb {
power-domains = <&power RPI_POWER_DOMAIN_USB>;
};
+
+&v3d {
+ power-domains = <&power RPI_POWER_DOMAIN_V3D>;
+};
+
+&hdmi {
+ power-domains = <&power RPI_POWER_DOMAIN_HDMI>;
+ status = "okay";
+};
diff --git a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
index ff94666..c4743f4 100644
--- a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
+++ b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
@@ -33,3 +33,7 @@
brcm,function = <BCM2835_FSEL_ALT0>;
};
};
+
+&hdmi {
+ hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
+};
diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
index 8aaf193..31cc2f2 100644
--- a/arch/arm/boot/dts/bcm283x.dtsi
+++ b/arch/arm/boot/dts/bcm283x.dtsi
@@ -1,6 +1,7 @@
#include <dt-bindings/pinctrl/bcm2835.h>
#include <dt-bindings/clock/bcm2835.h>
#include <dt-bindings/clock/bcm2835-aux.h>
+#include <dt-bindings/gpio/gpio.h>
#include "skeleton.dtsi"
/* This include file covers the common peripherals and configuration between
@@ -153,6 +154,18 @@
status = "disabled";
};
+ pixelvalve at 7e206000 {
+ compatible = "brcm,bcm2835-pixelvalve0";
+ reg = <0x7e206000 0x100>;
+ interrupts = <2 13>; /* pwa0 */
+ };
+
+ pixelvalve at 7e207000 {
+ compatible = "brcm,bcm2835-pixelvalve1";
+ reg = <0x7e207000 0x100>;
+ interrupts = <2 14>; /* pwa1 */
+ };
+
aux: aux at 0x7e215000 {
compatible = "brcm,bcm2835-aux";
#clock-cells = <1>;
@@ -206,6 +219,12 @@
status = "disabled";
};
+ hvs at 7e400000 {
+ compatible = "brcm,bcm2835-hvs";
+ reg = <0x7e400000 0x6000>;
+ interrupts = <2 1>;
+ };
+
i2c1: i2c at 7e804000 {
compatible = "brcm,bcm2835-i2c";
reg = <0x7e804000 0x1000>;
@@ -226,11 +245,39 @@
status = "disabled";
};
+ pixelvalve at 7e807000 {
+ compatible = "brcm,bcm2835-pixelvalve2";
+ reg = <0x7e807000 0x100>;
+ interrupts = <2 10>; /* pixelvalve */
+ };
+
+ hdmi: hdmi at 7e902000 {
+ compatible = "brcm,bcm2835-hdmi";
+ reg = <0x7e902000 0x600>,
+ <0x7e808000 0x100>;
+ interrupts = <2 8>, <2 9>;
+ ddc = <&i2c2>;
+ clocks = <&clocks BCM2835_PLLH_PIX>,
+ <&clocks BCM2835_CLOCK_HSM>;
+ clock-names = "pixel", "hdmi";
+ status = "disabled";
+ };
+
usb: usb at 7e980000 {
compatible = "brcm,bcm2835-usb";
reg = <0x7e980000 0x10000>;
interrupts = <1 9>;
};
+
+ v3d: v3d at 7ec00000 {
+ compatible = "brcm,bcm2835-v3d";
+ reg = <0x7ec00000 0x1000>;
+ interrupts = <1 10>;
+ };
+
+ vc4: gpu {
+ compatible = "brcm,bcm2835-vc4";
+ };
};
clocks {
--
2.7.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/3] ARM: bcm2835: Add VC4 to the device tree.
2016-03-04 20:32 ` [PATCH 3/3] ARM: bcm2835: Add VC4 to the device tree Eric Anholt
@ 2016-03-08 6:00 ` Stephen Warren
2016-03-08 18:04 ` Eric Anholt
0 siblings, 1 reply; 8+ messages in thread
From: Stephen Warren @ 2016-03-08 6:00 UTC (permalink / raw)
To: linux-arm-kernel
On 03/04/2016 01:32 PM, Eric Anholt wrote:
> VC4 is the GPU (display and 3D) present on the 283x.
> diff --git a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
> +&hdmi {
> + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
> +};
Isn't that the same everywhere? If so, adding it to bcm2835-rpi.dtsi
seems like a better idea; it'd avoid duplicating it everywhere.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 3/3] ARM: bcm2835: Add VC4 to the device tree.
2016-03-08 6:00 ` Stephen Warren
@ 2016-03-08 18:04 ` Eric Anholt
2016-03-08 18:12 ` Stephen Warren
0 siblings, 1 reply; 8+ messages in thread
From: Eric Anholt @ 2016-03-08 18:04 UTC (permalink / raw)
To: linux-arm-kernel
Stephen Warren <swarren@wwwdotorg.org> writes:
> On 03/04/2016 01:32 PM, Eric Anholt wrote:
>> VC4 is the GPU (display and 3D) present on the 283x.
>
>> diff --git a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
>
>> +&hdmi {
>> + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
>> +};
>
> Isn't that the same everywhere? If so, adding it to bcm2835-rpi.dtsi
> seems like a better idea; it'd avoid duplicating it everywhere.
It's not the same everywhere (_HIGH vs _LOW), which is why it's in the
individual files.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 818 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160308/1566a353/attachment.sig>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 3/3] ARM: bcm2835: Add VC4 to the device tree.
2016-03-08 18:04 ` Eric Anholt
@ 2016-03-08 18:12 ` Stephen Warren
0 siblings, 0 replies; 8+ messages in thread
From: Stephen Warren @ 2016-03-08 18:12 UTC (permalink / raw)
To: linux-arm-kernel
On 03/08/2016 11:04 AM, Eric Anholt wrote:
> Stephen Warren <swarren@wwwdotorg.org> writes:
>
>> On 03/04/2016 01:32 PM, Eric Anholt wrote:
>>> VC4 is the GPU (display and 3D) present on the 283x.
>>
>>> diff --git a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
>>
>>> +&hdmi {
>>> + hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
>>> +};
>>
>> Isn't that the same everywhere? If so, adding it to bcm2835-rpi.dtsi
>> seems like a better idea; it'd avoid duplicating it everywhere.
>
> It's not the same everywhere (_HIGH vs _LOW), which is why it's in the
> individual files.
Oh right, it looks OK then. The series,
Acked-by: Stephen Warren <swarren@wwwdotorg.org>
One could reduce the duplication by moving the common block into the
common .dtsi file, but using a board-defined #define for the polarity:
bcm2835-rpi-a-plus.dts:
#define RPI_HDMI_HPD_POLARITY
#include "bcm2835-rpi.dtsi"
bcm2835-rpi.dtsi:
&hdmi {
hpd-gpios = <&gpio 46 RPI_HDMI_HPD_POLARITY>;
};
... although this case is so tiny I'm not sure there's any benefit
trying to unify it like that right now.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/3] dt-bindings: Add binding docs for V3D.
2016-03-04 20:32 ` [PATCH 1/3] dt-bindings: Add binding docs for V3D Eric Anholt
@ 2016-03-17 11:53 ` Rob Herring
0 siblings, 0 replies; 8+ messages in thread
From: Rob Herring @ 2016-03-17 11:53 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Mar 04, 2016 at 12:32:06PM -0800, Eric Anholt wrote:
> This was missed in the upstreaming process.
>
> Signed-off-by: Eric Anholt <eric@anholt.net>
> ---
> Documentation/devicetree/bindings/display/brcm,bcm-vc4.txt | 12 ++++++++++++
> 1 file changed, 12 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 20:32 [PATCH 0/3] ARM: bcm2835: Include VC4 GPU in the DT Eric Anholt
2016-03-04 20:32 ` [PATCH 1/3] dt-bindings: Add binding docs for V3D Eric Anholt
2016-03-17 11:53 ` Rob Herring
2016-03-04 20:32 ` [PATCH 2/3] drm/vc4: Recognize a more specific compatible string " Eric Anholt
2016-03-04 20:32 ` [PATCH 3/3] ARM: bcm2835: Add VC4 to the device tree Eric Anholt
2016-03-08 6:00 ` Stephen Warren
2016-03-08 18:04 ` Eric Anholt
2016-03-08 18:12 ` Stephen Warren
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).