brcm2708: update to latest patches from RPi Foundation
[openwrt/openwrt.git] / target / linux / brcm2708 / patches-4.19 / 950-0185-arm-dt-Add-DT-overlays-for-ADV7282M-OV5647-and-TC358.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0185-arm-dt-Add-DT-overlays-for-ADV7282M-OV5647-and-TC358.patch b/target/linux/brcm2708/patches-4.19/950-0185-arm-dt-Add-DT-overlays-for-ADV7282M-OV5647-and-TC358.patch
deleted file mode 100644 (file)
index a5f0c76..0000000
+++ /dev/null
@@ -1,481 +0,0 @@
-From c3ea5332de058ee7b9139133f2f8103b6dff2478 Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <dave.stevenson@raspberrypi.org>
-Date: Wed, 31 Oct 2018 15:01:59 +0000
-Subject: [PATCH] arm: dt: Add DT overlays for ADV7282M, OV5647, and
- TC358743
-
-DT overlays to setup the above devices via i2c_arm and csi1.
-(This currently does not use the i2c-mux-pinctrl driver to
-dynamically switch the pinctrl)
-
-tc358743 is tc358743 running at a default link frequency
-of 972Mbit/s. This allows up to 1080P50 UYVY on 2 lanes.
-There is a parameter to allow changing the link frequency,
-but the only values supported by the driver are 297000000
-for 594Mbit/s, and 486000000 for 972Mbit/s.
-There is also a parameter to enable 4 lane mode (only
-relevant to Compute Module (1 or 3) csi1).
-
-tc358743-audio overlay enables I2S audio from the TC358743
-to the Pi (SD to GPIO20, SCK to GPIO18, WFS to GPIO19).
-
-ADV7282M is the Analog Devices analogue video to CSI bridge
-chip.
-
-OV5647 is the Pi V1.3 camera module. Currently the driver only
-supports VGA 8bit Bayer and very few controls.
-
-Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
----
- arch/arm/boot/dts/overlays/Makefile           |   4 +
- arch/arm/boot/dts/overlays/README             |  51 ++++++++
- .../boot/dts/overlays/adv7282m-overlay.dts    |  76 ++++++++++++
- arch/arm/boot/dts/overlays/ov5647-overlay.dts |  87 ++++++++++++++
- .../dts/overlays/tc358743-audio-overlay.dts   |  52 ++++++++
- .../boot/dts/overlays/tc358743-overlay.dts    | 112 ++++++++++++++++++
- 6 files changed, 382 insertions(+)
- create mode 100644 arch/arm/boot/dts/overlays/adv7282m-overlay.dts
- create mode 100644 arch/arm/boot/dts/overlays/ov5647-overlay.dts
- create mode 100644 arch/arm/boot/dts/overlays/tc358743-audio-overlay.dts
- create mode 100644 arch/arm/boot/dts/overlays/tc358743-overlay.dts
-
---- a/arch/arm/boot/dts/overlays/Makefile
-+++ b/arch/arm/boot/dts/overlays/Makefile
-@@ -6,6 +6,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
-       ads1015.dtbo \
-       ads1115.dtbo \
-       ads7846.dtbo \
-+      adv7282m.dtbo \
-       akkordion-iqdacplus.dtbo \
-       allo-boss-dac-pcm512x-audio.dtbo \
-       allo-digione.dtbo \
-@@ -81,6 +82,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
-       mmc.dtbo \
-       mpu6050.dtbo \
-       mz61581.dtbo \
-+      ov5647.dtbo \
-       papirus.dtbo \
-       pi3-act-led.dtbo \
-       pi3-disable-bt.dtbo \
-@@ -132,6 +134,8 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
-       spi2-3cs.dtbo \
-       superaudioboard.dtbo \
-       sx150x.dtbo \
-+      tc358743.dtbo \
-+      tc358743-audio.dtbo \
-       tinylcd35.dtbo \
-       uart0.dtbo \
-       uart1.dtbo \
---- a/arch/arm/boot/dts/overlays/README
-+++ b/arch/arm/boot/dts/overlays/README
-@@ -267,6 +267,15 @@ Params: cs                      SPI bus
-         www.kernel.org/doc/Documentation/devicetree/bindings/input/ads7846.txt
-+Name:   adv7282m
-+Info:   Analog Devices ADV7282M analogue video to CSI2 bridge.
-+        Uses Unicam1, which is the standard camera connector on most Pi
-+        variants.
-+Load:   dtoverlay=adv7282m,<param>=<val>
-+Params: i2c_pins_28_29          Use pins 28&29 for the I2C instead of 44&45.
-+                                This is required for Pi B+, 2, 0, and 0W.
-+
-+
- Name:   akkordion-iqdacplus
- Info:   Configures the Digital Dreamtime Akkordion Music Player (based on the
-         OEM IQAudIO DAC+ or DAC Zero module).
-@@ -1284,6 +1293,23 @@ Params: speed                   Display
-         xohms                   Touchpanel sensitivity (X-plate resistance)
-+Name:   ov5647
-+Info:   Omnivision OV5647 camera module.
-+        Uses Unicam 1, which is the standard camera connector on most Pi
-+        variants.
-+Load:   dtoverlay=ov5647,<param>=<val>
-+Params: cam0-pwdn               GPIO used to control the sensor powerdown line.
-+
-+        cam0-led                GPIO used to control the sensor led
-+                                Both these fields should be automatically filled
-+                                in by the firmware to reflect the default GPIO
-+                                configuration of the particular Pi variant in
-+                                use.
-+
-+        i2c_pins_28_29          Use pins 28&29 for the I2C instead of 44&45.
-+                                This is required for Pi B+, 2, 0, and 0W.
-+
-+
- Name:   papirus
- Info:   PaPiRus ePaper Screen by Pi Supply (both HAT and pHAT)
- Load:   dtoverlay=papirus,<param>=<val>
-@@ -1893,6 +1919,31 @@ Params: sx150<x>-<n>-<m>        Enables
-                                 connected.
-+Name:   tc358743
-+Info:   Toshiba TC358743 HDMI to CSI-2 bridge chip.
-+        Uses Unicam 1, which is the standard camera connector on most Pi
-+        variants.
-+Load:   dtoverlay=tc358743,<param>=<val>
-+Params: 4lane                   Use 4 lanes (only applicable to Compute Modules
-+                                CAM1 connector).
-+
-+        link-frequency          Set the link frequency. Only values of 297000000
-+                                (574Mbit/s) and 486000000 (972Mbit/s - default)
-+                                are supported by the driver.
-+
-+        i2c_pins_28_29          Use pins 28&29 for the I2C instead of 44&45.
-+                                This is required for Pi B+, 2, 0, and 0W.
-+
-+
-+Name:   tc358743-audio
-+Info:   Used in combination with the tc358743-fast overlay to route the audio
-+        from the TC358743 over I2S to the Pi.
-+        Wiring is LRCK/WFS to GPIO 19, BCK/SCK to GPIO 18, and DATA/SD to GPIO
-+        20.
-+Load:   dtoverlay=tc358743-audio,<param>=<val>
-+Params: card-name               Override the default, "tc358743", card name.
-+
-+
- Name:   tinylcd35
- Info:   3.5" Color TFT Display by www.tinylcd.com
-         Options: Touch, RTC, keypad
---- /dev/null
-+++ b/arch/arm/boot/dts/overlays/adv7282m-overlay.dts
-@@ -0,0 +1,76 @@
-+// SPDX-License-Identifier: GPL-2.0-only
-+// Definitions for Analog Devices ADV7282-M video to CSI2 bridge on VC I2C bus
-+/dts-v1/;
-+/plugin/;
-+
-+/{
-+      compatible = "brcm,bcm2708";
-+
-+      fragment@0 {
-+              target = <&i2c_vc>;
-+              __overlay__ {
-+                      #address-cells = <1>;
-+                      #size-cells = <0>;
-+                      status = "okay";
-+
-+                      adv7282: adv7282@21 {
-+                              compatible = "adi,adv7282-m";
-+                              reg = <0x21>;
-+                              status = "okay";
-+                              clock-frequency = <24000000>;
-+                              port {
-+                                      adv7282_0: endpoint {
-+                                              remote-endpoint = <&csi1_ep>;
-+                                              clock-lanes = <0>;
-+                                              data-lanes = <1>;
-+                                              link-frequencies =
-+                                                      /bits/ 64 <297000000>;
-+
-+                                              mclk-frequency = <12000000>;
-+                                      };
-+                              };
-+                      };
-+              };
-+      };
-+      fragment@1 {
-+              target = <&csi1>;
-+              __overlay__ {
-+                      #address-cells = <1>;
-+                      #size-cells = <0>;
-+                      status = "okay";
-+
-+                      port {
-+                              #address-cells = <1>;
-+                              #size-cells = <0>;
-+                              csi1_ep: endpoint {
-+                                      remote-endpoint = <&adv7282_0>;
-+                              };
-+                      };
-+              };
-+      };
-+      fragment@2 {
-+              target = <&i2c0_pins>;
-+              __dormant__ {
-+                      brcm,pins = <28 29>;
-+                      brcm,function = <4>; /* alt0 */
-+              };
-+
-+      };
-+      fragment@3 {
-+              target = <&i2c0_pins>;
-+              __overlay__ {
-+                      brcm,pins = <44 45>;
-+                      brcm,function = <5>; /* alt1 */
-+              };
-+      };
-+      fragment@4 {
-+              target = <&i2c_vc>;
-+              __overlay__ {
-+                      status = "okay";
-+              };
-+      };
-+
-+      __overrides__ {
-+              i2c_pins_28_29 = <0>,"+2-3";
-+      };
-+};
---- /dev/null
-+++ b/arch/arm/boot/dts/overlays/ov5647-overlay.dts
-@@ -0,0 +1,87 @@
-+// SPDX-License-Identifier: GPL-2.0-only
-+// Definitions for OV5647 camera module on VC I2C bus
-+/dts-v1/;
-+/plugin/;
-+
-+/{
-+      compatible = "brcm,bcm2708";
-+
-+      fragment@0 {
-+              target = <&i2c_vc>;
-+              __overlay__ {
-+                      #address-cells = <1>;
-+                      #size-cells = <0>;
-+                      status = "okay";
-+
-+                      ov5647: ov5647@36 {
-+                              compatible = "ov5647";
-+                              reg = <0x36>;
-+                              status = "okay";
-+
-+                              pwdn-gpios = <&gpio 41 1>, <&gpio 32 1>;
-+                              clocks = <&ov5647_clk>;
-+
-+                              ov5647_clk: camera-clk {
-+                                      compatible = "fixed-clock";
-+                                      #clock-cells = <0>;
-+                                      clock-frequency = <25000000>;
-+                              };
-+
-+                              port {
-+                                      ov5647_0: endpoint {
-+                                              remote-endpoint = <&csi1_ep>;
-+                                              clock-lanes = <0>;
-+                                              data-lanes = <1 2>;
-+                                              clock-noncontinuous;
-+                                              link-frequencies =
-+                                                      /bits/ 64 <297000000>;
-+                                      };
-+                              };
-+                      };
-+              };
-+      };
-+
-+      fragment@1 {
-+              target = <&csi1>;
-+              __overlay__ {
-+                      #address-cells = <1>;
-+                      #size-cells = <0>;
-+                      status = "okay";
-+
-+                      port {
-+                              #address-cells = <1>;
-+                              #size-cells = <0>;
-+                              csi1_ep: endpoint {
-+                                      remote-endpoint = <&ov5647_0>;
-+                              };
-+                      };
-+              };
-+      };
-+
-+      fragment@2 {
-+              target = <&i2c0_pins>;
-+              __dormant__ {
-+                      brcm,pins = <28 29>;
-+                      brcm,function = <4>; /* alt0 */
-+              };
-+      };
-+      fragment@3 {
-+              target = <&i2c0_pins>;
-+              __overlay__ {
-+                      brcm,pins = <44 45>;
-+                      brcm,function = <5>; /* alt1 */
-+              };
-+      };
-+      fragment@4 {
-+              target = <&i2c_vc>;
-+              __overlay__ {
-+                      status = "okay";
-+              };
-+      };
-+
-+      __overrides__ {
-+              i2c_pins_28_29 = <0>,"+4-5";
-+              cam0-pwdn = <&ov5647>,"pwdn-gpios:4";
-+              cam0-led = <&ov5647>,"pwdn-gpios:16";
-+      };
-+};
---- /dev/null
-+++ b/arch/arm/boot/dts/overlays/tc358743-audio-overlay.dts
-@@ -0,0 +1,52 @@
-+// SPDX-License-Identifier: GPL-2.0-only
-+// Definitions to add I2S audio from the Toshiba TC358743 HDMI to CSI2 bridge.
-+// Requires tc358743 overlay to have been loaded to actually function.
-+/dts-v1/;
-+/plugin/;
-+
-+/ {
-+      compatible = "brcm,bcm2708";
-+
-+      fragment@0 {
-+              target = <&i2s>;
-+              __overlay__ {
-+                      status = "okay";
-+              };
-+      };
-+
-+      fragment@1 {
-+              target-path = "/";
-+              __overlay__ {
-+                      tc358743_codec: tc358743-codec {
-+                              #sound-dai-cells = <0>;
-+                              compatible = "linux,spdif-dir";
-+                              status = "okay";
-+                      };
-+              };
-+      };
-+
-+      fragment@2 {
-+              target = <&sound>;
-+              sound_overlay: __overlay__ {
-+                      compatible = "simple-audio-card";
-+                      simple-audio-card,format = "i2s";
-+                      simple-audio-card,name = "tc358743";
-+                      simple-audio-card,bitclock-master = <&dailink0_slave>;
-+                      simple-audio-card,frame-master = <&dailink0_slave>;
-+                      status = "okay";
-+
-+                      simple-audio-card,cpu {
-+                              sound-dai = <&i2s>;
-+                              dai-tdm-slot-num = <2>;
-+                              dai-tdm-slot-width = <32>;
-+                      };
-+                      dailink0_slave: simple-audio-card,codec {
-+                              sound-dai = <&tc358743_codec>;
-+                      };
-+              };
-+      };
-+
-+      __overrides__ {
-+              card-name = <&sound_overlay>,"simple-audio-card,name";
-+      };
-+};
---- /dev/null
-+++ b/arch/arm/boot/dts/overlays/tc358743-overlay.dts
-@@ -0,0 +1,112 @@
-+// SPDX-License-Identifier: GPL-2.0-only
-+// Definitions for Toshiba TC358743 HDMI to CSI2 bridge on VC I2C bus
-+/dts-v1/;
-+/plugin/;
-+
-+/{
-+      compatible = "brcm,bcm2708";
-+
-+      fragment@0 {
-+              target = <&i2c_vc>;
-+              __overlay__ {
-+                      #address-cells = <1>;
-+                      #size-cells = <0>;
-+                      status = "okay";
-+
-+                      tc358743@0f {
-+                              compatible = "toshiba,tc358743";
-+                              reg = <0x0f>;
-+                              status = "okay";
-+
-+                              clocks = <&tc358743_clk>;
-+                              clock-names = "refclk";
-+
-+                              tc358743_clk: bridge-clk {
-+                                      compatible = "fixed-clock";
-+                                      #clock-cells = <0>;
-+                                      clock-frequency = <27000000>;
-+                              };
-+
-+                              port {
-+                                      tc358743: endpoint {
-+                                              remote-endpoint = <&csi1_ep>;
-+                                              clock-lanes = <0>;
-+                                              clock-noncontinuous;
-+                                              link-frequencies =
-+                                                      /bits/ 64 <486000000>;
-+                                      };
-+                              };
-+                      };
-+              };
-+      };
-+
-+      fragment@1 {
-+              target = <&csi1>;
-+              __overlay__ {
-+                      #address-cells = <1>;
-+                      #size-cells = <0>;
-+                      status = "okay";
-+
-+                      port {
-+                              #address-cells = <1>;
-+                              #size-cells = <0>;
-+                              csi1_ep: endpoint {
-+                                      remote-endpoint = <&tc358743>;
-+                              };
-+                      };
-+              };
-+      };
-+
-+      fragment@2 {
-+              target = <&i2c_vc>;
-+              __overlay__ {
-+                      tc358743@0f {
-+                              port {
-+                                      endpoint {
-+                                              data-lanes = <1 2>;
-+                                      };
-+                              };
-+                      };
-+              };
-+      };
-+
-+      fragment@3 {
-+              target = <&i2c_vc>;
-+              __dormant__ {
-+                      tc358743@0f {
-+                              port {
-+                                      endpoint {
-+                                              data-lanes = <1 2 3 4>;
-+                                      };
-+                              };
-+                      };
-+              };
-+      };
-+
-+      fragment@4 {
-+              target = <&i2c0_pins>;
-+              __dormant__ {
-+                      brcm,pins = <28 29>;
-+                      brcm,function = <4>; /* alt0 */
-+              };
-+      };
-+      fragment@5 {
-+              target = <&i2c0_pins>;
-+              __overlay__ {
-+                      brcm,pins = <44 45>;
-+                      brcm,function = <5>; /* alt1 */
-+              };
-+      };
-+      fragment@6 {
-+              target = <&i2c_vc>;
-+              __overlay__ {
-+                      status = "okay";
-+              };
-+      };
-+
-+      __overrides__ {
-+              i2c_pins_28_29 = <0>,"+4-5";
-+              4lane = <0>, "-2+3";
-+              link-frequency = <&tc358743>,"link-frequencies#0";
-+      };
-+};