mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-29 10:08:59 +00:00
7d7aa2fd92
This change makes the names of Broadcom targets consistent by using the common notation based on SoC/CPU ID (which is used internally anyway), bcmXXXX instead of brcmXXXX. This is even used for target TITLE in make menuconfig already, only the short target name used brcm so far. Despite, since subtargets range from bcm2708 to bcm2711, it seems appropriate to use bcm27xx instead of bcm2708 (again, as already done for BOARDNAME). This also renames the packages brcm2708-userland and brcm2708-gpu-fw. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Acked-by: Álvaro Fernández Rojas <noltari@gmail.com>
482 lines
12 KiB
Diff
482 lines
12 KiB
Diff
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";
|
|
+ };
|
|
+};
|