Odroid-c2: Moving to 4.14.36 kernel

This commit is contained in:
Ryan Bray 2018-08-23 13:49:47 -06:00 committed by Pascal Vizeli
parent ebf84216e9
commit 514c59796f
43 changed files with 1025 additions and 810 deletions

View File

@ -0,0 +1,2 @@
kernel patches from
https://github.com/superna9999/meta-meson/tree/sumo/recipes-kernel/linux/linux-yocto-meson64-4.14

View File

@ -1,4 +1,4 @@
From c52264498971d43425ea4ce819b45fe3421aca73 Mon Sep 17 00:00:00 2001
From f802405c9aba2fb198d55fc010e7336f155c2713 Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Wed, 2 Aug 2017 16:11:23 +0200
Subject: [PATCH 01/39] ARM64: dts: meson-gxm: Add support for Khadas VIM2
@ -22,7 +22,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
diff --git a/Documentation/devicetree/bindings/arm/amlogic.txt b/Documentation/devicetree/bindings/arm/amlogic.txt
index 4e4bc0bae597..a44599739746 100644
index 4e4bc0b..a445997 100644
--- a/Documentation/devicetree/bindings/arm/amlogic.txt
+++ b/Documentation/devicetree/bindings/arm/amlogic.txt
@@ -71,6 +71,7 @@ Board compatible values (alphabetically, grouped by SoC):
@ -34,7 +34,7 @@ index 4e4bc0bae597..a44599739746 100644
- "nexbox,a1" (Meson gxm s912)
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
index 543416b8dff5..747bcc3834b3 100644
index 543416b..747bcc3 100644
--- a/arch/arm64/boot/dts/amlogic/Makefile
+++ b/arch/arm64/boot/dts/amlogic/Makefile
@@ -16,6 +16,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb
@ -47,7 +47,7 @@ index 543416b8dff5..747bcc3834b3 100644
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-q201.dtb
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
new file mode 100644
index 000000000000..32c138ec0e58
index 0000000..32c138e
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
@@ -0,0 +1,399 @@
@ -451,5 +451,5 @@ index 000000000000..32c138ec0e58
+ vref-supply = <&vddio_ao18>;
+};
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From 9fcba25adf46f3aeee0393dc9a3d93d1be76b718 Mon Sep 17 00:00:00 2001
From 841ec7b8484dee021a15fdc187cdadc1c89220f2 Mon Sep 17 00:00:00 2001
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date: Thu, 12 Jan 2017 01:38:26 +0100
Subject: [PATCH 02/39] ARM64: dts: meson-gxbb: allow child devices on the USB
@ -15,7 +15,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
1 file changed, 4 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
index af834cdbba79..7d38d55869c9 100644
index af834cd..7d38d55 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
@@ -73,6 +73,8 @@
@ -37,5 +37,5 @@ index af834cdbba79..7d38d55869c9 100644
interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From f218b0bab1ee8ab25c24a42c342bf569f6eb2d72 Mon Sep 17 00:00:00 2001
From 564bc89139a6bf0833cef64993dfe3fe2784c6a8 Mon Sep 17 00:00:00 2001
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date: Thu, 12 Jan 2017 01:39:20 +0100
Subject: [PATCH 03/39] ARM64: dts: meson-gxbb-odroidc2: take USB hub out of
@ -14,7 +14,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
1 file changed, 7 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
index 08b7bb7f5b74..c3a7b7f62da2 100644
index 08b7bb7..c3a7b7f 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
@@ -310,4 +310,11 @@
@ -30,5 +30,5 @@ index 08b7bb7f5b74..c3a7b7f62da2 100644
+ };
};
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From 83e2a4c8c1de8741e10c89f360910b547e943561 Mon Sep 17 00:00:00 2001
From 563fa3aaad2752079c8ee05819bf9923370f39aa Mon Sep 17 00:00:00 2001
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date: Sat, 26 Nov 2016 15:56:32 +0100
Subject: [PATCH 04/39] phy: meson: add USB3 PHY support for Meson GXL
@ -20,7 +20,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
create mode 100644 drivers/phy/amlogic/phy-meson-gxl-usb3.c
diff --git a/drivers/phy/amlogic/Kconfig b/drivers/phy/amlogic/Kconfig
index cb8f4501652b..5d11a3e698d4 100644
index cb8f450..5d11a3e 100644
--- a/drivers/phy/amlogic/Kconfig
+++ b/drivers/phy/amlogic/Kconfig
@@ -13,6 +13,19 @@ config PHY_MESON8B_USB2
@ -44,7 +44,7 @@ index cb8f4501652b..5d11a3e698d4 100644
tristate "Meson GXL and GXM USB2 PHY drivers"
default ARCH_MESON
diff --git a/drivers/phy/amlogic/Makefile b/drivers/phy/amlogic/Makefile
index cfdc98715c30..4fd8848c194d 100644
index cfdc987..4fd8848 100644
--- a/drivers/phy/amlogic/Makefile
+++ b/drivers/phy/amlogic/Makefile
@@ -1,2 +1,3 @@
@ -53,7 +53,7 @@ index cfdc98715c30..4fd8848c194d 100644
+obj-$(CONFIG_PHY_MESON_GXL_USB3) += phy-meson-gxl-usb3.o
diff --git a/drivers/phy/amlogic/phy-meson-gxl-usb3.c b/drivers/phy/amlogic/phy-meson-gxl-usb3.c
new file mode 100644
index 000000000000..9af5222fe754
index 0000000..9af5222
--- /dev/null
+++ b/drivers/phy/amlogic/phy-meson-gxl-usb3.c
@@ -0,0 +1,198 @@
@ -256,5 +256,5 @@ index 000000000000..9af5222fe754
+MODULE_DESCRIPTION("Meson GXL USB3 PHY driver");
+MODULE_LICENSE("GPL");
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From d17f86f9c990960627fbcb697b120c852ce1e7c4 Mon Sep 17 00:00:00 2001
From 8dca632003156c7a4f2eb6238b6e299f3df03c55 Mon Sep 17 00:00:00 2001
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date: Tue, 10 Jan 2017 18:59:43 +0100
Subject: [PATCH 05/39] usb: host: add a generic platform USB roothub driver
@ -39,7 +39,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
diff --git a/Documentation/devicetree/bindings/usb/usb-roothub.txt b/Documentation/devicetree/bindings/usb/usb-roothub.txt
new file mode 100644
index 000000000000..23b24b68d74d
index 0000000..23b24b6
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/usb-roothub.txt
@@ -0,0 +1,46 @@
@ -90,10 +90,10 @@ index 000000000000..23b24b68d74d
+ };
+ }
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index fa5692dec832..b8b05c786b2a 100644
index 92b1972..598ca56 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -805,6 +805,9 @@ config USB_HCD_SSB
@@ -797,6 +797,9 @@ config USB_HCD_SSB
If unsure, say N.
@ -104,7 +104,7 @@ index fa5692dec832..b8b05c786b2a 100644
bool "HCD test mode support"
---help---
diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile
index 4ab2689c8952..873ebd9250d3 100644
index 4ab2689..873ebd9 100644
--- a/drivers/usb/host/Makefile
+++ b/drivers/usb/host/Makefile
@@ -30,6 +30,8 @@ obj-$(CONFIG_USB_WHCI_HCD) += whci/
@ -118,7 +118,7 @@ index 4ab2689c8952..873ebd9250d3 100644
obj-$(CONFIG_USB_EHCI_HCD_PLATFORM) += ehci-platform.o
diff --git a/drivers/usb/host/platform-roothub.c b/drivers/usb/host/platform-roothub.c
new file mode 100644
index 000000000000..84837e42b006
index 0000000..84837e4
--- /dev/null
+++ b/drivers/usb/host/platform-roothub.c
@@ -0,0 +1,146 @@
@ -270,7 +270,7 @@ index 000000000000..84837e42b006
+EXPORT_SYMBOL_GPL(platform_roothub_power_off);
diff --git a/drivers/usb/host/platform-roothub.h b/drivers/usb/host/platform-roothub.h
new file mode 100644
index 000000000000..bde0bf299e3b
index 0000000..bde0bf2
--- /dev/null
+++ b/drivers/usb/host/platform-roothub.h
@@ -0,0 +1,14 @@
@ -289,5 +289,5 @@ index 000000000000..bde0bf299e3b
+
+#endif /* USB_HOST_PLATFORM_ROOTHUB_H */
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From 42cde289520dd631f37cf23b86c3aa3d2c9a92e9 Mon Sep 17 00:00:00 2001
From 55ba20ef5868e2a1fc3cefe264539affe55ef6b7 Mon Sep 17 00:00:00 2001
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date: Wed, 11 Jan 2017 11:34:59 +0100
Subject: [PATCH 06/39] usb: host: xhci: plat: integrate the platform-roothub
@ -23,10 +23,10 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
4 files changed, 36 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/usb/usb-xhci.txt b/Documentation/devicetree/bindings/usb/usb-xhci.txt
index 2d80b60eeabe..31b4f681e9ca 100644
index 7a69b8b..d0d8a67c 100644
--- a/Documentation/devicetree/bindings/usb/usb-xhci.txt
+++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt
@@ -29,6 +29,13 @@ Optional properties:
@@ -30,6 +30,13 @@ Optional properties:
- usb3-lpm-capable: determines if platform is USB3 LPM capable
- quirk-broken-port-ped: set if the controller has broken port disable mechanism
@ -41,7 +41,7 @@ index 2d80b60eeabe..31b4f681e9ca 100644
usb@f0931000 {
compatible = "generic-xhci";
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index b8b05c786b2a..3bdc49e89c0f 100644
index 598ca56..8c3b11f 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -36,6 +36,7 @@ config USB_XHCI_PCI
@ -53,7 +53,7 @@ index b8b05c786b2a..3bdc49e89c0f 100644
Adds an xHCI host driver for a generic platform device, which
provides a memory space and an irq.
diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
index 1cb6eaef4ae1..a80d5853ebfe 100644
index 1cb6eae..a80d585 100644
--- a/drivers/usb/host/xhci-plat.c
+++ b/drivers/usb/host/xhci-plat.c
@@ -281,10 +281,20 @@ static int xhci_plat_probe(struct platform_device *pdev)
@ -121,7 +121,7 @@ index 1cb6eaef4ae1..a80d5853ebfe 100644
if (ret)
return ret;
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index 2b48aa4f6b76..f340aa0b8d6a 100644
index 2eaf6e1..552834c 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -34,6 +34,8 @@
@ -133,7 +133,7 @@ index 2b48aa4f6b76..f340aa0b8d6a 100644
/* xHCI PCI Configuration Registers */
#define XHCI_SBRN_OFFSET (0x60)
@@ -1734,6 +1736,7 @@ struct xhci_hcd {
@@ -1735,6 +1737,7 @@ struct xhci_hcd {
int msix_count;
/* optional clock */
struct clk *clk;
@ -142,5 +142,5 @@ index 2b48aa4f6b76..f340aa0b8d6a 100644
struct xhci_device_context_array *dcbaa;
struct xhci_ring *cmd_ring;
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From 272e257562d8b2d2da37ac2f980ca7eb84709b99 Mon Sep 17 00:00:00 2001
From 547f8ce14bfc3d315dc8b64d0e2eff0c7be897d2 Mon Sep 17 00:00:00 2001
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date: Sun, 20 Nov 2016 00:23:52 +0100
Subject: [PATCH 07/39] ARM64: dts: meson-gxl: add USB host support
@ -25,7 +25,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
1 file changed, 59 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
index fb8d76a17bc5..68ea67aef0dd 100644
index fb8d76a..68ea67a 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
@@ -57,6 +57,65 @@
@ -95,5 +95,5 @@ index fb8d76a17bc5..68ea67aef0dd 100644
&ethmac {
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From f0fb81ad729f1ab935f5d6c2b3a410426a61f0a8 Mon Sep 17 00:00:00 2001
From 48d4988f2b3b93a6f17c0d1d5e6d932664bc0c74 Mon Sep 17 00:00:00 2001
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date: Sat, 26 Nov 2016 00:17:22 +0100
Subject: [PATCH 08/39] ARM64: dts: meson-gxm: add GXM specific USB host
@ -17,7 +17,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
1 file changed, 17 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxm.dtsi
index 19a798d2ae2f..5e4cb907e6b4 100644
index 19a798d..5e4cb90 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxm.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm.dtsi
@@ -121,6 +121,23 @@
@ -45,5 +45,5 @@ index 19a798d2ae2f..5e4cb907e6b4 100644
compatible = "amlogic,meson-gxm-saradc", "amlogic,meson-saradc";
};
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From ed5150180cd8751dca686737dd82b051d1fb28e8 Mon Sep 17 00:00:00 2001
From 1e5a4ee949281c47a03f5cee31226d803d396f48 Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Thu, 13 Jul 2017 15:02:33 +0200
Subject: [PATCH 09/39] ARM64: dts: meson-gx: Enable USB on GXL and GXM boards
@ -17,7 +17,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
9 files changed, 36 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
index 4157987f4a3d..7ce9a6267270 100644
index 4157987..7ce9a62 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
@@ -236,3 +236,7 @@
@ -29,7 +29,7 @@ index 4157987f4a3d..7ce9a6267270 100644
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts
index 977b4240f3c1..6f2cd8e82dbc 100644
index 977b424..6f2cd8e 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts
@@ -163,3 +163,7 @@
@ -41,7 +41,7 @@ index 977b4240f3c1..6f2cd8e82dbc 100644
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
index edc512ad0bac..89a5fd998262 100644
index edc512a..89a5fd9 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
@@ -198,3 +198,7 @@
@ -53,7 +53,7 @@ index edc512ad0bac..89a5fd998262 100644
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
index 64c54c92e214..4035891890c7 100644
index 64c54c9..4035891 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
@@ -242,3 +242,7 @@
@ -65,7 +65,7 @@ index 64c54c92e214..4035891890c7 100644
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts
index 1b8f32867aa1..6338e6c082f5 100644
index 1b8f328..6338e6c 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts
@@ -251,3 +251,7 @@
@ -77,7 +77,7 @@ index 1b8f32867aa1..6338e6c082f5 100644
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi
index 129af9068814..7a1c20eb319f 100644
index 129af90..7a1c20e 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi
@@ -173,3 +173,7 @@
@ -89,7 +89,7 @@ index 129af9068814..7a1c20eb319f 100644
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
index 32c138ec0e58..103575a74541 100644
index 32c138e..103575a 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
@@ -397,3 +397,7 @@
@ -101,7 +101,7 @@ index 32c138ec0e58..103575a74541 100644
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
index 22c697732f66..cfde24623a7d 100644
index 22c6977..cfde246 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
@@ -215,3 +215,7 @@
@ -113,7 +113,7 @@ index 22c697732f66..cfde24623a7d 100644
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
index 470f72bb863c..9837a48e9297 100644
index 470f72b..9837a48 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
@@ -237,3 +237,7 @@
@ -125,5 +125,5 @@ index 470f72bb863c..9837a48e9297 100644
+ status = "okay";
+};
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From ab179cc738b610a76516672e2dfb863c58222509 Mon Sep 17 00:00:00 2001
From eb29dbaf90e217978d8abfab1912b11020825e28 Mon Sep 17 00:00:00 2001
From: Jerome Brunet <jbrunet@baylibre.com>
Date: Mon, 13 Nov 2017 12:02:59 +0100
Subject: [PATCH 10/39] ARM64: defconfig: add CONFIG_MESON_EFUSE
@ -12,7 +12,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 34480e9af2e7..3cdfc7490707 100644
index 34480e9..3cdfc74 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -541,6 +541,7 @@ CONFIG_PHY_XGENE=y
@ -24,5 +24,5 @@ index 34480e9af2e7..3cdfc7490707 100644
CONFIG_OPTEE=y
CONFIG_ARM_SCPI_PROTOCOL=y
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From f7b6962229d6142f11396b8e55b7736258aa3aae Mon Sep 17 00:00:00 2001
From 175366cb9e77fe54e6949f6599c0900cf0980b26 Mon Sep 17 00:00:00 2001
From: Jerome Brunet <jbrunet@baylibre.com>
Date: Mon, 13 Nov 2017 12:09:40 +0100
Subject: [PATCH 11/39] ARM64: defconfig: enable CEC support
@ -12,7 +12,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
1 file changed, 2 insertions(+)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 3cdfc7490707..944b93b1c026 100644
index 3cdfc74..944b93b 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -350,6 +350,7 @@ CONFIG_MEDIA_SUPPORT=m
@ -32,5 +32,5 @@ index 3cdfc7490707..944b93b1c026 100644
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_EXYNOS=m
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From 1168b4f47f7b7d73729a2981c2419ee38f8e52af Mon Sep 17 00:00:00 2001
From c71be51a7778a6aa6b784dd0edc57951acf63ef2 Mon Sep 17 00:00:00 2001
From: Jerome Brunet <jbrunet@baylibre.com>
Date: Mon, 13 Nov 2017 12:11:41 +0100
Subject: [PATCH 12/39] ARM64: defconfig: enable CONFIG_VIDEO_MESON_AO_CEC
@ -12,7 +12,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 944b93b1c026..fdf94cbd56a2 100644
index 944b93b..fdf94cb 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -366,6 +366,7 @@ CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC=m
@ -24,5 +24,5 @@ index 944b93b1c026..fdf94cbd56a2 100644
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_EXYNOS=m
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From 139e2ed6d6b400678068394a8d059d865fba4dfa Mon Sep 17 00:00:00 2001
From 94fb1910e76e39cc910fb5b5a528712f4135891e Mon Sep 17 00:00:00 2001
From: Jerome Brunet <jbrunet@baylibre.com>
Date: Mon, 13 Nov 2017 12:15:18 +0100
Subject: [PATCH 13/39] ARM64: defconfig: enable CONFIG_DRM_DW_HDMI_CEC
@ -12,7 +12,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index fdf94cbd56a2..dcf10903f634 100644
index fdf94cb..dcf1090 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -388,6 +388,7 @@ CONFIG_DRM_RCAR_VSP=y
@ -24,5 +24,5 @@ index fdf94cbd56a2..dcf10903f634 100644
CONFIG_DRM_HISI_KIRIN=m
CONFIG_DRM_MESON=m
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From ff5628efddbf8a9e80c77dee968d4ce920d08681 Mon Sep 17 00:00:00 2001
From 9bc414d9e18f8c9d39be44165b4926e2b2cdc1d9 Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Mon, 16 Oct 2017 17:29:33 +0200
Subject: [PATCH 14/39] clk: meson: gxbb: Add VPU and VAPB clockids
@ -12,7 +12,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/drivers/clk/meson/gxbb.h b/drivers/clk/meson/gxbb.h
index 5b1d4b374d1c..aee6fbba2004 100644
index 5b1d4b3..aee6fbb 100644
--- a/drivers/clk/meson/gxbb.h
+++ b/drivers/clk/meson/gxbb.h
@@ -190,8 +190,12 @@
@ -30,7 +30,7 @@ index 5b1d4b374d1c..aee6fbba2004 100644
/* include the CLKIDs that have been made part of the DT binding */
#include <dt-bindings/clock/gxbb-clkc.h>
diff --git a/include/dt-bindings/clock/gxbb-clkc.h b/include/dt-bindings/clock/gxbb-clkc.h
index 8c92528aa48a..8ba99a5e3fd3 100644
index 8c92528..8ba99a5 100644
--- a/include/dt-bindings/clock/gxbb-clkc.h
+++ b/include/dt-bindings/clock/gxbb-clkc.h
@@ -114,5 +114,16 @@
@ -51,5 +51,5 @@ index 8c92528aa48a..8ba99a5e3fd3 100644
#endif /* __GXBB_CLKC_H */
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From afe130e27bfeeb1ee66dfb55a10e5734bb9f67ae Mon Sep 17 00:00:00 2001
From a3b8b7bfd775fa521425c72856b4394fb6fec518 Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Fri, 13 Oct 2017 14:38:37 +0200
Subject: [PATCH 15/39] clk: meson: gxbb: Add VPU and VAPB clocks data
@ -15,7 +15,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
1 file changed, 292 insertions(+)
diff --git a/drivers/clk/meson/gxbb.c b/drivers/clk/meson/gxbb.c
index b2d1e8ed7152..a71374464c92 100644
index 92168348..86cb5af 100644
--- a/drivers/clk/meson/gxbb.c
+++ b/drivers/clk/meson/gxbb.c
@@ -1131,6 +1131,253 @@ static struct clk_gate gxbb_sd_emmc_c_clk0 = {
@ -353,5 +353,5 @@ index b2d1e8ed7152..a71374464c92 100644
static struct meson_clk_audio_divider *const gxbb_audio_dividers[] = {
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From b6160d5b1dbae48dc0563de7b2f27c2b7ad8ac6c Mon Sep 17 00:00:00 2001
From fc742b3d9f1b79f9e3e695f0e4bfc6a35c7ed7e3 Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Mon, 16 Oct 2017 15:35:00 +0200
Subject: [PATCH 16/39] drm/meson: dw_hdmi: Add support for an optional
@ -14,7 +14,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
1 file changed, 13 insertions(+)
diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meson/meson_dw_hdmi.c
index cef414466f9f..17de3afd98f6 100644
index cef4144..17de3af 100644
--- a/drivers/gpu/drm/meson/meson_dw_hdmi.c
+++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c
@@ -23,6 +23,7 @@
@ -52,5 +52,5 @@ index cef414466f9f..17de3afd98f6 100644
"hdmitx_apb");
if (IS_ERR(meson_dw_hdmi->hdmitx_apb)) {
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From c07db1483d8316018d64d64bdf34a8736251fb2e Mon Sep 17 00:00:00 2001
From 253dbcb48f94e172873878262d19338bcc9aa108 Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Mon, 16 Oct 2017 15:34:21 +0200
Subject: [PATCH 17/39] drm/meson: Add missing VPU init
@ -12,7 +12,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
2 files changed, 13 insertions(+)
diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
index 7742c7d81ed8..19a0d8df412c 100644
index 7742c7d..19a0d8d 100644
--- a/drivers/gpu/drm/meson/meson_drv.c
+++ b/drivers/gpu/drm/meson/meson_drv.c
@@ -150,6 +150,14 @@ static struct regmap_config meson_regmap_config = {
@ -39,7 +39,7 @@ index 7742c7d81ed8..19a0d8df412c 100644
meson_vpp_init(priv);
meson_viu_init(priv);
diff --git a/drivers/gpu/drm/meson/meson_registers.h b/drivers/gpu/drm/meson/meson_registers.h
index 284738196af9..bca87143e548 100644
index 2847381..bca8714 100644
--- a/drivers/gpu/drm/meson/meson_registers.h
+++ b/drivers/gpu/drm/meson/meson_registers.h
@@ -1363,6 +1363,10 @@
@ -54,5 +54,5 @@ index 284738196af9..bca87143e548 100644
/* osd super scale */
#define OSDSR_HV_SIZEIN 0x3130
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From 9b0cb5399f5a95a194a9fd1a9c3d90e2fb885244 Mon Sep 17 00:00:00 2001
From 0689a4eaecae2831fe2cb614e102bb4ef43484a4 Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Fri, 13 Oct 2017 14:05:01 +0200
Subject: [PATCH 18/39] reset: meson: add level reset support for GX SoC family
@ -16,7 +16,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
1 file changed, 58 insertions(+), 4 deletions(-)
diff --git a/drivers/reset/reset-meson.c b/drivers/reset/reset-meson.c
index a8b915eb8b58..f3b9d6989267 100644
index a8b915e..f3b9d69 100644
--- a/drivers/reset/reset-meson.c
+++ b/drivers/reset/reset-meson.c
@@ -62,13 +62,16 @@
@ -128,5 +128,5 @@ index a8b915eb8b58..f3b9d6989267 100644
return devm_reset_controller_register(&pdev->dev, &data->rcdev);
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From 445dd401634627029c36d44372dfec0a0977c2ff Mon Sep 17 00:00:00 2001
From 58d5e73046ca5c28eb835c1a98f936193de5d4d0 Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Fri, 13 Oct 2017 17:05:00 +0200
Subject: [PATCH 19/39] soc: amlogic: add Meson GX VPU Domains driver
@ -15,7 +15,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
create mode 100644 drivers/soc/amlogic/meson-gx-pwrc-vpu.c
diff --git a/drivers/soc/amlogic/Kconfig b/drivers/soc/amlogic/Kconfig
index 22acf064531f..c2c0513b18ff 100644
index 22acf06..c2c0513 100644
--- a/drivers/soc/amlogic/Kconfig
+++ b/drivers/soc/amlogic/Kconfig
@@ -8,5 +8,15 @@ config MESON_GX_SOCINFO
@ -35,7 +35,7 @@ index 22acf064531f..c2c0513b18ff 100644
endmenu
diff --git a/drivers/soc/amlogic/Makefile b/drivers/soc/amlogic/Makefile
index 3e85fc462c21..3174e93e72e9 100644
index 3e85fc4..3174e93 100644
--- a/drivers/soc/amlogic/Makefile
+++ b/drivers/soc/amlogic/Makefile
@@ -1 +1,2 @@
@ -43,7 +43,7 @@ index 3e85fc462c21..3174e93e72e9 100644
+obj-$(CONFIG_MESON_GX_PM_DOMAINS) += meson-gx-pwrc-vpu.o
diff --git a/drivers/soc/amlogic/meson-gx-pwrc-vpu.c b/drivers/soc/amlogic/meson-gx-pwrc-vpu.c
new file mode 100644
index 000000000000..bf5190b65ad9
index 0000000..bf5190b
--- /dev/null
+++ b/drivers/soc/amlogic/meson-gx-pwrc-vpu.c
@@ -0,0 +1,234 @@
@ -282,5 +282,5 @@ index 000000000000..bf5190b65ad9
+};
+builtin_platform_driver(meson_gx_pwrc_vpu_driver);
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From f3694e090fe83bc06aaa2aad2e88453fe739ff5c Mon Sep 17 00:00:00 2001
From a2ae223bac1ad40a5bd7ee124b3af735ff445eb9 Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Fri, 3 Nov 2017 16:43:24 +0100
Subject: [PATCH 20/39] soc: amlogic: meson-gx-pwrc-vpu: fix power-off when
@ -19,7 +19,7 @@ Tested-by: Kevin Hilman <khilman@baylibre.com>
1 file changed, 19 insertions(+), 10 deletions(-)
diff --git a/drivers/soc/amlogic/meson-gx-pwrc-vpu.c b/drivers/soc/amlogic/meson-gx-pwrc-vpu.c
index bf5190b65ad9..2bdeebc48901 100644
index bf5190b..2bdeebc 100644
--- a/drivers/soc/amlogic/meson-gx-pwrc-vpu.c
+++ b/drivers/soc/amlogic/meson-gx-pwrc-vpu.c
@@ -34,7 +34,6 @@ struct meson_gx_pwrc_vpu {
@ -101,5 +101,5 @@ index bf5190b65ad9..2bdeebc48901 100644
static const struct of_device_id meson_gx_pwrc_vpu_match_table[] = {
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From 0c0683d55753b87953a6229e8d556c4f1b1887ad Mon Sep 17 00:00:00 2001
From f9b447452943415a12055c0fca279281cd28d923 Mon Sep 17 00:00:00 2001
From: Jerome Brunet <jbrunet@baylibre.com>
Date: Thu, 30 Mar 2017 11:49:55 +0200
Subject: [PATCH 21/39] ASoC: meson: add meson audio core driver
@ -30,7 +30,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
create mode 100644 sound/soc/meson/audio-core.h
diff --git a/sound/soc/Kconfig b/sound/soc/Kconfig
index c0abad2067e1..7db316faa05f 100644
index c0abad2..7db316f 100644
--- a/sound/soc/Kconfig
+++ b/sound/soc/Kconfig
@@ -55,6 +55,7 @@ source "sound/soc/kirkwood/Kconfig"
@ -42,7 +42,7 @@ index c0abad2067e1..7db316faa05f 100644
source "sound/soc/pxa/Kconfig"
source "sound/soc/qcom/Kconfig"
diff --git a/sound/soc/Makefile b/sound/soc/Makefile
index bf8c1e2ce0bf..d4c0a511a32f 100644
index bf8c1e2..d4c0a51 100644
--- a/sound/soc/Makefile
+++ b/sound/soc/Makefile
@@ -33,6 +33,7 @@ obj-$(CONFIG_SND_SOC) += jz4740/
@ -55,7 +55,7 @@ index bf8c1e2ce0bf..d4c0a511a32f 100644
obj-$(CONFIG_SND_SOC) += omap/
diff --git a/sound/soc/meson/Kconfig b/sound/soc/meson/Kconfig
new file mode 100644
index 000000000000..216c850c8e86
index 0000000..216c850
--- /dev/null
+++ b/sound/soc/meson/Kconfig
@@ -0,0 +1,9 @@
@ -70,7 +70,7 @@ index 000000000000..216c850c8e86
+ select the audio interfaces to support below.
diff --git a/sound/soc/meson/Makefile b/sound/soc/meson/Makefile
new file mode 100644
index 000000000000..22028abb5624
index 0000000..22028ab
--- /dev/null
+++ b/sound/soc/meson/Makefile
@@ -0,0 +1,3 @@
@ -79,7 +79,7 @@ index 000000000000..22028abb5624
+obj-$(CONFIG_SND_SOC_MESON) += snd-soc-meson-audio-core.o
diff --git a/sound/soc/meson/audio-core.c b/sound/soc/meson/audio-core.c
new file mode 100644
index 000000000000..99993ec4a5cc
index 0000000..99993ec
--- /dev/null
+++ b/sound/soc/meson/audio-core.c
@@ -0,0 +1,190 @@
@ -275,7 +275,7 @@ index 000000000000..99993ec4a5cc
+MODULE_LICENSE("GPL v2");
diff --git a/sound/soc/meson/audio-core.h b/sound/soc/meson/audio-core.h
new file mode 100644
index 000000000000..6e7a24cdc4a9
index 0000000..6e7a24c
--- /dev/null
+++ b/sound/soc/meson/audio-core.h
@@ -0,0 +1,28 @@
@ -308,5 +308,5 @@ index 000000000000..6e7a24cdc4a9
+
+#endif /* _MESON_AUDIO_CORE_H_ */
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From fe9c8e25f80e62fe66f3f0129d25a62c862e743d Mon Sep 17 00:00:00 2001
From 71e89b9513f114d45fd43233039a73f678702815 Mon Sep 17 00:00:00 2001
From: Jerome Brunet <jbrunet@baylibre.com>
Date: Thu, 30 Mar 2017 12:00:10 +0200
Subject: [PATCH 22/39] ASoC: meson: add register definitions
@ -16,7 +16,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
diff --git a/sound/soc/meson/aiu-regs.h b/sound/soc/meson/aiu-regs.h
new file mode 100644
index 000000000000..67391e64fe1c
index 0000000..67391e6
--- /dev/null
+++ b/sound/soc/meson/aiu-regs.h
@@ -0,0 +1,182 @@
@ -204,7 +204,7 @@ index 000000000000..67391e64fe1c
+#endif /* _AIU_REGS_H_ */
diff --git a/sound/soc/meson/audin-regs.h b/sound/soc/meson/audin-regs.h
new file mode 100644
index 000000000000..f224610e80e7
index 0000000..f224610
--- /dev/null
+++ b/sound/soc/meson/audin-regs.h
@@ -0,0 +1,148 @@
@ -357,5 +357,5 @@ index 000000000000..f224610e80e7
+
+#endif /* _AUDIN_REGS_H_ */
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From c3f39e1e99cf8d8f0e9d793272eaac4118099e99 Mon Sep 17 00:00:00 2001
From 03285555d8cbb3eb1f4991b758e5804a3c19b4ce Mon Sep 17 00:00:00 2001
From: Jerome Brunet <jbrunet@baylibre.com>
Date: Thu, 30 Mar 2017 12:14:40 +0200
Subject: [PATCH 23/39] ASoC: meson: add aiu i2s dma support
@ -15,7 +15,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
create mode 100644 sound/soc/meson/aiu-i2s-dma.c
diff --git a/sound/soc/meson/Kconfig b/sound/soc/meson/Kconfig
index 216c850c8e86..ad31a1152b60 100644
index 216c850..ad31a11 100644
--- a/sound/soc/meson/Kconfig
+++ b/sound/soc/meson/Kconfig
@@ -7,3 +7,10 @@ menuconfig SND_SOC_MESON
@ -30,7 +30,7 @@ index 216c850c8e86..ad31a1152b60 100644
+ Say Y or M if you want to add support for i2s dma driver for Amlogic
+ Meson SoCs.
diff --git a/sound/soc/meson/Makefile b/sound/soc/meson/Makefile
index 22028abb5624..273f27590773 100644
index 22028ab..273f275 100644
--- a/sound/soc/meson/Makefile
+++ b/sound/soc/meson/Makefile
@@ -1,3 +1,5 @@
@ -41,7 +41,7 @@ index 22028abb5624..273f27590773 100644
+obj-$(CONFIG_SND_SOC_MESON_I2S) += snd-soc-meson-aiu-i2s-dma.o
diff --git a/sound/soc/meson/aiu-i2s-dma.c b/sound/soc/meson/aiu-i2s-dma.c
new file mode 100644
index 000000000000..bab950d67f5e
index 0000000..bab950d
--- /dev/null
+++ b/sound/soc/meson/aiu-i2s-dma.c
@@ -0,0 +1,367 @@
@ -413,5 +413,5 @@ index 000000000000..bab950d67f5e
+MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>");
+MODULE_LICENSE("GPL v2");
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From d7b010b3dbc57353663d7b7580fd329c165eafeb Mon Sep 17 00:00:00 2001
From e273b0687bfb891ca4962dfe96e174371853ae89 Mon Sep 17 00:00:00 2001
From: Jerome Brunet <jbrunet@baylibre.com>
Date: Thu, 30 Mar 2017 12:17:27 +0200
Subject: [PATCH 24/39] ASoC: meson: add initial i2s dai support
@ -17,7 +17,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
create mode 100644 sound/soc/meson/i2s-dai.c
diff --git a/sound/soc/meson/Kconfig b/sound/soc/meson/Kconfig
index ad31a1152b60..604c9e2ff7a0 100644
index ad31a11..604c9e2 100644
--- a/sound/soc/meson/Kconfig
+++ b/sound/soc/meson/Kconfig
@@ -12,5 +12,5 @@ config SND_SOC_MESON_I2S
@ -28,7 +28,7 @@ index ad31a1152b60..604c9e2ff7a0 100644
+ Say Y or M if you want to add support for i2s driver for Amlogic
Meson SoCs.
diff --git a/sound/soc/meson/Makefile b/sound/soc/meson/Makefile
index 273f27590773..ea06ddee39d1 100644
index 273f275..ea06dde 100644
--- a/sound/soc/meson/Makefile
+++ b/sound/soc/meson/Makefile
@@ -1,5 +1,7 @@
@ -41,7 +41,7 @@ index 273f27590773..ea06ddee39d1 100644
+obj-$(CONFIG_SND_SOC_MESON_I2S) += snd-soc-meson-i2s-dai.o
diff --git a/sound/soc/meson/i2s-dai.c b/sound/soc/meson/i2s-dai.c
new file mode 100644
index 000000000000..1008af8d3972
index 0000000..1008af8
--- /dev/null
+++ b/sound/soc/meson/i2s-dai.c
@@ -0,0 +1,465 @@
@ -511,5 +511,5 @@ index 000000000000..1008af8d3972
+MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>");
+MODULE_LICENSE("GPL v2");
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From e3b90db66079fff917a68608a1e1f21a9f524d5f Mon Sep 17 00:00:00 2001
From f40a0d725ebdad433383010d1c5ef92eb99e41a7 Mon Sep 17 00:00:00 2001
From: Jerome Brunet <jbrunet@baylibre.com>
Date: Fri, 7 Jul 2017 17:39:21 +0200
Subject: [PATCH 25/39] snd: meson: activate HDMI audio path
@ -9,7 +9,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
1 file changed, 22 insertions(+)
diff --git a/sound/soc/meson/i2s-dai.c b/sound/soc/meson/i2s-dai.c
index 1008af8d3972..63fe098ecf82 100644
index 1008af8..63fe098 100644
--- a/sound/soc/meson/i2s-dai.c
+++ b/sound/soc/meson/i2s-dai.c
@@ -56,8 +56,19 @@ struct meson_i2s_dai {
@ -51,5 +51,5 @@ index 1008af8d3972..63fe098ecf82 100644
}
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From 0a9811673f54e33525386a62e6910771ac1afb67 Mon Sep 17 00:00:00 2001
From e5509c367852ca7a7b52c30fda3dfd2a763ee8f3 Mon Sep 17 00:00:00 2001
From: Jerome Brunet <jbrunet@baylibre.com>
Date: Tue, 14 Feb 2017 19:18:04 +0100
Subject: [PATCH 26/39] drm/meson: select dw-hdmi i2s audio for meson hdmi
@ -10,7 +10,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/meson/Kconfig b/drivers/gpu/drm/meson/Kconfig
index 3ce51d8dfe1c..02d400b8795c 100644
index 3ce51d8..02d400b 100644
--- a/drivers/gpu/drm/meson/Kconfig
+++ b/drivers/gpu/drm/meson/Kconfig
@@ -13,3 +13,4 @@ config DRM_MESON_DW_HDMI
@ -19,5 +19,5 @@ index 3ce51d8dfe1c..02d400b8795c 100644
select DRM_DW_HDMI
+ select DRM_DW_HDMI_I2S_AUDIO
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From f60640210aa041778116ff0b429c4a810d2d0644 Mon Sep 17 00:00:00 2001
From d74574d0836155eadde90e9ba12b8c4d18202d8e Mon Sep 17 00:00:00 2001
From: Jerome Brunet <jbrunet@baylibre.com>
Date: Fri, 31 Mar 2017 15:55:03 +0200
Subject: [PATCH 27/39] ARM64: defconfig: enable audio support for meson SoCs
@ -14,7 +14,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
1 file changed, 2 insertions(+)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index dcf10903f634..beb577486985 100644
index dcf1090..beb5774 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -405,6 +405,8 @@ CONFIG_SOUND=y
@ -27,5 +27,5 @@ index dcf10903f634..beb577486985 100644
CONFIG_SND_SOC_RCAR=m
CONFIG_SND_SOC_AK4613=m
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From b2a5b8f579026710bd7b49230b8d2368e7829c04 Mon Sep 17 00:00:00 2001
From 7bd8dcbb1f840fe6d4ae6a1f5f2d3708f09110f9 Mon Sep 17 00:00:00 2001
From: Jerome Brunet <jbrunet@baylibre.com>
Date: Wed, 20 Sep 2017 17:22:47 +0200
Subject: [PATCH 28/39] ARM64: dts: meson-gx: add audio controller nodes
@ -18,7 +18,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
2 files changed, 45 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
index f175db846286..ff27ce00624d 100644
index f175db8..ff27ce0 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
@@ -224,6 +224,28 @@
@ -51,7 +51,7 @@ index f175db846286..ff27ce00624d 100644
compatible = "amlogic,meson-gx-uart", "amlogic,meson-uart";
reg = <0x0 0x84c0 0x0 0x14>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
index 68ea67aef0dd..9d2fb463d1b4 100644
index 68ea67a..9d2fb46 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
@@ -691,6 +691,29 @@
@ -85,5 +85,5 @@ index 68ea67aef0dd..9d2fb463d1b4 100644
compatible = "amlogic,meson-gxl-saradc", "amlogic,meson-saradc";
clocks = <&xtal>,
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From 77abce6cc91d9af9b41a9626e468fc64470576d6 Mon Sep 17 00:00:00 2001
From 071f66d1e34243f37f52e09dca13b50e8215a7ce Mon Sep 17 00:00:00 2001
From: Jerome Brunet <jbrunet@baylibre.com>
Date: Wed, 20 Sep 2017 18:01:26 +0200
Subject: [PATCH 29/39] ARM64: dts: meson-gxl: add sound-dai-cells to HDMI node
@ -10,7 +10,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
index 9d2fb463d1b4..4a1bd8922384 100644
index 9d2fb46..4a1bd89 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
@@ -294,6 +294,7 @@
@ -22,5 +22,5 @@ index 9d2fb463d1b4..4a1bd8922384 100644
&hiubus {
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From 65b33362f68f3541a1ae847231339426eb2c1847 Mon Sep 17 00:00:00 2001
From 29e058408d62384dc3de4e0b63433d7dfdee068b Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Mon, 28 Aug 2017 12:01:09 +0200
Subject: [PATCH 30/39] ARM64: dts: meson-gxl: Take eMMC data strobe out of
@ -26,7 +26,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
14 files changed, 28 insertions(+), 16 deletions(-)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
index 7ce9a6267270..7f59f3017028 100644
index 7ce9a62..7f59f30 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
@@ -213,7 +213,7 @@
@ -39,7 +39,7 @@ index 7ce9a6267270..7f59f3017028 100644
pinctrl-names = "default", "clk-gate";
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
index 4b17a76959b2..a42c8f442590 100644
index 4b17a76..a42c8f4 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
@@ -302,7 +302,7 @@
@ -52,7 +52,7 @@ index 4b17a76959b2..a42c8f442590 100644
pinctrl-names = "default", "clk-gate";
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts
index 38dfdde5c147..9a773239dcef 100644
index 38dfdde..9a77323 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts
@@ -272,7 +272,7 @@
@ -65,7 +65,7 @@ index 38dfdde5c147..9a773239dcef 100644
pinctrl-names = "default", "clk-gate";
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
index c3a7b7f62da2..4221e1ffb454 100644
index c3a7b7f..4221e1f 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
@@ -271,7 +271,7 @@
@ -78,7 +78,7 @@ index c3a7b7f62da2..4221e1ffb454 100644
pinctrl-names = "default", "clk-gate";
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi
index 23c08c3afd0a..932158a778ef 100644
index 23c08c3..932158a 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi
@@ -242,7 +242,7 @@
@ -91,7 +91,7 @@ index 23c08c3afd0a..932158a778ef 100644
pinctrl-names = "default", "clk-gate";
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
index f2bc6dea1fc6..1fe8e24cf675 100644
index f2bc6de..1fe8e24 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi
@@ -199,7 +199,7 @@
@ -104,7 +104,7 @@ index f2bc6dea1fc6..1fe8e24cf675 100644
pinctrl-names = "default", "clk-gate";
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
index 7d38d55869c9..ef12d674cd10 100644
index 7d38d55..ef12d67 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
@@ -390,8 +390,14 @@
@ -125,7 +125,7 @@ index 7d38d55869c9..ef12d674cd10 100644
};
};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts
index 6f2cd8e82dbc..5eaafa1b92d3 100644
index 6f2cd8e..5eaafa1 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts
@@ -141,7 +141,7 @@
@ -138,7 +138,7 @@ index 6f2cd8e82dbc..5eaafa1b92d3 100644
pinctrl-names = "default", "clk-gate";
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
index 4035891890c7..942fd70c25e9 100644
index 4035891..942fd70 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
@@ -221,7 +221,7 @@
@ -151,7 +151,7 @@ index 4035891890c7..942fd70c25e9 100644
pinctrl-names = "default", "clk-gate";
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts
index 6338e6c082f5..0fdebcc698a6 100644
index 6338e6c..0fdebcc 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts
@@ -229,7 +229,7 @@
@ -164,7 +164,7 @@ index 6338e6c082f5..0fdebcc698a6 100644
pinctrl-names = "default", "clk-gate";
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi
index 7a1c20eb319f..0a2be82c3d97 100644
index 7a1c20e..0a2be82 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi
@@ -135,7 +135,7 @@
@ -177,7 +177,7 @@ index 7a1c20eb319f..0a2be82c3d97 100644
pinctrl-names = "default", "clk-gate";
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
index 4a1bd8922384..02b52b618b03 100644
index 4a1bd89..02b52b6 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
@@ -343,8 +343,14 @@
@ -198,7 +198,7 @@ index 4a1bd8922384..02b52b618b03 100644
};
};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
index cfde24623a7d..e70b5e29e5fe 100644
index cfde246..e70b5e2 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
@@ -193,7 +193,7 @@
@ -211,7 +211,7 @@ index cfde24623a7d..e70b5e29e5fe 100644
pinctrl-names = "default", "clk-gate";
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
index 9837a48e9297..9593a28e8e5c 100644
index 9837a48..9593a28 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts
@@ -216,7 +216,7 @@
@ -224,5 +224,5 @@ index 9837a48e9297..9593a28e8e5c 100644
bus-width = <8>;
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From c38232651c13e03822f52c320c4180c89dfcb02b Mon Sep 17 00:00:00 2001
From 107e323a199087cfb84c22b31d769f0b2e623e4a Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Fri, 13 Oct 2017 14:47:23 +0200
Subject: [PATCH 31/39] ARM64: dts: meson-gx: add VPU power domain
@ -14,7 +14,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
3 files changed, 97 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
index ff27ce00624d..ace0e4b756b8 100644
index ff27ce0..ace0e4b 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
@@ -393,6 +393,12 @@
@ -43,7 +43,7 @@ index ff27ce00624d..ace0e4b756b8 100644
compatible = "amlogic,meson-gx-mhu", "amlogic,meson-gxbb-mhu";
reg = <0 0x404 0 0x4c>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
index ef12d674cd10..b5b6b331b91d 100644
index ef12d67..b5b6b33 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
@@ -692,6 +692,48 @@
@ -102,7 +102,7 @@ index ef12d674cd10..b5b6b331b91d 100644
+ power-domains = <&pwrc_vpu>;
};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
index 02b52b618b03..d5c8952165ba 100644
index 02b52b6..d5c8952 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
@@ -721,6 +721,48 @@
@ -161,5 +161,5 @@ index 02b52b618b03..d5c8952165ba 100644
+ power-domains = <&pwrc_vpu>;
};
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From df3fa23c03f0a231cac4a6857fb6a45279b32bf7 Mon Sep 17 00:00:00 2001
From 07b467abf6efad25e12ad4c09a008e9f1594e39d Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Mon, 16 Oct 2017 15:33:30 +0200
Subject: [PATCH 32/39] ARM64: dts: meson-gx: Add HDMI_5V regulator on selected
@ -21,7 +21,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
7 files changed, 50 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
index 7f59f3017028..979abaf1421b 100644
index 7f59f30..979abaf 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
@@ -59,6 +59,17 @@
@ -51,7 +51,7 @@ index 7f59f3017028..979abaf1421b 100644
&hdmi_tx_tmds_port {
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts
index 6827f235d7cf..8bc540e1b246 100644
index 6827f23..8bc540e 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts
@@ -135,6 +135,7 @@
@ -63,7 +63,7 @@ index 6827f235d7cf..8bc540e1b246 100644
&hdmi_tx_tmds_port {
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
index 89a5fd998262..f7b37de01e7a 100644
index 89a5fd9..f7b37de 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
@@ -78,6 +78,7 @@
@ -75,7 +75,7 @@ index 89a5fd998262..f7b37de01e7a 100644
&hdmi_tx_tmds_port {
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
index 942fd70c25e9..0c4ed4eec11a 100644
index 942fd70..0c4ed4e 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
@@ -72,6 +72,17 @@
@ -105,7 +105,7 @@ index 942fd70c25e9..0c4ed4eec11a 100644
&hdmi_tx_tmds_port {
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts
index 6e2bf858291c..4f6b1c97df44 100644
index 6e2bf85..4f6b1c9 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts
@@ -88,6 +88,7 @@
@ -117,7 +117,7 @@ index 6e2bf858291c..4f6b1c97df44 100644
&hdmi_tx_tmds_port {
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi
index 0a2be82c3d97..1a5136ad25ee 100644
index 0a2be82..1a5136a 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi
@@ -28,6 +28,17 @@
@ -139,7 +139,7 @@ index 0a2be82c3d97..1a5136ad25ee 100644
compatible = "regulator-fixed";
regulator-name = "VDDIO_BOOT";
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
index 103575a74541..4537a81fb9de 100644
index 103575a..4537a81 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
@@ -153,6 +153,17 @@
@ -169,5 +169,5 @@ index 103575a74541..4537a81fb9de 100644
&hdmi_tx_tmds_port {
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From 92d8cb904dcb8fd92330e603a26188dd000730e0 Mon Sep 17 00:00:00 2001
From 7c3d7dee433538e1450564582da535cac44a2361 Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Mon, 16 Oct 2017 17:00:59 +0200
Subject: [PATCH 33/39] ARM64: dts: meson-gx: grow reset controller memory zone
@ -12,7 +12,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
index ace0e4b756b8..2e0ee17e3333 100644
index ace0e4b..2e0ee17 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
@@ -220,7 +220,7 @@
@ -25,5 +25,5 @@ index ace0e4b756b8..2e0ee17e3333 100644
};
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From e90d469874c37ec0e7925aeefbf74d5248182573 Mon Sep 17 00:00:00 2001
From a0cd1597b6b505c8d72406d31cf408933b2993e9 Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Mon, 16 Oct 2017 17:00:26 +0200
Subject: [PATCH 34/39] ARM64: dts: odroid-c2: Add HDMI and CEC Nodes
@ -12,7 +12,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
1 file changed, 30 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
index 4221e1ffb454..dc3d1badf9ce 100644
index 4221e1f..dc3d1ba 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
@@ -135,6 +135,24 @@
@ -60,5 +60,5 @@ index 4221e1ffb454..dc3d1badf9ce 100644
status = "okay";
pinctrl-0 = <&i2c_a_pins>;
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From 1f0b2f23136a50e6516f1c3eff2d22ab74ac6af8 Mon Sep 17 00:00:00 2001
From bc1416cbeb6fb588e8573c9904b691259d173093 Mon Sep 17 00:00:00 2001
From: Jerome Brunet <jbrunet@baylibre.com>
Date: Wed, 20 Sep 2017 18:10:08 +0200
Subject: [PATCH 35/39] ARM64: dts: meson: activate hdmi audio HDMI enabled
@ -27,7 +27,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
11 files changed, 408 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
index 979abaf1421b..91b7ac89228e 100644
index 979abaf..91b7ac8 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
@@ -130,6 +130,31 @@
@ -82,7 +82,7 @@ index 979abaf1421b..91b7ac89228e 100644
cvbs_vdac_out: endpoint {
remote-endpoint = <&cvbs_connector_in>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts
index 9a773239dcef..2357a3872d02 100644
index 9a77323..2357a38 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts
@@ -143,6 +143,31 @@
@ -138,7 +138,7 @@ index 9a773239dcef..2357a3872d02 100644
status = "okay";
pinctrl-0 = <&eth_rmii_pins>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
index dc3d1badf9ce..4e0b3c7ec081 100644
index dc3d1ba..4e0b3c7 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
@@ -146,6 +146,31 @@
@ -193,7 +193,7 @@ index dc3d1badf9ce..4e0b3c7ec081 100644
status = "okay";
pinctrl-0 = <&eth_rgmii_pins>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi
index 932158a778ef..c9d48709fa82 100644
index 932158a..c9d4870 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi
@@ -149,6 +149,31 @@
@ -248,7 +248,7 @@ index 932158a778ef..c9d48709fa82 100644
cvbs_vdac_out: endpoint {
remote-endpoint = <&cvbs_connector_in>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek-play2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek-play2.dts
index f7144fd5e03f..58a0f5159d7f 100644
index f7144fd..58a0f51 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek-play2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-wetek-play2.dts
@@ -106,6 +106,31 @@
@ -303,7 +303,7 @@ index f7144fd5e03f..58a0f5159d7f 100644
cvbs_vdac_out: endpoint {
remote-endpoint = <&cvbs_connector_in>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
index f7b37de01e7a..ce92ca587b07 100644
index f7b37de..ce92ca5 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
@@ -65,6 +65,31 @@
@ -358,7 +358,7 @@ index f7b37de01e7a..ce92ca587b07 100644
status = "okay";
pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
index 0c4ed4eec11a..29d8e01668e2 100644
index 0c4ed4e..29d8e01 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
@@ -83,6 +83,31 @@
@ -413,7 +413,7 @@ index 0c4ed4eec11a..29d8e01668e2 100644
cvbs_vdac_out: endpoint {
remote-endpoint = <&cvbs_connector_in>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts
index 0fdebcc698a6..dcb571adba01 100644
index 0fdebcc..dcb571a 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts
@@ -138,6 +138,31 @@
@ -468,7 +468,7 @@ index 0fdebcc698a6..dcb571adba01 100644
cvbs_vdac_out: endpoint {
remote-endpoint = <&cvbs_connector_in>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts
index 4f6b1c97df44..f23f1482e3a9 100644
index 4f6b1c9..f23f148 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts
@@ -69,6 +69,31 @@
@ -523,7 +523,7 @@ index 4f6b1c97df44..f23f1482e3a9 100644
cvbs_vdac_out: endpoint {
remote-endpoint = <&cvbs_connector_in>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
index 4537a81fb9de..aed2a54fb1e9 100644
index 4537a81..aed2a54 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
@@ -88,6 +88,31 @@
@ -578,7 +578,7 @@ index 4537a81fb9de..aed2a54fb1e9 100644
cooling-min-level = <0>;
cooling-max-level = <6>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
index e70b5e29e5fe..8444f7983675 100644
index e70b5e2..8444f79 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
@@ -111,6 +111,31 @@
@ -633,5 +633,5 @@ index e70b5e29e5fe..8444f7983675 100644
cvbs_vdac_out: endpoint {
remote-endpoint = <&cvbs_connector_in>;
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From 44bdde1f7bfc970011fe7c063d70d5fd08f777be Mon Sep 17 00:00:00 2001
From 9afb9faf483008a1d16202818d895099e5c932bb Mon Sep 17 00:00:00 2001
From: Jerome Brunet <jbrunet@baylibre.com>
Date: Fri, 8 Dec 2017 12:08:11 +0100
Subject: [PATCH 36/39] net: phy: meson-gxl: detect LPA corruption
@ -29,7 +29,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
1 file changed, 73 insertions(+), 1 deletion(-)
diff --git a/drivers/net/phy/meson-gxl.c b/drivers/net/phy/meson-gxl.c
index 1ea69b7585d9..700007dd4be5 100644
index 7ddb709..b21f607 100644
--- a/drivers/net/phy/meson-gxl.c
+++ b/drivers/net/phy/meson-gxl.c
@@ -22,6 +22,7 @@
@ -40,7 +40,7 @@ index 1ea69b7585d9..700007dd4be5 100644
static int meson_gxl_config_init(struct phy_device *phydev)
{
@@ -50,6 +51,77 @@ static int meson_gxl_config_init(struct phy_device *phydev)
@@ -76,6 +77,77 @@ static int meson_gxl_config_init(struct phy_device *phydev)
return 0;
}
@ -118,7 +118,7 @@ index 1ea69b7585d9..700007dd4be5 100644
static struct phy_driver meson_gxl_phy[] = {
{
.phy_id = 0x01814400,
@@ -60,7 +132,7 @@ static struct phy_driver meson_gxl_phy[] = {
@@ -86,7 +158,7 @@ static struct phy_driver meson_gxl_phy[] = {
.config_init = meson_gxl_config_init,
.config_aneg = genphy_config_aneg,
.aneg_done = genphy_aneg_done,
@ -128,5 +128,5 @@ index 1ea69b7585d9..700007dd4be5 100644
.resume = genphy_resume,
},
--
2.16.1
2.7.4

View File

@ -1,4 +1,4 @@
From 15676d9349ad1b295b0e3c6b97b49b98977dcf67 Mon Sep 17 00:00:00 2001
From 61ceaf782220a596ac845483d00d50752f7c6e14 Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Thu, 15 Feb 2018 10:38:47 +0100
Subject: [PATCH 37/39] drm/meson: fix vsync buffer update
@ -11,7 +11,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
3 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/meson/meson_crtc.c b/drivers/gpu/drm/meson/meson_crtc.c
index 5155f0179b61..05520202c967 100644
index 5155f01..0552020 100644
--- a/drivers/gpu/drm/meson/meson_crtc.c
+++ b/drivers/gpu/drm/meson/meson_crtc.c
@@ -36,6 +36,7 @@
@ -35,7 +35,7 @@ index 5155f0179b61..05520202c967 100644
writel_bits_relaxed(VPP_OSD1_POSTBLEND, VPP_OSD1_POSTBLEND,
priv->io_base + _REG(VPP_MISC));
diff --git a/drivers/gpu/drm/meson/meson_drv.h b/drivers/gpu/drm/meson/meson_drv.h
index 5e8b392b9d1f..8450d6ac8c9b 100644
index 5e8b392..8450d6ac 100644
--- a/drivers/gpu/drm/meson/meson_drv.h
+++ b/drivers/gpu/drm/meson/meson_drv.h
@@ -43,6 +43,9 @@ struct meson_drm {
@ -49,7 +49,7 @@ index 5e8b392b9d1f..8450d6ac8c9b 100644
struct {
diff --git a/drivers/gpu/drm/meson/meson_plane.c b/drivers/gpu/drm/meson/meson_plane.c
index 17e96fa47868..0b6011b8d632 100644
index 17e96fa..0b6011b 100644
--- a/drivers/gpu/drm/meson/meson_plane.c
+++ b/drivers/gpu/drm/meson/meson_plane.c
@@ -164,10 +164,9 @@ static void meson_plane_atomic_update(struct drm_plane *plane,
@ -67,5 +67,5 @@ index 17e96fa47868..0b6011b8d632 100644
spin_unlock_irqrestore(&priv->drm->event_lock, flags);
}
--
2.16.1
2.7.4

View File

@ -0,0 +1,66 @@
From 63ffa5db0046106f6c3b8687e200e17599e14b9f Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Fri, 23 Feb 2018 11:18:11 +0100
Subject: [PATCH 38/39] ARM64: dts: meson: bump mali450 clk to 744MHz
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 11 +++++++----
arch/arm64/boot/dts/amlogic/meson-gxl-mali.dtsi | 11 +++++++----
2 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
index b5b6b33..d00a9f2 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
@@ -288,14 +288,17 @@
* MALI_0 and MALI_1 muxed to a single clock by a glitch
* free mux to safely change frequency while running.
*/
- assigned-clocks = <&clkc CLKID_MALI_0_SEL>,
+ assigned-clocks = <&clkc CLKID_GP0_PLL>,
+ <&clkc CLKID_MALI_0_SEL>,
<&clkc CLKID_MALI_0>,
<&clkc CLKID_MALI>; /* Glitch free mux */
- assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
+ assigned-clock-parents = <0>, /* Do Nothing */
+ <&clkc CLKID_GP0_PLL>,
<0>, /* Do Nothing */
<&clkc CLKID_MALI_0>;
- assigned-clock-rates = <0>, /* Do Nothing */
- <666666666>,
+ assigned-clock-rates = <744000000>,
+ <0>, /* Do Nothing */
+ <744000000>,
<0>; /* Do Nothing */
};
};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-mali.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl-mali.dtsi
index f06cc234..972df67 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-mali.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-mali.dtsi
@@ -30,14 +30,17 @@
* MALI_0 and MALI_1 muxed to a single clock by a glitch
* free mux to safely change frequency while running.
*/
- assigned-clocks = <&clkc CLKID_MALI_0_SEL>,
+ assigned-clocks = <&clkc CLKID_GP0_PLL>,
+ <&clkc CLKID_MALI_0_SEL>,
<&clkc CLKID_MALI_0>,
<&clkc CLKID_MALI>; /* Glitch free mux */
- assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
+ assigned-clock-parents = <0>, /* Do Nothing */
+ <&clkc CLKID_GP0_PLL>,
<0>, /* Do Nothing */
<&clkc CLKID_MALI_0>;
- assigned-clock-rates = <0>, /* Do Nothing */
- <666666666>,
+ assigned-clock-rates = <744000000>,
+ <0>, /* Do Nothing */
+ <744000000>,
<0>; /* Do Nothing */
};
};
--
2.7.4

View File

@ -1,580 +0,0 @@
From 4cc7818334f585505f7c1e701f9322ae66131a87 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 16 Feb 2018 23:33:51 -0800
Subject: [PATCH 38/39] Add 3.5" Touchscreen(sx865x) driver.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
drivers/input/touchscreen/Kconfig | 11 +
drivers/input/touchscreen/Makefile | 1 +
drivers/input/touchscreen/sx865x.c | 529 +++++++++++++++++++++++++++++++++++++
3 files changed, 541 insertions(+)
create mode 100755 drivers/input/touchscreen/sx865x.c
diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig
index 64b30fe273fd..20fb6e0b12a9 100644
--- a/drivers/input/touchscreen/Kconfig
+++ b/drivers/input/touchscreen/Kconfig
@@ -1246,4 +1246,15 @@ config TOUCHSCREEN_ROHM_BU21023
To compile this driver as a module, choose M here: the
module will be called bu21023_ts.
+config TOUCHSCREEN_SX865X
+ tristate "Semtech multitouch resistive touchscreen"
+ depends on I2C
+ help
+ Say Y here if you have a touchscreen using Semtec sx8650 controller.
+
+ If unsure, say N.
+
+ To compile this driver as a module, choose M here: the
+ module will be called sx865x.
+
endif
diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile
index 850c1562555a..4225c297a3fc 100644
--- a/drivers/input/touchscreen/Makefile
+++ b/drivers/input/touchscreen/Makefile
@@ -104,3 +104,4 @@ obj-$(CONFIG_TOUCHSCREEN_ZET6223) += zet6223.o
obj-$(CONFIG_TOUCHSCREEN_ZFORCE) += zforce_ts.o
obj-$(CONFIG_TOUCHSCREEN_COLIBRI_VF50) += colibri-vf50-ts.o
obj-$(CONFIG_TOUCHSCREEN_ROHM_BU21023) += rohm_bu21023.o
+obj-$(CONFIG_TOUCHSCREEN_SX865X) += sx865x.o
diff --git a/drivers/input/touchscreen/sx865x.c b/drivers/input/touchscreen/sx865x.c
new file mode 100755
index 000000000000..446c4b39a873
--- /dev/null
+++ b/drivers/input/touchscreen/sx865x.c
@@ -0,0 +1,529 @@
+/*
+ * drivers/input/touchscreen/sx865x.c
+ *
+ * Copyright (c) 2013 U-MoBo Srl
+ * Pierluigi Passaro <p.passaro@u-mobo.com>
+ *
+ * Using code from:
+ * - sx8650.c
+ * Copyright (c) 2009 Wayne Roberts
+ * - tsc2007.c
+ * Copyright (c) 2008 Kwangwoo Lee
+ * - ads7846.c
+ * Copyright (c) 2005 David Brownell
+ * Copyright (c) 2006 Nokia Corporation
+ * - corgi_ts.c
+ * Copyright (C) 2004-2005 Richard Purdie
+ * - omap_ts.[hc], ads7846.h, ts_osk.c
+ * Copyright (C) 2002 MontaVista Software
+ * Copyright (C) 2004 Texas Instruments
+ * Copyright (C) 2005 Dirk Behme
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/i2c.h>
+#include <linux/input.h>
+#include <linux/slab.h>
+#include <linux/sched.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/of.h>
+#include <linux/of_gpio.h>
+#include <linux/of_device.h>
+#include <linux/delay.h>
+
+/* timeout expires after pen is lifted, no more PENIRQs comming */
+/* adjust with POWDLY setting */
+#define TS_TIMEOUT (8 * 1000000)
+
+/* analog channels */
+#define CH_X 0
+#define CH_Y 1
+#define CH_Z1 2
+#define CH_Z2 3
+#define CH_AUX 4
+#define CH_RX 5
+#define CH_RY 6
+#define CH_SEQ 7
+
+/* commands */
+#define SX865X_WRITE_REGISTER 0x00
+#define SX865X_READ_REGISTER 0x40
+#define SX865X_SELECT_CH(ch) (0x80 | ch)
+#define SX865X_CONVERT_CH(ch) (0x90 | ch)
+#define SX865X_POWDWN 0xb0 /* power down, ignore pen */
+#define SX865X_PENDET 0xc0 /* " " with pen sensitivity */
+#define SX865X_PENTRG 0xe0 /* " " " " and sample channels */
+
+/* register addresses */
+#define I2C_REG_CTRL0 0x00
+#define I2C_REG_CTRL1 0x01
+#define I2C_REG_CTRL2 0x02
+#define I2C_REG_CTRL3 0x03
+#define I2C_REG_CHANMASK 0x04
+#define I2C_REG_STAT 0x05
+#define I2C_REG_SOFTRESET 0x1f
+
+#define I2C_EXTENDED_REG_STAT 0x24
+#define I2C_EXTENDED_REG_SOFTRESET 0x3f
+
+#define SOFTRESET_VALUE 0xde
+
+/* bits for I2C_REG_STAT */
+/* I2C_REG_STAT: end of conversion flag */
+#define STATUS_CONVIRQ 0x80
+/* I2C_REG_STAT: pen detected */
+#define STATUS_PENIRQ 0x40
+
+/* bits for I2C_EXTENDED_REG_STAT */
+/* I2C_EXTENDED_REG_STAT: end of conversion flag */
+#define EXTENDED_STATUS_CONVIRQ 0x08
+/* I2C_EXTENDED_REG_STAT: pen detected */
+#define EXTENDED_STATUS_PENIRQ 0x04
+
+/* sx865x bits for RegCtrl1 */
+#define CONDIRQ 0x20
+/* no averaging */
+#define FILT_NONE 0x00
+/* 3 sample averaging */
+#define FILT_3SA 0x01
+/* 5 sample averaging */
+#define FILT_5SA 0x02
+/* 7 samples, sort, then average of 3 middle samples */
+#define FILT_7SA 0x03
+
+/* bits for register 2, I2CRegChanMsk */
+#define CONV_X 0x80
+#define CONV_Y 0x40
+#define CONV_Z1 0x20
+#define CONV_Z2 0x10
+#define CONV_AUX 0x08
+#define CONV_RX 0x04
+#define CONV_RY 0x02
+
+/* power delay: lower nibble of CTRL0 register */
+#define POWDLY_IMMEDIATE 0x00
+#define POWDLY_1_1US 0x01
+#define POWDLY_2_2US 0x02
+#define POWDLY_4_4US 0x03
+#define POWDLY_8_9US 0x04
+#define POWDLY_17_8US 0x05
+#define POWDLY_35_5US 0x06
+#define POWDLY_71US 0x07
+#define POWDLY_140US 0x08
+#define POWDLY_280US 0x09
+#define POWDLY_570US 0x0a
+#define POWDLY_1_1MS 0x0b
+#define POWDLY_2_3MS 0x0c
+#define POWDLY_4_6MS 0x0d
+#define POWDLY_9MS 0x0e
+#define POWDLY_18MS 0x0f
+
+#define MAX_12BIT ((1 << 12) - 1)
+
+/* when changing the channel mask, also change the read length appropriately */
+#define CHAN_MASK (CONV_X | CONV_Y | CONV_Z1 | CONV_RX | CONV_RY)
+#define NUM_CHANNELS_SEQ 5
+#define CHAN_READ_LENGTH (NUM_CHANNELS_SEQ * 2)
+
+#define SX_MULTITOUCH 0x01
+#define SX_PROXIMITY_SENSING 0x02
+#define SX_HAPTICS_GENERIC 0x04
+#define SX_HAPTICS_IMMERSION 0x08
+#define SX_EXTENDED_REGS (SX_PROXIMITY_SENSING | SX_HAPTICS_GENERIC | SX_HAPTICS_IMMERSION)
+
+#define SX865X_UP_SCANTIME_MS (100)
+#define SX865X_DOWN_SCANTIME_MS (20)
+
+struct ts_event {
+ u16 x, y;
+ u16 z1;
+ u16 rx, ry;
+};
+
+struct sx865x {
+ struct input_dev *input;
+ struct ts_event tc;
+
+ struct i2c_client *client;
+
+ u32 invert_x;
+ u32 invert_y;
+ u32 swap_xy;
+ u32 gpio_pendown;
+ u32 gpio_reset;
+
+ unsigned pendown;
+ int irq;
+};
+
+static struct i2c_device_id sx865x_idtable[] = {
+ { "sx8650", 0 },
+ { }
+};
+
+MODULE_DEVICE_TABLE(i2c, sx865x_idtable);
+
+static const struct of_device_id sx865x_of_match[] = {
+ { .compatible = "semtech,sx8650", .data = (void *)0 },
+ {}
+};
+
+MODULE_DEVICE_TABLE(of, sx865x_of_match);
+
+static void sx865x_send_event(struct sx865x *ts)
+{
+ u32 rt;
+ u16 x, y, z1;
+
+ x = ts->tc.x;
+ y = ts->tc.y;
+ z1 = ts->tc.z1;
+
+ /* range filtering */
+ if (y == MAX_12BIT)
+ y = 0;
+
+ /* compute touch pressure resistance */
+ if (likely(y && z1))
+ rt = z1;
+ else
+ rt = 0;
+
+ /* Sample found inconsistent by debouncing or pressure is beyond
+ * the maximum. Don't report it to user space, repeat at least
+ * once more the measurement
+ */
+ if (rt > MAX_12BIT) {
+ dev_dbg(&ts->client->dev, "ignored pressure %d\n", rt);
+ return;
+ }
+
+ /* NOTE: We can't rely on the pressure to determine the pen down
+ * state, even this controller has a pressure sensor. The pressure
+ * value can fluctuate for quite a while after lifting the pen and
+ * in some cases may not even settle at the expected value.
+ *
+ * The only safe way to check for the pen up condition is in the
+ * timer by reading the pen signal state (it's a GPIO _and_ IRQ).
+ */
+ if (rt) {
+ struct input_dev *input = ts->input;
+
+ if (ts->invert_x) x = (~x) & MAX_12BIT;
+
+ if (ts->invert_y) y = (~y) & MAX_12BIT;
+
+ if (ts->swap_xy) swap(x, y);
+
+ if (!ts->pendown) {
+ dev_dbg(&ts->client->dev, "DOWN\n");
+ ts->pendown = 1;
+ input_report_key(input, BTN_TOUCH, 1);
+ }
+
+ input_report_abs(input, ABS_X, x);
+ input_report_abs(input, ABS_Y, y);
+ input_report_abs(input, ABS_PRESSURE, rt);
+ input_sync(input);
+
+ dev_dbg(&ts->client->dev, "point(%4d,%4d), pressure (%4u)\n",
+ x, y, rt);
+ }
+}
+
+static int sx865x_read_values(struct sx865x *ts)
+{
+ s32 data;
+ u16 vals[NUM_CHANNELS_SEQ+1]; /* +1 for last dummy read */
+ int length;
+ int i;
+
+ memset(&(ts->tc), 0, sizeof(ts->tc));
+ /* The protocol and raw data format from i2c interface:
+ * S Addr R A [DataLow] A [DataHigh] A (repeat) NA P
+ * Where DataLow has (channel | [D11-D8]), DataHigh has [D7-D0].
+ */
+ length = i2c_master_recv(ts->client, (char *)vals, CHAN_READ_LENGTH);
+
+ if (likely(length == CHAN_READ_LENGTH)) {
+ length >>= 1;
+ for (i = 0; i < length; i++) {
+ u16 ch;
+ data = swab16(vals[i]);
+ if (unlikely(data & 0x8000)) {
+ dev_dbg(&ts->client->dev,
+ "hibit @ %d [0x%04x]\n", i, data);
+ continue;
+ }
+ ch = data >> 12;
+ if (ch == CH_X) {
+ ts->tc.x = data & 0xfff;
+ } else if (ch == CH_Y) {
+ ts->tc.y = data & 0xfff;
+ } else if (ch == CH_Z1) {
+ ts->tc.z1 = data & 0xfff;
+ } else if (ch == CH_RX) {
+ ts->tc.rx = data & 0xfff;
+ } else if (ch == CH_RY) {
+ ts->tc.ry = data & 0xfff;
+ } else {
+ dev_err(&ts->client->dev, "? CH%d %x\n",
+ ch, data & 0xfff);
+ }
+ }
+ } else {
+ dev_err(&ts->client->dev, "%d = recv()\n", length);
+ }
+
+ dev_dbg(&ts->client->dev, "X:%03x Y:%03x Z1:%03x RX:%03x RY:%03x\n",
+ ts->tc.x, ts->tc.y, ts->tc.z1, ts->tc.rx, ts->tc.ry);
+
+ return !ts->tc.z1; /* return 0 only if pressure not 0 */
+}
+
+static void sx865x_pen_up(struct sx865x *ts)
+{
+ struct input_dev *input = ts->input;
+
+ /* This timer expires after PENIRQs havent been coming in for some time.
+ * It means that the pen is now UP. */
+ input_report_key(input, BTN_TOUCH, 0);
+ input_report_abs(input, ABS_PRESSURE, 0);
+ input_sync(input);
+
+ ts->pendown = 0;
+ dev_dbg(&ts->client->dev, "UP\n");
+}
+
+static int sx865x_data_available(struct sx865x *ts)
+{
+ u8 status;
+
+ status = i2c_smbus_read_byte_data(ts->client,
+ (SX865X_READ_REGISTER | I2C_REG_STAT));
+ return status & STATUS_CONVIRQ;
+}
+
+static int get_pendown_status(struct sx865x *ts)
+{
+ return gpio_get_value(ts->gpio_pendown) ? 0 : 1;
+}
+
+static irqreturn_t sx865x_hw_irq(int irq, void *handle)
+{
+ struct sx865x *ts = handle;
+
+ return get_pendown_status(ts) ? IRQ_WAKE_THREAD : IRQ_HANDLED;
+}
+
+static irqreturn_t sx865x_irq(int irq, void *handle)
+{
+ struct sx865x *ts = handle;
+
+ while (sx865x_data_available(ts)) {
+ /* valid data was read in */
+ if (likely(sx865x_read_values(ts) == 0))
+ sx865x_send_event(ts);
+ else
+ dev_dbg(&ts->client->dev, "data error!\n");
+
+ msleep(SX865X_DOWN_SCANTIME_MS);
+ }
+
+ if (ts->pendown)
+ sx865x_pen_up(ts);
+
+ return IRQ_HANDLED;
+}
+
+static void sx865x_hw_reset(struct sx865x *ts)
+{
+ gpio_direction_output(ts->gpio_reset, 0);
+ udelay(1000);
+ gpio_direction_output(ts->gpio_reset, 1);
+ udelay(1000);
+}
+
+static int sx865x_dt_probe(struct i2c_client *client, struct sx865x *ts)
+{
+ struct device_node *node = client->dev.of_node;
+ const struct of_device_id *match;
+
+ if (!node) {
+ dev_err(&client->dev,
+ "Device dost not have associated DT data\n");
+ goto err_out;
+ }
+
+ match = of_match_device(sx865x_of_match, &client->dev);
+ if (!match) {
+ dev_err(&client->dev,
+ "Unknown device model\n");
+ goto err_out;
+ }
+
+ of_property_read_u32(node, "swap-xy", &ts->swap_xy);
+ of_property_read_u32(node, "invert-x", &ts->invert_x);
+ of_property_read_u32(node, "invert-y", &ts->invert_y);
+
+ ts->gpio_pendown = of_get_named_gpio(node, "gpio-pendown", 0);
+ ts->gpio_reset = of_get_named_gpio(node, "gpio-reset", 0);
+
+ if (gpio_request(ts->gpio_pendown, "ts-pendown")) {
+ dev_err(&client->dev,
+ "gpio request fail (%d)!\n", ts->gpio_pendown);
+ goto err_out;
+ }
+ else
+ gpio_direction_input(ts->gpio_pendown);
+
+ if (gpio_request(ts->gpio_reset, "ts-reset")) {
+ dev_err(&client->dev,
+ "gpio request fail (%d)!\n", ts->gpio_reset);
+ goto err_out;
+ }
+ else
+ sx865x_hw_reset(ts);
+
+ ts->irq = gpio_to_irq(ts->gpio_pendown);
+ if (ts->irq < 0)
+ goto err_out;
+
+ /* platform data info display */
+ dev_info(&client->dev, "swap_xy (%d)\n", ts->swap_xy);
+ dev_info(&client->dev, "invert_x (%d)\n", ts->invert_x);
+ dev_info(&client->dev, "invert_y (%d)\n", ts->invert_y);
+ dev_info(&client->dev, "gpio pendown (%d)\n", ts->gpio_pendown);
+ dev_info(&client->dev, "gpio reset (%d)\n", ts->gpio_reset);
+ dev_info(&client->dev, "gpio irq (%d)\n", ts->irq);
+
+ return 0;
+err_out:
+ return -EINVAL;
+}
+
+static int sx865x_probe(struct i2c_client *client,
+ const struct i2c_device_id *id)
+{
+ struct sx865x *ts;
+ struct input_dev *input_dev;
+ int err = 0;
+
+ dev_info(&client->dev, "sx865x_probe()\n");
+
+ if (!i2c_check_functionality(client->adapter,
+ I2C_FUNC_SMBUS_READ_WORD_DATA))
+ return -EIO;
+
+ ts = devm_kzalloc(&client->dev, sizeof(struct sx865x), GFP_KERNEL);
+ input_dev = devm_input_allocate_device(&client->dev);
+ if (!ts || !input_dev)
+ return -ENOMEM;
+
+ if (sx865x_dt_probe(client, ts) != 0)
+ return -EIO;
+
+ i2c_set_clientdata(client, ts);
+
+ input_dev->name = "SX865X Touchscreen";
+ input_dev->id.bustype = BUS_I2C;
+ input_dev->dev.parent = &client->dev;
+ input_set_drvdata(input_dev, ts);
+
+ input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
+ input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
+
+ input_set_abs_params(input_dev, ABS_X, 0, MAX_12BIT, 0, 0);
+ input_set_abs_params(input_dev, ABS_Y, 0, MAX_12BIT, 0, 0);
+ input_set_abs_params(input_dev, ABS_PRESSURE, 0, MAX_12BIT, 0, 0);
+
+ /* soft reset: SX8650 fails to nak at the end, ignore return value */
+ i2c_smbus_write_byte_data(client, I2C_REG_SOFTRESET, SOFTRESET_VALUE);
+
+ /* set mask to convert X, Y, Z1, RX, RY for CH_SEQ */
+ err = i2c_smbus_write_byte_data(client, I2C_REG_CHANMASK, CHAN_MASK);
+ if (err != 0) return -EIO;
+
+ err = i2c_smbus_write_byte_data(client, I2C_REG_CTRL1,
+ CONDIRQ | FILT_7SA);
+ if (err != 0) return -EIO;
+
+ /* set POWDLY settling time -- adjust TS_TIMEOUT accordingly */
+ err = i2c_smbus_write_byte_data(client, I2C_REG_CTRL0, POWDLY_1_1MS);
+ if (err != 0) return -EIO;
+
+ /* enter pen-trigger mode */
+ err = i2c_smbus_write_byte(client, SX865X_PENTRG);
+ if (err != 0) return -EIO;
+
+ err = request_threaded_irq(ts->irq, sx865x_hw_irq, sx865x_irq,
+ IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
+ client->dev.driver->name, ts);
+
+ if (err < 0) {
+ dev_err(&client->dev, "irq %d busy?\n", ts->irq);
+ return -EIO;
+ }
+
+ err = input_register_device(input_dev);
+ if (err)
+ goto err_free_irq;
+
+ ts->client = client;
+ ts->input = input_dev;
+
+ dev_info(&client->dev, "probe ok! registered with irq (%d)\n", ts->irq);
+
+ return 0;
+
+err_free_irq:
+ if (ts->gpio_pendown)
+ gpio_free(ts->gpio_pendown);
+ if (ts->gpio_reset)
+ gpio_free(ts->gpio_reset);
+ if (ts->irq)
+ free_irq(ts->irq, ts);
+ return err;
+}
+
+static int sx865x_remove(struct i2c_client *client)
+{
+ struct sx865x *ts = i2c_get_clientdata(client);
+ struct sx865x_platform_data *pdata;
+
+ pdata = client->dev.platform_data;
+
+ if (ts->gpio_pendown)
+ gpio_free(ts->gpio_pendown);
+ if (ts->gpio_reset)
+ gpio_free(ts->gpio_reset);
+ if (ts->irq)
+ free_irq(ts->irq, ts);
+
+ input_unregister_device(ts->input);
+
+ return 0;
+}
+
+static struct i2c_driver sx865x_driver = {
+ .driver = {
+ .owner = THIS_MODULE,
+ .name = "sx865x",
+ .of_match_table = of_match_ptr(sx865x_of_match),
+ },
+ .id_table = sx865x_idtable,
+ .probe = sx865x_probe,
+ .remove = sx865x_remove,
+};
+
+module_i2c_driver(sx865x_driver);
+
+MODULE_AUTHOR("Pierluigi Passaro <info@phoenixsoftware.it>");
+MODULE_DESCRIPTION("SX865X TouchScreen Driver");
+MODULE_LICENSE("GPL");
--
2.16.1

View File

@ -0,0 +1,773 @@
From 8da289631087c90a3b644cbdd124bee7f7b348f3 Mon Sep 17 00:00:00 2001
From: Neil Armstrong <narmstrong@baylibre.com>
Date: Thu, 8 Mar 2018 16:35:34 +0100
Subject: [PATCH 39/39] drm/meson: Add support for DMT modes on HDMI
This patch adds support for DMT display modes over HDMI.
The modes timings configurations are from the Amlogic Vendor linux tree
and tested over multiples monitors.
Previously only a selected number of CEA modes were supported.
Only these following modes are supported with these changes:
- 640x480@60Hz
- 800x600@60Hz
- 1024x768@60Hz
- 1152x864@75Hz
- 1280x1024@60Hz
- 1600x1200@60Hz
- 1920x1080@60Hz
The associated code to handle the clock rates is also added.
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
drivers/gpu/drm/meson/meson_dw_hdmi.c | 22 +--
drivers/gpu/drm/meson/meson_vclk.c | 219 ++++++++++++++++++++-
drivers/gpu/drm/meson/meson_venc.c | 347 +++++++++++++++++++++++++++++++++-
drivers/gpu/drm/meson/meson_venc.h | 1 +
4 files changed, 570 insertions(+), 19 deletions(-)
diff --git a/drivers/gpu/drm/meson/meson_dw_hdmi.c b/drivers/gpu/drm/meson/meson_dw_hdmi.c
index 17de3af..9d70ed6 100644
--- a/drivers/gpu/drm/meson/meson_dw_hdmi.c
+++ b/drivers/gpu/drm/meson/meson_dw_hdmi.c
@@ -537,7 +537,6 @@ static irqreturn_t dw_hdmi_top_thread_irq(int irq, void *dev_id)
return IRQ_HANDLED;
}
-/* TOFIX Enable support for non-vic modes */
static enum drm_mode_status
dw_hdmi_mode_valid(struct drm_connector *connector,
const struct drm_display_mode *mode)
@@ -554,12 +553,12 @@ dw_hdmi_mode_valid(struct drm_connector *connector,
mode->vdisplay, mode->vsync_start,
mode->vsync_end, mode->vtotal, mode->type, mode->flags);
- /* For now, only accept VIC modes */
- if (!vic)
- return MODE_BAD;
-
- /* For now, filter by supported VIC modes */
- if (!meson_venc_hdmi_supported_vic(vic))
+ /* Check against non-VIC supported modes */
+ if (!vic) {
+ if (!meson_venc_hdmi_supported_mode(mode))
+ return MODE_BAD;
+ /* Check against supported VIC modes */
+ } else if (!meson_venc_hdmi_supported_vic(vic))
return MODE_BAD;
vclk_freq = mode->clock;
@@ -585,9 +584,14 @@ dw_hdmi_mode_valid(struct drm_connector *connector,
/* Finally filter by configurable vclk frequencies */
switch (vclk_freq) {
+ case 25175:
+ case 40000:
case 54000:
+ case 65000:
case 74250:
+ case 108000:
case 148500:
+ case 162000:
case 297000:
case 594000:
return MODE_OK;
@@ -652,10 +656,6 @@ static void meson_venc_hdmi_encoder_mode_set(struct drm_encoder *encoder,
DRM_DEBUG_DRIVER("%d:\"%s\" vic %d\n",
mode->base.id, mode->name, vic);
- /* Should have been filtered */
- if (!vic)
- return;
-
/* VENC + VENC-DVI Mode setup */
meson_venc_hdmi_mode_set(priv, vic, mode);
diff --git a/drivers/gpu/drm/meson/meson_vclk.c b/drivers/gpu/drm/meson/meson_vclk.c
index 4767704..f051122 100644
--- a/drivers/gpu/drm/meson/meson_vclk.c
+++ b/drivers/gpu/drm/meson/meson_vclk.c
@@ -328,14 +328,24 @@ static void meson_venci_cvbs_clock_config(struct meson_drm *priv)
#define MESON_VCLK_HDMI_DDR_54000 2
/* 2970 /4 /1 /1 /5 /1 => /1 /2 */
#define MESON_VCLK_HDMI_DDR_148500 3
+/* 4028 /4 /4 /1 /5 /2 => /1 /1 */
+#define MESON_VCLK_HDMI_25175 4
+/* 3200 /4 /2 /1 /5 /2 => /1 /1 */
+#define MESON_VCLK_HDMI_40000 5
+/* 5200 /4 /2 /1 /5 /2 => /1 /1 */
+#define MESON_VCLK_HDMI_65000 6
/* 2970 /2 /2 /2 /5 /1 => /1 /1 */
-#define MESON_VCLK_HDMI_74250 4
+#define MESON_VCLK_HDMI_74250 7
+/* 4320 /4 /1 /1 /5 /2 => /1 /1 */
+#define MESON_VCLK_HDMI_108000 8
/* 2970 /1 /2 /2 /5 /1 => /1 /1 */
-#define MESON_VCLK_HDMI_148500 5
+#define MESON_VCLK_HDMI_148500 9
+/* 3240 /2 /1 /1 /5 /2 => /1 /1 */
+#define MESON_VCLK_HDMI_162000 10
/* 2970 /1 /1 /1 /5 /2 => /1 /1 */
-#define MESON_VCLK_HDMI_297000 6
+#define MESON_VCLK_HDMI_297000 11
/* 5940 /1 /1 /2 /5 /1 => /1 /1 */
-#define MESON_VCLK_HDMI_594000 7
+#define MESON_VCLK_HDMI_594000 12
struct meson_vclk_params {
unsigned int pll_base_freq;
@@ -401,6 +411,46 @@ struct meson_vclk_params {
.vid_pll_div = VID_PLL_DIV_5,
.vclk_div = 1,
},
+ [MESON_VCLK_HDMI_25175] = {
+ .pll_base_freq = 4028000,
+ .pll_od1 = 4,
+ .pll_od2 = 4,
+ .pll_od3 = 1,
+ .vid_pll_div = VID_PLL_DIV_5,
+ .vclk_div = 2,
+ },
+ [MESON_VCLK_HDMI_40000] = {
+ .pll_base_freq = 3200000,
+ .pll_od1 = 4,
+ .pll_od2 = 2,
+ .pll_od3 = 1,
+ .vid_pll_div = VID_PLL_DIV_5,
+ .vclk_div = 2,
+ },
+ [MESON_VCLK_HDMI_65000] = {
+ .pll_base_freq = 5200000,
+ .pll_od1 = 4,
+ .pll_od2 = 2,
+ .pll_od3 = 1,
+ .vid_pll_div = VID_PLL_DIV_5,
+ .vclk_div = 2,
+ },
+ [MESON_VCLK_HDMI_108000] = {
+ .pll_base_freq = 4320000,
+ .pll_od1 = 4,
+ .pll_od2 = 1,
+ .pll_od3 = 1,
+ .vid_pll_div = VID_PLL_DIV_5,
+ .vclk_div = 2,
+ },
+ [MESON_VCLK_HDMI_162000] = {
+ .pll_base_freq = 3240000,
+ .pll_od1 = 2,
+ .pll_od2 = 1,
+ .pll_od3 = 1,
+ .vid_pll_div = VID_PLL_DIV_5,
+ .vclk_div = 2,
+ },
};
static inline unsigned int pll_od_to_reg(unsigned int od)
@@ -451,6 +501,90 @@ void meson_hdmi_pll_set(struct meson_drm *priv,
0xFFFF, 0x4e00);
break;
+ case 3200000:
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL, 0x58000242);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL2, 0x00000000);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL3, 0x0d5c5091);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL4, 0x801da72c);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL5, 0x71486980);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL6, 0x00000e55);
+
+ /* unreset */
+ regmap_update_bits(priv->hhi, HHI_HDMI_PLL_CNTL,
+ BIT(28), 0);
+
+ /* Poll for lock bit */
+ regmap_read_poll_timeout(priv->hhi, HHI_HDMI_PLL_CNTL,
+ val, (val & HDMI_PLL_LOCK), 10, 0);
+
+ /* div_frac */
+ regmap_update_bits(priv->hhi, HHI_HDMI_PLL_CNTL2,
+ 0xFFFF, 0x4aab);
+ break;
+
+ case 3240000:
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL, 0x58000243);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL2, 0x00000000);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL3, 0x0d5c5091);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL4, 0x801da72c);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL5, 0x71486980);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL6, 0x00000e55);
+
+ /* unreset */
+ regmap_update_bits(priv->hhi, HHI_HDMI_PLL_CNTL,
+ BIT(28), 0);
+
+ /* Poll for lock bit */
+ regmap_read_poll_timeout(priv->hhi, HHI_HDMI_PLL_CNTL,
+ val, (val & HDMI_PLL_LOCK), 10, 0);
+
+ /* div_frac */
+ regmap_update_bits(priv->hhi, HHI_HDMI_PLL_CNTL2,
+ 0xFFFF, 0x4800);
+ break;
+
+ case 3865000:
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL, 0x58000250);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL2, 0x00000000);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL3, 0x0d5c5091);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL4, 0x801da72c);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL5, 0x71486980);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL6, 0x00000e55);
+
+ /* unreset */
+ regmap_update_bits(priv->hhi, HHI_HDMI_PLL_CNTL,
+ BIT(28), 0);
+
+ /* Poll for lock bit */
+ regmap_read_poll_timeout(priv->hhi, HHI_HDMI_PLL_CNTL,
+ val, (val & HDMI_PLL_LOCK), 10, 0);
+
+ /* div_frac */
+ regmap_update_bits(priv->hhi, HHI_HDMI_PLL_CNTL2,
+ 0xFFFF, 0x4855);
+ break;
+
+ case 4028000:
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL, 0x58000253);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL2, 0x00000000);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL3, 0x0d5c5091);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL4, 0x801da72c);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL5, 0x71486980);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL6, 0x00000e55);
+
+ /* unreset */
+ regmap_update_bits(priv->hhi, HHI_HDMI_PLL_CNTL,
+ BIT(28), 0);
+
+ /* Poll for lock bit */
+ regmap_read_poll_timeout(priv->hhi, HHI_HDMI_PLL_CNTL,
+ val, (val & HDMI_PLL_LOCK), 10, 0);
+
+ /* div_frac */
+ regmap_update_bits(priv->hhi, HHI_HDMI_PLL_CNTL2,
+ 0xFFFF, 0x4eab);
+ break;
+
case 4320000:
regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL, 0x5800025a);
regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL2, 0x00000000);
@@ -485,6 +619,23 @@ void meson_hdmi_pll_set(struct meson_drm *priv,
regmap_read_poll_timeout(priv->hhi, HHI_HDMI_PLL_CNTL,
val, (val & HDMI_PLL_LOCK), 10, 0);
break;
+
+ case 5200000:
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL, 0x5800026c);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL2, 0x00000000);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL3, 0x135c5091);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL4, 0x801da72c);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL5, 0x71486980);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL6, 0x00000e55);
+
+ /* unreset */
+ regmap_update_bits(priv->hhi, HHI_HDMI_PLL_CNTL,
+ BIT(28), 0);
+
+ /* Poll for lock bit */
+ regmap_read_poll_timeout(priv->hhi, HHI_HDMI_PLL_CNTL,
+ val, (val & HDMI_PLL_LOCK), 10, 0);
+ break;
};
} else if (meson_vpu_is_compatible(priv, "amlogic,meson-gxm-vpu") ||
meson_vpu_is_compatible(priv, "amlogic,meson-gxl-vpu")) {
@@ -498,6 +649,42 @@ void meson_hdmi_pll_set(struct meson_drm *priv,
regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL6, 0x01a31500);
break;
+ case 3200000:
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL, 0x40000285);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL2, 0x800cb155);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL3, 0x860f30c4);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL4, 0x0c8e0000);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL5, 0x001fa729);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL6, 0x01a31500);
+ break;
+
+ case 3240000:
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL, 0x40000287);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL2, 0x800cb000);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL3, 0x860f30c4);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL4, 0x0c8e0000);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL5, 0x001fa729);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL6, 0x01a31500);
+ break;
+
+ case 3865000:
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL, 0x400002a1);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL2, 0x800cb02b);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL3, 0x860f30c4);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL4, 0x0c8e0000);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL5, 0x001fa729);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL6, 0x01a31500);
+ break;
+
+ case 4028000:
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL, 0x400002a7);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL2, 0x800cb355);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL3, 0x860f30c4);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL4, 0x0c8e0000);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL5, 0x001fa729);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL6, 0x01a31500);
+ break;
+
case 4320000:
regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL, 0x400002b4);
regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL2, 0x800cb000);
@@ -516,6 +703,15 @@ void meson_hdmi_pll_set(struct meson_drm *priv,
regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL6, 0x01a31500);
break;
+ case 5200000:
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL, 0x400002d8);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL2, 0x800cb2ab);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL3, 0x860f30c4);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL4, 0x0c8e0000);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL5, 0x001fa729);
+ regmap_write(priv->hhi, HHI_HDMI_PLL_CNTL6, 0x01a31500);
+ break;
+
};
/* Reset PLL */
@@ -590,15 +786,30 @@ void meson_vclk_setup(struct meson_drm *priv, unsigned int target,
else
freq = MESON_VCLK_HDMI_DDR_54000;
break;
+ case 25175:
+ freq = MESON_VCLK_HDMI_25175;
+ break;
+ case 40000:
+ freq = MESON_VCLK_HDMI_40000;
+ break;
+ case 65000:
+ freq = MESON_VCLK_HDMI_65000;
+ break;
case 74250:
freq = MESON_VCLK_HDMI_74250;
break;
+ case 108000:
+ freq = MESON_VCLK_HDMI_108000;
+ break;
case 148500:
if (dac_freq != 148500)
freq = MESON_VCLK_HDMI_DDR_148500;
else
freq = MESON_VCLK_HDMI_148500;
break;
+ case 162000:
+ freq = MESON_VCLK_HDMI_162000;
+ break;
case 297000:
freq = MESON_VCLK_HDMI_297000;
break;
diff --git a/drivers/gpu/drm/meson/meson_venc.c b/drivers/gpu/drm/meson/meson_venc.c
index 9509017..6e27013 100644
--- a/drivers/gpu/drm/meson/meson_venc.c
+++ b/drivers/gpu/drm/meson/meson_venc.c
@@ -697,6 +697,314 @@ union meson_hdmi_venc_mode meson_hdmi_encp_mode_1080p60 = {
},
};
+union meson_hdmi_venc_mode meson_hdmi_encp_mode_640x480_60 = {
+ .encp = {
+ .dvi_settings = 0x21,
+ .video_mode = 0x4040,
+ .video_mode_adv = 0x18,
+ /* video_prog_mode */
+ /* video_sync_mode */
+ /* video_yc_dly */
+ /* video_rgb_ctrl */
+ /* video_filt_ctrl */
+ /* video_ofld_voav_ofst */
+ /* yfp1_htime */
+ /* yfp2_htime */
+ .max_pxcnt = 0x31f,
+ /* hspuls_begin */
+ /* hspuls_end */
+ /* hspuls_switch */
+ /* vspuls_begin */
+ /* vspuls_end */
+ /* vspuls_bline */
+ /* vspuls_eline */
+ .havon_begin = 0x90,
+ .havon_end = 0x30f,
+ .vavon_bline = 0x23,
+ .vavon_eline = 0x202,
+ /* eqpuls_begin */
+ /* eqpuls_end */
+ /* eqpuls_bline */
+ /* eqpuls_eline */
+ .hso_begin = 0,
+ .hso_end = 0x60,
+ .vso_begin = 0x1e,
+ .vso_end = 0x32,
+ .vso_bline = 0,
+ .vso_eline = 2,
+ .vso_eline_present = true,
+ /* sy_val */
+ /* sy2_val */
+ .max_lncnt = 0x20c,
+ },
+};
+
+union meson_hdmi_venc_mode meson_hdmi_encp_mode_800x600_60 = {
+ .encp = {
+ .dvi_settings = 0x21,
+ .video_mode = 0x4040,
+ .video_mode_adv = 0x18,
+ /* video_prog_mode */
+ /* video_sync_mode */
+ /* video_yc_dly */
+ /* video_rgb_ctrl */
+ /* video_filt_ctrl */
+ /* video_ofld_voav_ofst */
+ /* yfp1_htime */
+ /* yfp2_htime */
+ .max_pxcnt = 0x41f,
+ /* hspuls_begin */
+ /* hspuls_end */
+ /* hspuls_switch */
+ /* vspuls_begin */
+ /* vspuls_end */
+ /* vspuls_bline */
+ /* vspuls_eline */
+ .havon_begin = 0xD8,
+ .havon_end = 0x3f7,
+ .vavon_bline = 0x1b,
+ .vavon_eline = 0x272,
+ /* eqpuls_begin */
+ /* eqpuls_end */
+ /* eqpuls_bline */
+ /* eqpuls_eline */
+ .hso_begin = 0,
+ .hso_end = 0x80,
+ .vso_begin = 0x1e,
+ .vso_end = 0x32,
+ .vso_bline = 0,
+ .vso_eline = 4,
+ .vso_eline_present = true,
+ /* sy_val */
+ /* sy2_val */
+ .max_lncnt = 0x273,
+ },
+};
+
+union meson_hdmi_venc_mode meson_hdmi_encp_mode_1024x768_60 = {
+ .encp = {
+ .dvi_settings = 0x21,
+ .video_mode = 0x4040,
+ .video_mode_adv = 0x18,
+ /* video_prog_mode */
+ /* video_sync_mode */
+ /* video_yc_dly */
+ /* video_rgb_ctrl */
+ /* video_filt_ctrl */
+ /* video_ofld_voav_ofst */
+ /* yfp1_htime */
+ /* yfp2_htime */
+ .max_pxcnt = 1343,
+ /* hspuls_begin */
+ /* hspuls_end */
+ /* hspuls_switch */
+ /* vspuls_begin */
+ /* vspuls_end */
+ /* vspuls_bline */
+ /* vspuls_eline */
+ .havon_begin = 296,
+ .havon_end = 1319,
+ .vavon_bline = 35,
+ .vavon_eline = 802,
+ /* eqpuls_begin */
+ /* eqpuls_end */
+ /* eqpuls_bline */
+ /* eqpuls_eline */
+ .hso_begin = 0,
+ .hso_end = 136,
+ .vso_begin = 30,
+ .vso_end = 50,
+ .vso_bline = 0,
+ .vso_eline = 6,
+ .vso_eline_present = true,
+ /* sy_val */
+ /* sy2_val */
+ .max_lncnt = 805,
+ },
+};
+
+union meson_hdmi_venc_mode meson_hdmi_encp_mode_1152x864_75 = {
+ .encp = {
+ .dvi_settings = 0x21,
+ .video_mode = 0x4040,
+ .video_mode_adv = 0x18,
+ /* video_prog_mode */
+ /* video_sync_mode */
+ /* video_yc_dly */
+ /* video_rgb_ctrl */
+ /* video_filt_ctrl */
+ /* video_ofld_voav_ofst */
+ /* yfp1_htime */
+ /* yfp2_htime */
+ .max_pxcnt = 0x63f,
+ /* hspuls_begin */
+ /* hspuls_end */
+ /* hspuls_switch */
+ /* vspuls_begin */
+ /* vspuls_end */
+ /* vspuls_bline */
+ /* vspuls_eline */
+ .havon_begin = 0x180,
+ .havon_end = 0x5ff,
+ .vavon_bline = 0x23,
+ .vavon_eline = 0x382,
+ /* eqpuls_begin */
+ /* eqpuls_end */
+ /* eqpuls_bline */
+ /* eqpuls_eline */
+ .hso_begin = 0,
+ .hso_end = 0x80,
+ .vso_begin = 0x1e,
+ .vso_end = 0x32,
+ .vso_bline = 0,
+ .vso_eline = 3,
+ .vso_eline_present = true,
+ /* sy_val */
+ /* sy2_val */
+ .max_lncnt = 0x383,
+ },
+};
+
+union meson_hdmi_venc_mode meson_hdmi_encp_mode_1280x1024_60 = {
+ .encp = {
+ .dvi_settings = 0x21,
+ .video_mode = 0x4040,
+ .video_mode_adv = 0x18,
+ /* video_prog_mode */
+ /* video_sync_mode */
+ /* video_yc_dly */
+ /* video_rgb_ctrl */
+ /* video_filt_ctrl */
+ /* video_ofld_voav_ofst */
+ /* yfp1_htime */
+ /* yfp2_htime */
+ .max_pxcnt = 0x697,
+ /* hspuls_begin */
+ /* hspuls_end */
+ /* hspuls_switch */
+ /* vspuls_begin */
+ /* vspuls_end */
+ /* vspuls_bline */
+ /* vspuls_eline */
+ .havon_begin = 0x168,
+ .havon_end = 0x667,
+ .vavon_bline = 0x29,
+ .vavon_eline = 0x428,
+ /* eqpuls_begin */
+ /* eqpuls_end */
+ /* eqpuls_bline */
+ /* eqpuls_eline */
+ .hso_begin = 0,
+ .hso_end = 0x70,
+ .vso_begin = 0x1e,
+ .vso_end = 0x32,
+ .vso_bline = 0,
+ .vso_eline = 3,
+ .vso_eline_present = true,
+ /* sy_val */
+ /* sy2_val */
+ .max_lncnt = 0x429,
+ },
+};
+
+union meson_hdmi_venc_mode meson_hdmi_encp_mode_1600x1200_60 = {
+ .encp = {
+ .dvi_settings = 0x21,
+ .video_mode = 0x4040,
+ .video_mode_adv = 0x18,
+ /* video_prog_mode */
+ /* video_sync_mode */
+ /* video_yc_dly */
+ /* video_rgb_ctrl */
+ /* video_filt_ctrl */
+ /* video_ofld_voav_ofst */
+ /* yfp1_htime */
+ /* yfp2_htime */
+ .max_pxcnt = 0x86f,
+ /* hspuls_begin */
+ /* hspuls_end */
+ /* hspuls_switch */
+ /* vspuls_begin */
+ /* vspuls_end */
+ /* vspuls_bline */
+ /* vspuls_eline */
+ .havon_begin = 0x1f0,
+ .havon_end = 0x82f,
+ .vavon_bline = 0x31,
+ .vavon_eline = 0x4e0,
+ /* eqpuls_begin */
+ /* eqpuls_end */
+ /* eqpuls_bline */
+ /* eqpuls_eline */
+ .hso_begin = 0,
+ .hso_end = 0xc0,
+ .vso_begin = 0x1e,
+ .vso_end = 0x32,
+ .vso_bline = 0,
+ .vso_eline = 3,
+ .vso_eline_present = true,
+ /* sy_val */
+ /* sy2_val */
+ .max_lncnt = 0x4e1,
+ },
+};
+
+struct meson_hdmi_venc_dmt_mode {
+ struct drm_display_mode drm_mode;
+ union meson_hdmi_venc_mode *mode;
+} meson_hdmi_venc_dmt_modes[] = {
+ /* 640x480@60Hz */
+ {
+ { DRM_MODE("640x480", DRM_MODE_TYPE_DRIVER, 25175, 640, 656,
+ 752, 800, 0, 480, 490, 492, 525, 0,
+ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+ &meson_hdmi_encp_mode_640x480_60,
+ },
+ /* 800x600@60Hz */
+ {
+ { DRM_MODE("800x600", DRM_MODE_TYPE_DRIVER, 40000, 800, 840,
+ 968, 1056, 0, 600, 601, 605, 628, 0,
+ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+ &meson_hdmi_encp_mode_800x600_60,
+ },
+ /* 1024x768@60Hz */
+ {
+ { DRM_MODE("1024x768", DRM_MODE_TYPE_DRIVER, 65000, 1024,
+ 1048, 1184, 1344, 0, 768, 771, 777, 806, 0,
+ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+ &meson_hdmi_encp_mode_1024x768_60,
+ },
+ /* 1152x864@75Hz */
+ {
+ { DRM_MODE("1152x864", DRM_MODE_TYPE_DRIVER, 108000, 1152,
+ 1216, 1344, 1600, 0, 864, 865, 868, 900, 0,
+ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+ &meson_hdmi_encp_mode_1152x864_75,
+ },
+ /* 1280x1024@60Hz */
+ {
+ { DRM_MODE("1280x1024", DRM_MODE_TYPE_DRIVER, 108000, 1280,
+ 1328, 1440, 1688, 0, 1024, 1025, 1028, 1066, 0,
+ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+ &meson_hdmi_encp_mode_1280x1024_60,
+ },
+ /* 1600x1200@60Hz */
+ {
+ { DRM_MODE("1600x1200", DRM_MODE_TYPE_DRIVER, 162000, 1600,
+ 1664, 1856, 2160, 0, 1200, 1201, 1204, 1250, 0,
+ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+ &meson_hdmi_encp_mode_1600x1200_60,
+ },
+ /* 1920x1080@60Hz */
+ {
+ { DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 148500, 1920,
+ 2008, 2052, 2200, 0, 1080, 1084, 1089, 1125, 0,
+ DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) },
+ &meson_hdmi_encp_mode_1080p60
+ },
+ { }, /* sentinel */
+};
+
struct meson_hdmi_venc_vic_mode {
unsigned int vic;
union meson_hdmi_venc_mode *mode;
@@ -736,6 +1044,20 @@ static unsigned long modulo(unsigned long a, unsigned long b)
return a;
}
+bool meson_venc_hdmi_supported_mode(const struct drm_display_mode *mode)
+{
+ struct meson_hdmi_venc_dmt_mode *vmode = meson_hdmi_venc_dmt_modes;
+
+ while (vmode->mode) {
+ if (drm_mode_equal(&vmode->drm_mode, mode))
+ return true;
+ vmode++;
+ }
+
+ return false;
+}
+EXPORT_SYMBOL_GPL(meson_venc_hdmi_supported_mode);
+
bool meson_venc_hdmi_supported_vic(int vic)
{
struct meson_hdmi_venc_vic_mode *vmode = meson_hdmi_venc_vic_modes;
@@ -750,6 +1072,20 @@ bool meson_venc_hdmi_supported_vic(int vic)
}
EXPORT_SYMBOL_GPL(meson_venc_hdmi_supported_vic);
+static union meson_hdmi_venc_mode
+*meson_venc_hdmi_get_dmt_vmode(const struct drm_display_mode *mode)
+{
+ struct meson_hdmi_venc_dmt_mode *vmode = meson_hdmi_venc_dmt_modes;
+
+ while (vmode->mode) {
+ if (drm_mode_equal(&vmode->drm_mode, mode))
+ return vmode->mode;
+ vmode++;
+ }
+
+ return NULL;
+}
+
static union meson_hdmi_venc_mode *meson_venc_hdmi_get_vic_vmode(int vic)
{
struct meson_hdmi_venc_vic_mode *vmode = meson_hdmi_venc_vic_modes;
@@ -811,10 +1147,13 @@ void meson_venc_hdmi_mode_set(struct meson_drm *priv, int vic,
unsigned int sof_lines;
unsigned int vsync_lines;
- vmode = meson_venc_hdmi_get_vic_vmode(vic);
+ if (meson_venc_hdmi_supported_vic(vic))
+ vmode = meson_venc_hdmi_get_vic_vmode(vic);
+ else
+ vmode = meson_venc_hdmi_get_dmt_vmode(mode);
if (!vmode) {
- dev_err(priv->dev, "%s: Fatal Error, unsupported vic %d\n",
- __func__, vic);
+ dev_err(priv->dev, "%s: Fatal Error, unsupported mode "
+ DRM_MODE_FMT "\n", __func__, DRM_MODE_ARG(mode));
return;
}
@@ -864,7 +1203,7 @@ void meson_venc_hdmi_mode_set(struct meson_drm *priv, int vic,
hsync_pixels_venc *= 2;
/* Disable VDACs */
- writel_bits_relaxed(0x1f, 0x1f,
+ writel_bits_relaxed(0xff, 0xff,
priv->io_base + _REG(VENC_VDAC_SETTING));
writel_relaxed(0, priv->io_base + _REG(ENCI_VIDEO_EN));
diff --git a/drivers/gpu/drm/meson/meson_venc.h b/drivers/gpu/drm/meson/meson_venc.h
index a1b96e8..7c18a36 100644
--- a/drivers/gpu/drm/meson/meson_venc.h
+++ b/drivers/gpu/drm/meson/meson_venc.h
@@ -58,6 +58,7 @@ struct meson_cvbs_enci_mode {
};
/* HDMI Clock parameters */
+bool meson_venc_hdmi_supported_mode(const struct drm_display_mode *mode);
bool meson_venc_hdmi_supported_vic(int vic);
bool meson_venc_hdmi_venc_repeat(int vic);
--
2.7.4

View File

@ -1,46 +0,0 @@
From 16c5d31e8fdd260a78d8dc137b1c3686077253fe Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 16 Feb 2018 23:39:37 -0800
Subject: [PATCH 39/39] dts: add ODROID-3.5 Inch touchscreen driver(sx8650)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
.../arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
index 4e0b3c7ec081..071e9711880c 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
@@ -250,6 +250,28 @@
pinctrl-names = "default";
};
+&i2c_B {
+ status = "okay";
+
+ /* Hardkernel I2C 3.5" Touchscreen */
+ /* drivers/input/sx865x.c */
+ sx865x: sx865x@49 {
+ status = "okay";
+ compatible = "semtech,sx8650";
+ reg = <0x49>;
+ #clock-cells = <0>;
+
+ /* H/W Pin control setup */
+ gpio-pendown = <&gpio GPIOY_7 0>;
+ gpio-reset = <&gpio GPIOY_13 0 >;
+
+ /* platform data setup */
+ invert-x = <0>;
+ invert-y = <1>;
+ swap-xy = <1>;
+ };
+};
+
&ir {
status = "okay";
pinctrl-0 = <&remote_input_ao_pins>;
--
2.16.1

View File

@ -18,7 +18,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c2 $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c2/hassos-hook.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.14.14"
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.14.36"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c2/kernel.config"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/hassos-4_14.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/device-support.config"