brcm2708: rename all patches from raspberrypi git tree to use 950 prefix
[openwrt/openwrt.git] / target / linux / brcm2708 / patches-4.9 / 950-0160-ARM-bcm2835-dt-Add-the-DSI-module-nodes-and-clocks.patch
1 From fc25cd03ca1c696dacb74d2006c0f176ce800566 Mon Sep 17 00:00:00 2001
2 From: Eric Anholt <eric@anholt.net>
3 Date: Tue, 13 Dec 2016 15:15:10 -0800
4 Subject: [PATCH] ARM: bcm2835: dt: Add the DSI module nodes and clocks.
5
6 The modules stay disabled by default, and if you want to enable DSI
7 you'll need an overlay that connects a panel to it.
8
9 Signed-off-by: Eric Anholt <eric@anholt.net>
10 ---
11 arch/arm/boot/dts/bcm2835-rpi.dtsi | 8 +++++++
12 arch/arm/boot/dts/bcm283x.dtsi | 49 +++++++++++++++++++++++++++++++++++---
13 2 files changed, 54 insertions(+), 3 deletions(-)
14
15 --- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
16 +++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
17 @@ -84,3 +84,11 @@
18 power-domains = <&power RPI_POWER_DOMAIN_HDMI>;
19 status = "okay";
20 };
21 +
22 +&dsi0 {
23 + power-domains = <&power RPI_POWER_DOMAIN_DSI0>;
24 +};
25 +
26 +&dsi1 {
27 + power-domains = <&power RPI_POWER_DOMAIN_DSI1>;
28 +};
29 --- a/arch/arm/boot/dts/bcm283x.dtsi
30 +++ b/arch/arm/boot/dts/bcm283x.dtsi
31 @@ -93,10 +93,13 @@
32 #clock-cells = <1>;
33 reg = <0x7e101000 0x2000>;
34
35 - /* CPRMAN derives everything from the platform's
36 - * oscillator.
37 + /* CPRMAN derives almost everything from the
38 + * platform's oscillator. However, the DSI
39 + * pixel clocks come from the DSI analog PHY.
40 */
41 - clocks = <&clk_osc>;
42 + clocks = <&clk_osc>,
43 + <&dsi0 0>, <&dsi0 1>, <&dsi0 2>,
44 + <&dsi1 0>, <&dsi1 1>, <&dsi1 2>;
45 };
46
47 rng@7e104000 {
48 @@ -188,6 +191,26 @@
49 interrupts = <2 14>; /* pwa1 */
50 };
51
52 + dsi0: dsi@7e209000 {
53 + compatible = "brcm,bcm2835-dsi0";
54 + reg = <0x7e209000 0x78>;
55 + interrupts = <2 4>;
56 + #address-cells = <1>;
57 + #size-cells = <0>;
58 + #clock-cells = <1>;
59 +
60 + clocks = <&clocks BCM2835_PLLA_DSI0>,
61 + <&clocks BCM2835_CLOCK_DSI0E>,
62 + <&clocks BCM2835_CLOCK_DSI0P>;
63 + clock-names = "phy", "escape", "pixel";
64 +
65 + clock-output-names = "dsi0_byte",
66 + "dsi0_ddr2",
67 + "dsi0_ddr";
68 +
69 + status = "disabled";
70 + };
71 +
72 aux: aux@0x7e215000 {
73 compatible = "brcm,bcm2835-aux";
74 #clock-cells = <1>;
75 @@ -247,6 +270,26 @@
76 interrupts = <2 1>;
77 };
78
79 + dsi1: dsi@7e700000 {
80 + compatible = "brcm,bcm2835-dsi1";
81 + reg = <0x7e700000 0x8c>;
82 + interrupts = <2 12>;
83 + #address-cells = <1>;
84 + #size-cells = <0>;
85 + #clock-cells = <1>;
86 +
87 + clocks = <&clocks BCM2835_PLLD_DSI1>,
88 + <&clocks BCM2835_CLOCK_DSI1E>,
89 + <&clocks BCM2835_CLOCK_DSI1P>;
90 + clock-names = "phy", "escape", "pixel";
91 +
92 + clock-output-names = "dsi1_byte",
93 + "dsi1_ddr2",
94 + "dsi1_ddr";
95 +
96 + status = "disabled";
97 + };
98 +
99 i2c1: i2c@7e804000 {
100 compatible = "brcm,bcm2835-i2c";
101 reg = <0x7e804000 0x1000>;