mirror of
https://github.com/Fishwaldo/build.git
synced 2025-07-24 05:48:41 +00:00
* Port ANX78xx Pinebook / Teres LCD panel driver from 5.6-rc1 * Move Teres U-boot to 2020.01 ... it boots with enabled screen now. * U-boot 2020 needs some extra Pyton utils when packing sunxi bootloader. Adding to native and Docker build dependencies. * Add Pinebook lid wakeup * python3-dev is also needed dependency
208 lines
4.9 KiB
Diff
208 lines
4.9 KiB
Diff
The anx6345 is an ultra-low power DisplayPort/eDP transmitter designed
|
|
for portable devices.
|
|
|
|
Add a binding document for it.
|
|
|
|
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
|
|
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
|
|
Reviewed-by: Rob Herring <robh@kernel.org>
|
|
Signed-off-by: Torsten Duwe <duwe@suse.de>
|
|
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
---
|
|
.../bindings/display/bridge/anx6345.yaml | 102 ++++++++++++++++++++++
|
|
1 file changed, 102 insertions(+)
|
|
create mode 100644 Documentation/devicetree/bindings/display/bridge/anx6345.yaml
|
|
|
|
diff --git a/Documentation/devicetree/bindings/display/bridge/anx6345.yaml b/Documentation/devicetree/bindings/display/bridge/anx6345.yaml
|
|
new file mode 100644
|
|
index 000000000000..094e8e8a5faa
|
|
--- /dev/null
|
|
+++ b/Documentation/devicetree/bindings/display/bridge/anx6345.yaml
|
|
@@ -0,0 +1,102 @@
|
|
+# SPDX-License-Identifier: GPL-2.0
|
|
+%YAML 1.2
|
|
+---
|
|
+$id: http://devicetree.org/schemas/display/bridge/anx6345.yaml#
|
|
+$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
+
|
|
+title: Analogix ANX6345 eDP Transmitter Device Tree Bindings
|
|
+
|
|
+maintainers:
|
|
+ - Torsten Duwe <duwe@lst.de>
|
|
+
|
|
+description: |
|
|
+ The ANX6345 is an ultra-low power Full-HD eDP transmitter designed for
|
|
+ portable devices.
|
|
+
|
|
+properties:
|
|
+ compatible:
|
|
+ const: analogix,anx6345
|
|
+
|
|
+ reg:
|
|
+ maxItems: 1
|
|
+ description: base I2C address of the device
|
|
+
|
|
+ reset-gpios:
|
|
+ maxItems: 1
|
|
+ description: GPIO connected to active low reset
|
|
+
|
|
+ dvdd12-supply:
|
|
+ maxItems: 1
|
|
+ description: Regulator for 1.2V digital core power.
|
|
+
|
|
+ dvdd25-supply:
|
|
+ maxItems: 1
|
|
+ description: Regulator for 2.5V digital core power.
|
|
+
|
|
+ ports:
|
|
+ type: object
|
|
+
|
|
+ properties:
|
|
+ port@0:
|
|
+ type: object
|
|
+ description: |
|
|
+ Video port for LVTTL input
|
|
+
|
|
+ port@1:
|
|
+ type: object
|
|
+ description: |
|
|
+ Video port for eDP output (panel or connector).
|
|
+ May be omitted if EDID works reliably.
|
|
+
|
|
+ required:
|
|
+ - port@0
|
|
+
|
|
+required:
|
|
+ - compatible
|
|
+ - reg
|
|
+ - reset-gpios
|
|
+ - dvdd12-supply
|
|
+ - dvdd25-supply
|
|
+ - ports
|
|
+
|
|
+additionalProperties: false
|
|
+
|
|
+examples:
|
|
+ - |
|
|
+ i2c0 {
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+
|
|
+ anx6345: anx6345@38 {
|
|
+ compatible = "analogix,anx6345";
|
|
+ reg = <0x38>;
|
|
+ reset-gpios = <&pio42 1 /* GPIO_ACTIVE_LOW */>;
|
|
+ dvdd25-supply = <®_dldo2>;
|
|
+ dvdd12-supply = <®_fldo1>;
|
|
+
|
|
+ ports {
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+
|
|
+ anx6345_in: port@0 {
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+ reg = <0>;
|
|
+ anx6345_in_tcon0: endpoint@0 {
|
|
+ reg = <0>;
|
|
+ remote-endpoint = <&tcon0_out_anx6345>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ anx6345_out: port@1 {
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+ reg = <1>;
|
|
+ anx6345_out_panel: endpoint@0 {
|
|
+ reg = <0>;
|
|
+ remote-endpoint = <&panel_in_edp>;
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+ };
|
|
|
|
|
|
Teres-I has an anx6345 bridge connected to the RGB666 LCD output, and
|
|
the I2C controlling signals are connected to I2C0 bus.
|
|
|
|
Enable it in the device tree, and enable the display engine, video mixer
|
|
and tcon0 as well.
|
|
|
|
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
|
|
Signed-off-by: Torsten Duwe <duwe@suse.de>
|
|
---
|
|
.../boot/dts/allwinner/sun50i-a64-teres-i.dts | 45 ++++++++++++++++++++--
|
|
1 file changed, 41 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts
|
|
index 1069e7012c9c..970415106dcf 100644
|
|
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts
|
|
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts
|
|
@@ -100,18 +100,41 @@
|
|
status = "okay";
|
|
};
|
|
|
|
+&de {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
&ehci1 {
|
|
status = "okay";
|
|
};
|
|
|
|
|
|
-/* The ANX6345 eDP-bridge is on i2c0. There is no linux (mainline)
|
|
- * driver for this chip at the moment, the bootloader initializes it.
|
|
- * However it can be accessed with the i2c-dev driver from user space.
|
|
- */
|
|
&i2c0 {
|
|
clock-frequency = <100000>;
|
|
status = "okay";
|
|
+
|
|
+ anx6345: anx6345@38 {
|
|
+ compatible = "analogix,anx6345";
|
|
+ reg = <0x38>;
|
|
+ reset-gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */
|
|
+ dvdd25-supply = <®_dldo2>;
|
|
+ dvdd12-supply = <®_dldo3>;
|
|
+
|
|
+ ports {
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+
|
|
+ port@0 {
|
|
+ anx6345_in: endpoint {
|
|
+ remote-endpoint = <&tcon0_out_anx6345>;
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+};
|
|
+
|
|
+&mixer0 {
|
|
+ status = "okay";
|
|
};
|
|
|
|
&mmc0 {
|
|
@@ -319,6 +342,20 @@
|
|
status = "okay";
|
|
};
|
|
|
|
+&tcon0 {
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&lcd_rgb666_pins>;
|
|
+
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&tcon0_out {
|
|
+ tcon0_out_anx6345: endpoint@0 {
|
|
+ reg = <0>;
|
|
+ remote-endpoint = <&anx6345_in>;
|
|
+ };
|
|
+};
|
|
+
|
|
&uart0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&uart0_pb_pins>;
|