mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
linux: bump Amlogic to Linux 5.18.y
This commit is contained in:
parent
081929f9c5
commit
7454b09ee5
@ -16,8 +16,8 @@ PKG_PATCH_DIRS="${LINUX}"
|
||||
|
||||
case "${LINUX}" in
|
||||
amlogic)
|
||||
PKG_VERSION="f443e374ae131c168a065ea1748feac6b2e76613" # 5.17.0
|
||||
PKG_SHA256="23baf1a7569ca1b828965ce8af07a412f2497a1530ad8307311edf01346d89b7"
|
||||
PKG_VERSION="4b0986a3613c92f4ec1bdc7f60ec66fea135991f" # 5.18.0
|
||||
PKG_SHA256="437360f90fd93143a513d07be40175eb3d0509a6862808adf20f401d0a458ef0"
|
||||
PKG_URL="https://github.com/torvalds/linux/archive/${PKG_VERSION}.tar.gz"
|
||||
PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz"
|
||||
;;
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 4b6096bb3fd5bdc139a45e022e4a2380ea919dea Mon Sep 17 00:00:00 2001
|
||||
From b1df1a0cec010e38aa9f564bbb76cc4d0ee83c83 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sat, 13 Apr 2019 05:41:51 +0000
|
||||
Subject: [PATCH 01/90] HACK: set meson-gx cma pool to 896MB
|
||||
Subject: [PATCH 01/75] HACK: set meson-gx cma pool to 896MB
|
||||
|
||||
This change sets the CMA pool to a larger 896MB! value for vdec use
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 18586e3d94827f63903c4cd596a0a06134261c00 Mon Sep 17 00:00:00 2001
|
||||
From c20b4b9e9515a5cb13325e0ef78e2dc5b4ffb4f1 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 14 Aug 2019 19:58:14 +0000
|
||||
Subject: [PATCH 02/90] HACK: set meson-g12 cma pool to 896MB
|
||||
Subject: [PATCH 02/75] HACK: set meson-g12 cma pool to 896MB
|
||||
|
||||
This change sets the CMA pool to a larger 896MB! value for vdec use
|
||||
|
||||
@ -11,7 +11,7 @@ Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
|
||||
index f84d4b489e0b..04da23119ff1 100644
|
||||
index 45947c1031c4..2c56b216d6f9 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
|
||||
@@ -116,7 +116,7 @@
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 5c9793b46115c2fd774678de7ff5efd7d6ae8d72 Mon Sep 17 00:00:00 2001
|
||||
From 84a25e6dd92b544178ac31be3fc0fefe2aac76ee Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sat, 13 Apr 2019 05:45:18 +0000
|
||||
Subject: [PATCH 03/90] HACK: arm64: fix Kodi sysinfo CPU information
|
||||
Subject: [PATCH 03/75] HACK: arm64: fix Kodi sysinfo CPU information
|
||||
|
||||
This allows the CPU information to show in the Kodi sysinfo screen, e.g.
|
||||
|
||||
@ -13,10 +13,10 @@ Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c
|
||||
index 591c18a889a5..fdd91a00a285 100644
|
||||
index 330b92ea863a..b84670cdea1b 100644
|
||||
--- a/arch/arm64/kernel/cpuinfo.c
|
||||
+++ b/arch/arm64/kernel/cpuinfo.c
|
||||
@@ -151,8 +151,7 @@ static int c_show(struct seq_file *m, void *v)
|
||||
@@ -152,8 +152,7 @@ static int c_show(struct seq_file *m, void *v)
|
||||
* "processor". Give glibc what it expects.
|
||||
*/
|
||||
seq_printf(m, "processor\t: %d\n", i);
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 33f05e843b3afe9c0effb91eae76ab42c114ad88 Mon Sep 17 00:00:00 2001
|
||||
From db8d6fd7c8a5ec09d32f15567c5cb1a7aba5df14 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 5 Jan 2022 15:03:06 +0000
|
||||
Subject: [PATCH 04/90] HACK: arm64: dts: meson: add LibreELEC device-tree
|
||||
Subject: [PATCH 04/75] HACK: arm64: dts: meson: add LibreELEC device-tree
|
||||
overlays for Amlogic
|
||||
|
||||
This commit implements a series of device-tree overlays used with LibreELEC
|
||||
@ -17,13 +17,13 @@ Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
create mode 100644 arch/arm64/boot/dts/amlogic/overlays/wifi-rtl8189etv.dts
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
index 5148cd9e5146..19d4d75305af 100644
|
||||
index 0eec18678311..34990beb4e5a 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/Makefile
|
||||
+++ b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
@@ -57,3 +57,5 @@ dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-c4.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-hc4.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-sei610.dtb
|
||||
@@ -64,3 +64,5 @@ dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-air.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-air-gbit.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-s4-s805x2-aq222.dtb
|
||||
+
|
||||
+subdir-y += overlays
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/overlays/Makefile b/arch/arm64/boot/dts/amlogic/overlays/Makefile
|
||||
|
@ -1,7 +1,7 @@
|
||||
From e0252efa9190de31a2fc98eed28b273428a3fe36 Mon Sep 17 00:00:00 2001
|
||||
From f457008e42e2a273c0ab480894381e7c96308d84 Mon Sep 17 00:00:00 2001
|
||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
||||
Date: Thu, 3 Nov 2016 15:29:23 +0100
|
||||
Subject: [PATCH 05/90] HACK: arm64: meson: add Amlogic Meson GX PM Suspend
|
||||
Subject: [PATCH 05/75] HACK: arm64: meson: add Amlogic Meson GX PM Suspend
|
||||
|
||||
The Amlogic Meson GX SoCs uses a non-standard argument to the
|
||||
PSCI CPU_SUSPEND call to enter system suspend.
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 9c2b8d82e36bf5ce932e6561d13adf5c7c5d367f Mon Sep 17 00:00:00 2001
|
||||
From d85566c8d4de95b466dfbdf0d4d5f53e57584cf7 Mon Sep 17 00:00:00 2001
|
||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
||||
Date: Thu, 3 Nov 2016 15:29:25 +0100
|
||||
Subject: [PATCH 06/90] HACK: arm64: dts: meson: add support for GX PM and
|
||||
Subject: [PATCH 06/75] HACK: arm64: dts: meson: add support for GX PM and
|
||||
Virtual RTC
|
||||
|
||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 5ff8dfecb282089107d1bd3da6b612c5294fe0cb Mon Sep 17 00:00:00 2001
|
||||
From 13453d3ca24c5607ac8370f764391e2bd163cb95 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Thu, 21 Jan 2021 01:35:36 +0000
|
||||
Subject: [PATCH 07/90] HACK: arm64: dts: meson: add rtc/vrtc aliases to Khadas
|
||||
Subject: [PATCH 07/75] HACK: arm64: dts: meson: add rtc/vrtc aliases to Khadas
|
||||
VIM
|
||||
|
||||
Add aliases to ensure the vrtc time (which normally proves first) is /dev/rtc1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 293a4281d04100f1a0ab8ced46a45fc557f6e130 Mon Sep 17 00:00:00 2001
|
||||
From 112af0d7e7aa4f18706d5242d7871477586fcde0 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sat, 6 Nov 2021 13:01:08 +0000
|
||||
Subject: [PATCH 08/90] HACK: arm64: dts: meson: add rtc/vrtc aliases to Khadas
|
||||
Subject: [PATCH 08/75] HACK: arm64: dts: meson: add rtc/vrtc aliases to Khadas
|
||||
VIM2
|
||||
|
||||
Add aliases to ensure the vrtc time (which normally proves first) is /dev/rtc1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 2d353b2a41bc5f7848c9b57ccd62e13ffe36d1db Mon Sep 17 00:00:00 2001
|
||||
From 8479ed7389a4957ef0bc87fd11d1f1129236faa4 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Mon, 1 Feb 2021 19:27:40 +0000
|
||||
Subject: [PATCH 09/90] HACK: arm64: dts: meson: add rtc/vrtc aliases to Minix
|
||||
Subject: [PATCH 09/75] HACK: arm64: dts: meson: add rtc/vrtc aliases to Minix
|
||||
NEO U9-H
|
||||
|
||||
Add node aliases to prevent meson-vrtc from claiming /dev/rtc0
|
||||
|
@ -0,0 +1,59 @@
|
||||
From 1faff4f99dd89ff6ed21a3dda81974a965e50cf8 Mon Sep 17 00:00:00 2001
|
||||
From: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
Date: Sun, 17 Apr 2022 04:37:48 +0000
|
||||
Subject: [PATCH 10/75] HACK: ALSA: Assign internal PCM chmap/ELD/IEC958 kctls
|
||||
to device 0
|
||||
|
||||
On SoC sound devices utilizing codec2codec DAI links with a HDMI codec
|
||||
the kctls for chmap, ELD, IEC958 are currently created using the
|
||||
internal PCM device numbers. This causes userspace to not see the
|
||||
actual channel mapping.
|
||||
|
||||
Affected devices include LibreTech LePotato and Wetek Play 2.
|
||||
|
||||
The proper fix would be not create these kctls for internal PCMs and
|
||||
instead create them for the real userspace-visible PCMs, somehow
|
||||
forwarding the controls between the HDMI codec and the real PCM.
|
||||
|
||||
As a workaround, simply use device=0 for all channel map controls and
|
||||
SoC HDMI codec controls for internal PCM devices.
|
||||
|
||||
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
---
|
||||
sound/core/pcm_lib.c | 5 ++++-
|
||||
sound/soc/codecs/hdmi-codec.c | 3 ++-
|
||||
2 files changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c
|
||||
index 1fc7c50ffa62..9b40289c1fd1 100644
|
||||
--- a/sound/core/pcm_lib.c
|
||||
+++ b/sound/core/pcm_lib.c
|
||||
@@ -2514,7 +2514,10 @@ int snd_pcm_add_chmap_ctls(struct snd_pcm *pcm, int stream,
|
||||
knew.name = "Playback Channel Map";
|
||||
else
|
||||
knew.name = "Capture Channel Map";
|
||||
- knew.device = pcm->device;
|
||||
+ if (pcm->internal && pcm->device)
|
||||
+ dev_info(pcm->card->dev, "workaround active: internal PCM chmap controls mapped to device 0\n");
|
||||
+ else
|
||||
+ knew.device = pcm->device;
|
||||
knew.count = pcm->streams[stream].substream_count;
|
||||
knew.private_value = private_value;
|
||||
info->kctl = snd_ctl_new1(&knew, info);
|
||||
diff --git a/sound/soc/codecs/hdmi-codec.c b/sound/soc/codecs/hdmi-codec.c
|
||||
index b07607a9ecea..bcb018ea690b 100644
|
||||
--- a/sound/soc/codecs/hdmi-codec.c
|
||||
+++ b/sound/soc/codecs/hdmi-codec.c
|
||||
@@ -802,7 +802,8 @@ static int hdmi_codec_pcm_new(struct snd_soc_pcm_runtime *rtd,
|
||||
if (!kctl)
|
||||
return -ENOMEM;
|
||||
|
||||
- kctl->id.device = rtd->pcm->device;
|
||||
+ if (!rtd->pcm->internal)
|
||||
+ kctl->id.device = rtd->pcm->device;
|
||||
ret = snd_ctl_add(rtd->card->snd_card, kctl);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 790f6b3e8f35b76bb45f011046b680108f6cae87 Mon Sep 17 00:00:00 2001
|
||||
From 4b8af442a3524cede5cee4eef590b813bdc8e5c7 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Mon, 3 Jan 2022 10:44:17 +0000
|
||||
Subject: [PATCH 10/90] HACK: usb: hub: disable autosuspend for Genesys Logic
|
||||
Subject: [PATCH 11/75] HACK: usb: hub: disable autosuspend for Genesys Logic
|
||||
Hubs
|
||||
|
||||
Disable autosuspend in Genesys Logic hubs to allow USB devices on the
|
||||
@ -17,10 +17,10 @@ Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
|
||||
index 47a1c8bddf86..588f3ded89cd 100644
|
||||
index 1460857026e0..956ccc7bb8b7 100644
|
||||
--- a/drivers/usb/core/hub.c
|
||||
+++ b/drivers/usb/core/hub.c
|
||||
@@ -5804,7 +5804,7 @@ static const struct usb_device_id hub_id_table[] = {
|
||||
@@ -5809,7 +5809,7 @@ static const struct usb_device_id hub_id_table[] = {
|
||||
| USB_DEVICE_ID_MATCH_INT_CLASS,
|
||||
.idVendor = USB_VENDOR_GENESYS_LOGIC,
|
||||
.bInterfaceClass = USB_CLASS_HUB,
|
@ -1,325 +0,0 @@
|
||||
From 748860f58f3af7517e69b3e65de8739a47273980 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 24 Jun 2020 12:41:46 +0000
|
||||
Subject: [PATCH 12/90] FROMGIT(5.18): arm64: dts: meson: add common SM1 ac2xx
|
||||
dtsi
|
||||
|
||||
Add a common dtsi for Android STB devices based on the Amlogic S905X3
|
||||
(AC213/AC214) and S905D3 (AC201/AC202) reference designs. The dtsi is
|
||||
loosely based on the existing SEI610 device-tree.
|
||||
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
---
|
||||
.../boot/dts/amlogic/meson-sm1-ac2xx.dtsi | 300 ++++++++++++++++++
|
||||
1 file changed, 300 insertions(+)
|
||||
create mode 100644 arch/arm64/boot/dts/amlogic/meson-sm1-ac2xx.dtsi
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-ac2xx.dtsi b/arch/arm64/boot/dts/amlogic/meson-sm1-ac2xx.dtsi
|
||||
new file mode 100644
|
||||
index 000000000000..46a34731f7e2
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-ac2xx.dtsi
|
||||
@@ -0,0 +1,300 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright (c) 2019 BayLibre SAS. All rights reserved.
|
||||
+ * Copyright (c) 2020 Christian Hewitt <christianshewitt@gmail.com>
|
||||
+ *
|
||||
+ * AC200/AC202 = S905D3
|
||||
+ * AC213/AC214 = S905X3
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#include "meson-sm1.dtsi"
|
||||
+#include <dt-bindings/gpio/gpio.h>
|
||||
+#include <dt-bindings/gpio/meson-g12a-gpio.h>
|
||||
+#include <dt-bindings/input/input.h>
|
||||
+
|
||||
+/ {
|
||||
+ aliases {
|
||||
+ serial0 = &uart_AO;
|
||||
+ ethernet0 = ðmac;
|
||||
+ };
|
||||
+
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
+ emmc_pwrseq: emmc-pwrseq {
|
||||
+ compatible = "mmc-pwrseq-emmc";
|
||||
+ reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
|
||||
+ };
|
||||
+
|
||||
+ cvbs-connector {
|
||||
+ compatible = "composite-video-connector";
|
||||
+
|
||||
+ port {
|
||||
+ cvbs_connector_in: endpoint {
|
||||
+ remote-endpoint = <&cvbs_vdac_out>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ hdmi-connector {
|
||||
+ compatible = "hdmi-connector";
|
||||
+ type = "a";
|
||||
+
|
||||
+ port {
|
||||
+ hdmi_connector_in: endpoint {
|
||||
+ remote-endpoint = <&hdmi_tx_tmds_out>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ memory@0 {
|
||||
+ device_type = "memory";
|
||||
+ reg = <0x0 0x0 0x0 0x40000000>;
|
||||
+ };
|
||||
+
|
||||
+ ao_5v: regulator-ao_5v {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "AO_5V";
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ vin-supply = <&dc_in>;
|
||||
+ regulator-always-on;
|
||||
+ };
|
||||
+
|
||||
+ dc_in: regulator-dc_in {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "DC_IN";
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ };
|
||||
+
|
||||
+ emmc_1v8: regulator-emmc_1v8 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "EMMC_1V8";
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ vin-supply = <&vddao_3v3>;
|
||||
+ regulator-always-on;
|
||||
+ };
|
||||
+
|
||||
+ vddao_3v3: regulator-vddao_3v3 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "VDDAO_3V3";
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ vin-supply = <&dc_in>;
|
||||
+ regulator-always-on;
|
||||
+ };
|
||||
+
|
||||
+ vddcpu: regulator-vddcpu {
|
||||
+ compatible = "pwm-regulator";
|
||||
+
|
||||
+ regulator-name = "VDDCPU";
|
||||
+ regulator-min-microvolt = <690000>;
|
||||
+ regulator-max-microvolt = <1050000>;
|
||||
+
|
||||
+ vin-supply = <&dc_in>;
|
||||
+
|
||||
+ pwms = <&pwm_AO_cd 1 1500 0>;
|
||||
+ pwm-dutycycle-range = <100 0>;
|
||||
+
|
||||
+ regulator-boot-on;
|
||||
+ regulator-always-on;
|
||||
+ };
|
||||
+
|
||||
+ vddio_ao1v8: regulator-vddio_ao1v8 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "VDDIO_AO1V8";
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ vin-supply = <&vddao_3v3>;
|
||||
+ regulator-always-on;
|
||||
+ };
|
||||
+
|
||||
+ sdio_pwrseq: sdio-pwrseq {
|
||||
+ compatible = "mmc-pwrseq-simple";
|
||||
+ reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
|
||||
+ clocks = <&wifi32k>;
|
||||
+ clock-names = "ext_clock";
|
||||
+ };
|
||||
+
|
||||
+ wifi32k: wifi32k {
|
||||
+ compatible = "pwm-clock";
|
||||
+ #clock-cells = <0>;
|
||||
+ clock-frequency = <32768>;
|
||||
+ pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&cec_AO {
|
||||
+ pinctrl-0 = <&cec_ao_a_h_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ status = "disabled";
|
||||
+ hdmi-phandle = <&hdmi_tx>;
|
||||
+};
|
||||
+
|
||||
+&cecb_AO {
|
||||
+ pinctrl-0 = <&cec_ao_b_h_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ status = "okay";
|
||||
+ hdmi-phandle = <&hdmi_tx>;
|
||||
+};
|
||||
+
|
||||
+&cpu0 {
|
||||
+ cpu-supply = <&vddcpu>;
|
||||
+ operating-points-v2 = <&cpu_opp_table>;
|
||||
+ clocks = <&clkc CLKID_CPU_CLK>;
|
||||
+ clock-latency = <50000>;
|
||||
+};
|
||||
+
|
||||
+&cpu1 {
|
||||
+ cpu-supply = <&vddcpu>;
|
||||
+ operating-points-v2 = <&cpu_opp_table>;
|
||||
+ clocks = <&clkc CLKID_CPU1_CLK>;
|
||||
+ clock-latency = <50000>;
|
||||
+};
|
||||
+
|
||||
+&cpu2 {
|
||||
+ cpu-supply = <&vddcpu>;
|
||||
+ operating-points-v2 = <&cpu_opp_table>;
|
||||
+ clocks = <&clkc CLKID_CPU2_CLK>;
|
||||
+ clock-latency = <50000>;
|
||||
+};
|
||||
+
|
||||
+&cpu3 {
|
||||
+ cpu-supply = <&vddcpu>;
|
||||
+ operating-points-v2 = <&cpu_opp_table>;
|
||||
+ clocks = <&clkc CLKID_CPU3_CLK>;
|
||||
+ clock-latency = <50000>;
|
||||
+};
|
||||
+
|
||||
+&cvbs_vdac_port {
|
||||
+ cvbs_vdac_out: endpoint {
|
||||
+ remote-endpoint = <&cvbs_connector_in>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&hdmi_tx {
|
||||
+ status = "okay";
|
||||
+ pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+};
|
||||
+
|
||||
+&hdmi_tx_tmds_port {
|
||||
+ hdmi_tx_tmds_out: endpoint {
|
||||
+ remote-endpoint = <&hdmi_connector_in>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&ir {
|
||||
+ status = "okay";
|
||||
+ pinctrl-0 = <&remote_input_ao_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+};
|
||||
+
|
||||
+&pwm_AO_ab {
|
||||
+ status = "okay";
|
||||
+ pinctrl-0 = <&pwm_ao_a_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ clocks = <&xtal>;
|
||||
+ clock-names = "clkin0";
|
||||
+};
|
||||
+
|
||||
+&pwm_AO_cd {
|
||||
+ pinctrl-0 = <&pwm_ao_d_e_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ clocks = <&xtal>;
|
||||
+ clock-names = "clkin1";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pwm_ef {
|
||||
+ status = "okay";
|
||||
+ pinctrl-0 = <&pwm_e_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ clocks = <&xtal>;
|
||||
+ clock-names = "clkin0";
|
||||
+};
|
||||
+
|
||||
+&saradc {
|
||||
+ status = "okay";
|
||||
+ vref-supply = <&vddio_ao1v8>;
|
||||
+};
|
||||
+
|
||||
+/* SDIO */
|
||||
+&sd_emmc_a {
|
||||
+ status = "okay";
|
||||
+ pinctrl-0 = <&sdio_pins>;
|
||||
+ pinctrl-1 = <&sdio_clk_gate_pins>;
|
||||
+ pinctrl-names = "default", "clk-gate";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ bus-width = <4>;
|
||||
+ cap-sd-highspeed;
|
||||
+ sd-uhs-sdr104;
|
||||
+ max-frequency = <200000000>;
|
||||
+
|
||||
+ non-removable;
|
||||
+ disable-wp;
|
||||
+
|
||||
+ /* WiFi firmware requires power to be kept while in suspend */
|
||||
+ keep-power-in-suspend;
|
||||
+
|
||||
+ mmc-pwrseq = <&sdio_pwrseq>;
|
||||
+
|
||||
+ vmmc-supply = <&vddao_3v3>;
|
||||
+ vqmmc-supply = <&vddio_ao1v8>;
|
||||
+};
|
||||
+
|
||||
+/* SD Card */
|
||||
+&sd_emmc_b {
|
||||
+ status = "okay";
|
||||
+ pinctrl-0 = <&sdcard_c_pins>;
|
||||
+ pinctrl-1 = <&sdcard_clk_gate_c_pins>;
|
||||
+ pinctrl-names = "default", "clk-gate";
|
||||
+
|
||||
+ bus-width = <4>;
|
||||
+ cap-sd-highspeed;
|
||||
+ /* CRC errors are observed at 50MHz */
|
||||
+ max-frequency = <35000000>;
|
||||
+ disable-wp;
|
||||
+
|
||||
+ cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
|
||||
+ vmmc-supply = <&vddao_3v3>;
|
||||
+ vqmmc-supply = <&vddao_3v3>;
|
||||
+};
|
||||
+
|
||||
+/* eMMC */
|
||||
+&sd_emmc_c {
|
||||
+ status = "okay";
|
||||
+ pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>;
|
||||
+ pinctrl-1 = <&emmc_clk_gate_pins>;
|
||||
+ pinctrl-names = "default", "clk-gate";
|
||||
+
|
||||
+ bus-width = <8>;
|
||||
+ cap-mmc-highspeed;
|
||||
+ mmc-ddr-1_8v;
|
||||
+ mmc-hs200-1_8v;
|
||||
+ max-frequency = <200000000>;
|
||||
+ non-removable;
|
||||
+ disable-wp;
|
||||
+
|
||||
+ mmc-pwrseq = <&emmc_pwrseq>;
|
||||
+ vmmc-supply = <&vddao_3v3>;
|
||||
+ vqmmc-supply = <&emmc_1v8>;
|
||||
+};
|
||||
+
|
||||
+&uart_AO {
|
||||
+ status = "okay";
|
||||
+ pinctrl-0 = <&uart_ao_a_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+};
|
||||
+
|
||||
+&usb {
|
||||
+ status = "okay";
|
||||
+ dr_mode = "otg";
|
||||
+};
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 4d11a956070513a173dd9fd0d6e981918a6331e4 Mon Sep 17 00:00:00 2001
|
||||
From 3842af175acb0e29ac5b46fb40a840195ffd351f Mon Sep 17 00:00:00 2001
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Wed, 15 Sep 2021 05:00:45 +0000
|
||||
Subject: [PATCH 11/90] HACK: of: partial revert of fdt.c changes
|
||||
Subject: [PATCH 12/75] HACK: of: partial revert of fdt.c changes
|
||||
|
||||
This resolves reports similar to the below which are present in dmesg
|
||||
since Linux 5.10; which are also causing crashes in some distros:
|
@ -1,32 +0,0 @@
|
||||
From eafd64ed443d74fad6823c553cf0624b84b8231b Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Mon, 18 May 2020 23:23:40 +0000
|
||||
Subject: [PATCH 13/90] FROMGIT(5.18): dt-bindings: arm: amlogic: add X96-AIR
|
||||
bindings
|
||||
|
||||
Add board bindings for the Amediatech X96-AIR STB which ships with
|
||||
model variants distiguished by Ethernet configuration: models using
|
||||
an external Gigabit PHY have a -gbit suffix, while models using an
|
||||
internal 10/100 PHY have no suffix.
|
||||
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
---
|
||||
Documentation/devicetree/bindings/arm/amlogic.yaml | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
index 36081734f720..089d08219cc8 100644
|
||||
--- a/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
+++ b/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
@@ -170,6 +170,8 @@ properties:
|
||||
- description: Boards with the Amlogic Meson SM1 S905X3/D3/Y3 SoC
|
||||
items:
|
||||
- enum:
|
||||
+ - amediatech,x96-air
|
||||
+ - amediatech,x96-air-gbit
|
||||
- bananapi,bpi-m5
|
||||
- hardkernel,odroid-c4
|
||||
- hardkernel,odroid-hc4
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,102 @@
|
||||
From 6338625edf652cb8d1848b1d20786cf431d9b5ee Mon Sep 17 00:00:00 2001
|
||||
From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
|
||||
Date: Thu, 7 Apr 2022 16:21:59 +0200
|
||||
Subject: [PATCH 13/75] FROMGIT(5.19): arm64: dts: meson: align SPI NOR node
|
||||
name with dtschema
|
||||
|
||||
The node names should be generic and SPI NOR dtschema expects "flash".
|
||||
|
||||
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
|
||||
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
|
||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
||||
Link: https://lore.kernel.org/r/20220407142159.293836-2-krzysztof.kozlowski@linaro.org
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/meson-gx-libretech-pc.dtsi | 2 +-
|
||||
arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts | 2 +-
|
||||
arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc-v2.dts | 2 +-
|
||||
arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts | 2 +-
|
||||
arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi | 2 +-
|
||||
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-hc4.dts | 2 +-
|
||||
6 files changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx-libretech-pc.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx-libretech-pc.dtsi
|
||||
index 2d7032f41e4b..bcdf55f48a83 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-gx-libretech-pc.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-gx-libretech-pc.dtsi
|
||||
@@ -416,7 +416,7 @@
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
|
||||
- gd25lq128: spi-flash@0 {
|
||||
+ gd25lq128: flash@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts
|
||||
index 2d769203f671..213a0705ebdc 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts
|
||||
@@ -298,7 +298,7 @@
|
||||
pinctrl-0 = <&nor_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
- w25q32: spi-flash@0 {
|
||||
+ w25q32: flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "jedec,spi-nor";
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc-v2.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc-v2.dts
|
||||
index 93d8f8aff70d..874f91c348ec 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc-v2.dts
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc-v2.dts
|
||||
@@ -284,7 +284,7 @@
|
||||
pinctrl-0 = <&nor_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
- nor_4u1: spi-flash@0 {
|
||||
+ nor_4u1: flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "jedec,spi-nor";
|
||||
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 9c26d7489d2a..6d396c1be3d6 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
|
||||
@@ -376,7 +376,7 @@
|
||||
pinctrl-0 = <&nor_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
- w25q32: spi-flash@0 {
|
||||
+ w25q32: flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "winbond,w25q16", "jedec,spi-nor";
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi b/arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi
|
||||
index 3cf4ecb6d52e..c9705941e4ab 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi
|
||||
@@ -458,7 +458,7 @@
|
||||
pinctrl-0 = <&nor_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
- w25q128: spi-flash@0 {
|
||||
+ w25q128: flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "winbond,w25q128fw", "jedec,spi-nor";
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-hc4.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-hc4.dts
|
||||
index f3f953225bf5..e3486f60645a 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-hc4.dts
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-odroid-hc4.dts
|
||||
@@ -121,7 +121,7 @@
|
||||
pinctrl-0 = <&nor_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
- spi-flash@0 {
|
||||
+ flash@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "jedec,spi-nor";
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,313 +0,0 @@
|
||||
From 3882e6ac1e446f11e4e9dcd1705e2d12cd716228 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 24 Jun 2020 15:04:10 +0000
|
||||
Subject: [PATCH 14/90] FROMGIT(5.18): arm64: dts: meson: add initial
|
||||
device-trees for X96-AIR
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The Amediatek X96-AIR is based on Amlogic S905X3 reference board
|
||||
designs and ships in multiple configurations:
|
||||
|
||||
– 4GB DDR3 + 64GB eMMC + WiFi a/b/g/n/ac + BT + Gb Ethernet
|
||||
– 4GB DDR3 + 32GB eMMC + WiFi a/b/g/n/ac + BT + Gb Ethernet
|
||||
– 4GB DDR3 + 32GB eMMC + WiFi b/g/n (no BT) + 10/100 Ethernet
|
||||
– 2GB DDR3 + 16GB eMMC + WiFi b/g/n (no BT) + 10/100 Ethernet
|
||||
...
|
||||
- HDMI 2.1 video
|
||||
- S/PDIF optical output
|
||||
- AV output
|
||||
- 2x USB 2.0 inc. OTG port
|
||||
- 1x USB 3.0 port
|
||||
- IR receiver
|
||||
- 1x micro SD card slot (internal)
|
||||
- 1x Reset/Update button (in AV jack)
|
||||
- 7-segment VFD
|
||||
|
||||
The device-tree with -gbit suffix supports models with Gigabit
|
||||
Ethernet, and the device-tree with no suffix supports models
|
||||
with 10/100 Ethernet.
|
||||
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/Makefile | 2 +
|
||||
.../dts/amlogic/meson-sm1-x96-air-gbit.dts | 133 ++++++++++++++++++
|
||||
.../boot/dts/amlogic/meson-sm1-x96-air.dts | 112 +++++++++++++++
|
||||
3 files changed, 247 insertions(+)
|
||||
create mode 100644 arch/arm64/boot/dts/amlogic/meson-sm1-x96-air-gbit.dts
|
||||
create mode 100644 arch/arm64/boot/dts/amlogic/meson-sm1-x96-air.dts
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
index 19d4d75305af..411f0ff1c14f 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/Makefile
|
||||
+++ b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
@@ -56,6 +56,8 @@ dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-c4.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-hc4.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-sei610.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-air.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-air-gbit.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb
|
||||
|
||||
subdir-y += overlays
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-x96-air-gbit.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-x96-air-gbit.dts
|
||||
new file mode 100644
|
||||
index 000000000000..7e1a74046ba5
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-x96-air-gbit.dts
|
||||
@@ -0,0 +1,133 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright (c) 2019 BayLibre SAS. All rights reserved.
|
||||
+ * Copyright (c) 2020 Christian Hewitt <christianshewitt@gmail.com>
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "meson-sm1-ac2xx.dtsi"
|
||||
+#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
|
||||
+
|
||||
+/ {
|
||||
+ compatible = "amediatech,x96-air-gbit", "amlogic,sm1";
|
||||
+ model = "Shenzhen Amediatech Technology Co., Ltd X96 Air";
|
||||
+
|
||||
+ sound {
|
||||
+ compatible = "amlogic,axg-sound-card";
|
||||
+ model = "X96-AIR";
|
||||
+ audio-aux-devs = <&tdmout_b>;
|
||||
+ audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
|
||||
+ "TDMOUT_B IN 1", "FRDDR_B OUT 1",
|
||||
+ "TDMOUT_B IN 2", "FRDDR_C OUT 1",
|
||||
+ "TDM_B Playback", "TDMOUT_B OUT";
|
||||
+
|
||||
+ assigned-clocks = <&clkc CLKID_MPLL2>,
|
||||
+ <&clkc CLKID_MPLL0>,
|
||||
+ <&clkc CLKID_MPLL1>;
|
||||
+ assigned-clock-parents = <0>, <0>, <0>;
|
||||
+ assigned-clock-rates = <294912000>,
|
||||
+ <270950400>,
|
||||
+ <393216000>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ dai-link-0 {
|
||||
+ sound-dai = <&frddr_a>;
|
||||
+ };
|
||||
+
|
||||
+ dai-link-1 {
|
||||
+ sound-dai = <&frddr_b>;
|
||||
+ };
|
||||
+
|
||||
+ dai-link-2 {
|
||||
+ sound-dai = <&frddr_c>;
|
||||
+ };
|
||||
+
|
||||
+ /* 8ch hdmi interface */
|
||||
+ dai-link-3 {
|
||||
+ sound-dai = <&tdmif_b>;
|
||||
+ dai-format = "i2s";
|
||||
+ dai-tdm-slot-tx-mask-0 = <1 1>;
|
||||
+ dai-tdm-slot-tx-mask-1 = <1 1>;
|
||||
+ dai-tdm-slot-tx-mask-2 = <1 1>;
|
||||
+ dai-tdm-slot-tx-mask-3 = <1 1>;
|
||||
+ mclk-fs = <256>;
|
||||
+
|
||||
+ codec {
|
||||
+ sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ /* hdmi glue */
|
||||
+ dai-link-4 {
|
||||
+ sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
|
||||
+
|
||||
+ codec {
|
||||
+ sound-dai = <&hdmi_tx>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&arb {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&clkc_audio {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+ðmac {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ pinctrl-0 = <ð_pins>, <ð_rgmii_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ phy-mode = "rgmii-txid";
|
||||
+ phy-handle = <&external_phy>;
|
||||
+
|
||||
+ rx-internal-delay-ps = <800>;
|
||||
+};
|
||||
+
|
||||
+&ext_mdio {
|
||||
+ external_phy: ethernet-phy@0 {
|
||||
+ /* Realtek RTL8211F (0x001cc916) */
|
||||
+ reg = <0>;
|
||||
+ max-speed = <1000>;
|
||||
+
|
||||
+ reset-assert-us = <10000>;
|
||||
+ reset-deassert-us = <80000>;
|
||||
+ reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
|
||||
+
|
||||
+ interrupt-parent = <&gpio_intc>;
|
||||
+ /* MAC_INTR on GPIOZ_14 */
|
||||
+ interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&frddr_a {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&frddr_b {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&frddr_c {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ir {
|
||||
+ linux,rc-map-name = "rc-x96max";
|
||||
+};
|
||||
+
|
||||
+&tdmif_b {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&tdmout_b {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&tohdmitx {
|
||||
+ status = "okay";
|
||||
+};
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-x96-air.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-x96-air.dts
|
||||
new file mode 100644
|
||||
index 000000000000..cd93d798f2a3
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-x96-air.dts
|
||||
@@ -0,0 +1,112 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright (c) 2019 BayLibre SAS. All rights reserved.
|
||||
+ * Copyright (c) 2020 Christian Hewitt <christianshewitt@gmail.com>
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "meson-sm1-ac2xx.dtsi"
|
||||
+#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
|
||||
+
|
||||
+/ {
|
||||
+ compatible = "amediatech,x96-air", "amlogic,sm1";
|
||||
+ model = "Shenzhen Amediatech Technology Co., Ltd X96 Air";
|
||||
+
|
||||
+ sound {
|
||||
+ compatible = "amlogic,axg-sound-card";
|
||||
+ model = "X96-AIR";
|
||||
+ audio-aux-devs = <&tdmout_b>;
|
||||
+ audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
|
||||
+ "TDMOUT_B IN 1", "FRDDR_B OUT 1",
|
||||
+ "TDMOUT_B IN 2", "FRDDR_C OUT 1",
|
||||
+ "TDM_B Playback", "TDMOUT_B OUT";
|
||||
+
|
||||
+ assigned-clocks = <&clkc CLKID_MPLL2>,
|
||||
+ <&clkc CLKID_MPLL0>,
|
||||
+ <&clkc CLKID_MPLL1>;
|
||||
+ assigned-clock-parents = <0>, <0>, <0>;
|
||||
+ assigned-clock-rates = <294912000>,
|
||||
+ <270950400>,
|
||||
+ <393216000>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ dai-link-0 {
|
||||
+ sound-dai = <&frddr_a>;
|
||||
+ };
|
||||
+
|
||||
+ dai-link-1 {
|
||||
+ sound-dai = <&frddr_b>;
|
||||
+ };
|
||||
+
|
||||
+ dai-link-2 {
|
||||
+ sound-dai = <&frddr_c>;
|
||||
+ };
|
||||
+
|
||||
+ /* 8ch hdmi interface */
|
||||
+ dai-link-3 {
|
||||
+ sound-dai = <&tdmif_b>;
|
||||
+ dai-format = "i2s";
|
||||
+ dai-tdm-slot-tx-mask-0 = <1 1>;
|
||||
+ dai-tdm-slot-tx-mask-1 = <1 1>;
|
||||
+ dai-tdm-slot-tx-mask-2 = <1 1>;
|
||||
+ dai-tdm-slot-tx-mask-3 = <1 1>;
|
||||
+ mclk-fs = <256>;
|
||||
+
|
||||
+ codec {
|
||||
+ sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ /* hdmi glue */
|
||||
+ dai-link-4 {
|
||||
+ sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
|
||||
+
|
||||
+ codec {
|
||||
+ sound-dai = <&hdmi_tx>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&arb {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&clkc_audio {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+ðmac {
|
||||
+ status = "okay";
|
||||
+ phy-handle = <&internal_ephy>;
|
||||
+ phy-mode = "rmii";
|
||||
+};
|
||||
+
|
||||
+&frddr_a {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&frddr_b {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&frddr_c {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ir {
|
||||
+ linux,rc-map-name = "rc-beelink-gs1";
|
||||
+};
|
||||
+
|
||||
+&tdmif_b {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&tdmout_b {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&tohdmitx {
|
||||
+ status = "okay";
|
||||
+};
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,104 @@
|
||||
From 6886bca9bf15bef2cbd76a7e89561cad57e66078 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sat, 9 Apr 2022 06:37:28 +0000
|
||||
Subject: [PATCH 14/75] FROMGIT(5.19): arm64: dts: meson: alpa-sort the board
|
||||
Makefile
|
||||
|
||||
Let's alpha-sort the board Makefile to keep things organised.
|
||||
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/Makefile | 37 ++++++++++++++--------------
|
||||
1 file changed, 18 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
index 34990beb4e5a..3e3c48f53b02 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/Makefile
|
||||
+++ b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
@@ -1,17 +1,18 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
-dtb-$(CONFIG_ARCH_MESON) += meson-axg-s400.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j100.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-axg-s400.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12a-radxa-zero.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12a-sei510.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12a-u200.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12a-x96-max.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-khadas-vim3.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gsking-x.dtb
|
||||
-dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking-pro.dtb
|
||||
-dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-khadas-vim3.dtb
|
||||
-dtb-$(CONFIG_ARCH_MESON) += meson-g12b-s922x-khadas-vim3.dtb
|
||||
-dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2-plus.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-g12b-s922x-khadas-vim3.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-ugoos-am6.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-kii-pro.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nanopi-k2.dtb
|
||||
@@ -19,29 +20,29 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nexbox-a95x.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-odroidc2.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-p200.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-p201.dtb
|
||||
-dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-pro.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-meta.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-pro.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-telos.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-wetek-hub.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-wetek-play2.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s805x-libretech-ac.dtb
|
||||
-dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-hwacom-amazetv.dtb
|
||||
-dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-khadas-vim.dtb
|
||||
-dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb
|
||||
-dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc-v2.dtb
|
||||
-dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb
|
||||
-dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s805x-p241.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-libretech-pc.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-mecool-kii-pro.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p230.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p231.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-phicomm-n1.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-sml5442tw.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-vero4k-plus.dtb
|
||||
-dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s805x-p241.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-jethome-jethub-j80.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-p281.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-tx3-mini.dtb
|
||||
-dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-libretech-pc.dtb
|
||||
-dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-jethome-jethub-j80.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-hwacom-amazetv.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-khadas-vim.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc-v2.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-khadas-vim2.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-mecool-kiii-pro.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-minix-neo-u9h.dtb
|
||||
@@ -52,17 +53,15 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-s912-libretech-pc.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb
|
||||
-dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-s4-s805x2-aq222.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air-gbit.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-bananapi-m5.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-h96-max.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-c4.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-hc4.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-sei610.dtb
|
||||
-dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-air.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-air-gbit.dtb
|
||||
-dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb
|
||||
-dtb-$(CONFIG_ARCH_MESON) += meson-s4-s805x2-aq222.dtb
|
||||
|
||||
subdir-y += overlays
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,31 +0,0 @@
|
||||
From 774b970241ee9eadc76cb74ea595f2f4af518d20 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Tue, 30 Nov 2021 05:00:45 +0000
|
||||
Subject: [PATCH 15/90] FROMGIT(5.18): dt-bindings: vendor-prefixes: add cyx
|
||||
prefix
|
||||
|
||||
Shenzhen CYX Industrial Co., Ltd are a manufacturer of Android
|
||||
Set-Top Box devices.
|
||||
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Acked-by: Rob Herring <robh@kernel.org>
|
||||
---
|
||||
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
|
||||
index 294093d45a23..7504538a7716 100644
|
||||
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
|
||||
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
|
||||
@@ -283,6 +283,8 @@ patternProperties:
|
||||
description: CUI Devices
|
||||
"^cypress,.*":
|
||||
description: Cypress Semiconductor Corporation
|
||||
+ "^cyx,.*":
|
||||
+ description: Shenzhen CYX Industrial Co., Ltd
|
||||
"^cznic,.*":
|
||||
description: CZ.NIC, z.s.p.o.
|
||||
"^dallas,.*":
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 712edc341073c350a11658186609eafd292dbe8a Mon Sep 17 00:00:00 2001
|
||||
From 0baf8ff0258bd1be54f4a96d9079a726426c7cae Mon Sep 17 00:00:00 2001
|
||||
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
|
||||
Date: Sun, 3 Oct 2021 05:35:48 +0000
|
||||
Subject: [PATCH 27/90] FROMLIST(v1): ASoC: meson: aiu: Fix HDMI codec control
|
||||
Subject: [PATCH 15/75] FROMLIST(v1): ASoC: meson: aiu: Fix HDMI codec control
|
||||
selection
|
||||
|
||||
The HDMI controllers on Amlogic Meson SoCs which use the AIU
|
||||
@ -60,7 +60,7 @@ Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
|
||||
2 files changed, 80 insertions(+), 34 deletions(-)
|
||||
|
||||
diff --git a/sound/soc/meson/aiu-codec-ctrl.c b/sound/soc/meson/aiu-codec-ctrl.c
|
||||
index c3ea733fce91..2b8575491aeb 100644
|
||||
index 286ac4983d40..616cc7ca7775 100644
|
||||
--- a/sound/soc/meson/aiu-codec-ctrl.c
|
||||
+++ b/sound/soc/meson/aiu-codec-ctrl.c
|
||||
@@ -12,14 +12,60 @@
|
||||
@ -188,7 +188,7 @@ index c3ea733fce91..2b8575491aeb 100644
|
||||
|
||||
snd_soc_dapm_mux_update_power(dapm, kcontrol, mux, e, NULL);
|
||||
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
-static SOC_ENUM_SINGLE_DECL(aiu_hdmi_ctrl_mux_enum, AIU_HDMI_CLK_DATA_CTRL,
|
@ -1,32 +0,0 @@
|
||||
From 954f940c73ec2027bacf090b3db04191727465d3 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Mon, 29 Jun 2020 15:54:45 +0000
|
||||
Subject: [PATCH 16/90] FROMGIT(5.18): dt-bindings: arm: amlogic: add
|
||||
A95XF3-AIR bindings
|
||||
|
||||
Add board bindings for the CYX A95XF3-AIR set-top box which ships
|
||||
with model variants distiguished by Ethernet configuration: models
|
||||
using external Gigabit PHY have a -gbit suffix, while models using
|
||||
an internal 10/100 PHY have no suffix.
|
||||
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
---
|
||||
Documentation/devicetree/bindings/arm/amlogic.yaml | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
index 089d08219cc8..a1a1b3036da6 100644
|
||||
--- a/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
+++ b/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
@@ -173,6 +173,8 @@ properties:
|
||||
- amediatech,x96-air
|
||||
- amediatech,x96-air-gbit
|
||||
- bananapi,bpi-m5
|
||||
+ - cyx,a95xf3-air
|
||||
+ - cyx,a95xf3-air-gbit
|
||||
- hardkernel,odroid-c4
|
||||
- hardkernel,odroid-hc4
|
||||
- khadas,vim3l
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 4f925789d0713c48deb5067187c7e5acba397054 Mon Sep 17 00:00:00 2001
|
||||
From 8ea89cfcd3fd90e4414e9eb994b677ba78cc7444 Mon Sep 17 00:00:00 2001
|
||||
From: David Heidelberg <david@ixit.cz>
|
||||
Date: Sat, 27 Nov 2021 07:23:35 +0000
|
||||
Subject: [PATCH 28/90] FROMLIST(v1): arm64: dts: meson: make dts use gpio-fan
|
||||
Subject: [PATCH 16/75] FROMLIST(v1): arm64: dts: meson: make dts use gpio-fan
|
||||
matrix instead of array
|
||||
|
||||
No functional changes.
|
||||
@ -15,7 +15,7 @@ Signed-off-by: David Heidelberg <david@ixit.cz>
|
||||
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
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 9c26d7489d2a..c5e3b5587135 100644
|
||||
index 6d396c1be3d6..9b0c7e9d0620 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
|
||||
@@ -54,10 +54,11 @@
|
@ -1,305 +0,0 @@
|
||||
From 166e07854d6e7685110aa231a49e95a407f980ec Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 3 Jun 2020 18:03:22 +0000
|
||||
Subject: [PATCH 17/90] FROMGIT(5.18): arm64: dts: meson: add initial
|
||||
device-trees for A95XF3-AIR
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The CYX A95XF3-AIR is based on Amlogic S905X3 reference board
|
||||
designs and ships in multiple configurations:
|
||||
|
||||
– 4GB DDR3 + 64GB eMMC + WiFi a/b/g/n/ac + BT + Gb Ethernet
|
||||
– 4GB DDR3 + 32GB eMMC + WiFi a/b/g/n/ac + BT + Gb Ethernet
|
||||
– 2GB DDR3 + 16GB eMMC + WiFi b/g/n (no BT) + 10/100 Ethernet
|
||||
...
|
||||
- HDMI 2.1 video
|
||||
- S/PDIF optical output
|
||||
- AV output
|
||||
- 1x USB 2.0 OTG port
|
||||
- 1x USB 3.0 port
|
||||
- IR receiver
|
||||
- 1x micro SD card slot (internal)
|
||||
- 1x Reset/Update button (in AV jack)
|
||||
- 7-segment VFD
|
||||
- Multicolour case LED 'arc'
|
||||
|
||||
The device-tree with -gbit suffix supports models with Gigabit
|
||||
Ethernet, and the device-tree with no suffix supports models
|
||||
with 10/100 Ethernet.
|
||||
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/Makefile | 2 +
|
||||
.../dts/amlogic/meson-sm1-a95xf3-air-gbit.dts | 129 ++++++++++++++++++
|
||||
.../boot/dts/amlogic/meson-sm1-a95xf3-air.dts | 108 +++++++++++++++
|
||||
3 files changed, 239 insertions(+)
|
||||
create mode 100644 arch/arm64/boot/dts/amlogic/meson-sm1-a95xf3-air-gbit.dts
|
||||
create mode 100644 arch/arm64/boot/dts/amlogic/meson-sm1-a95xf3-air.dts
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
index 411f0ff1c14f..dfbdeeba4e53 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/Makefile
|
||||
+++ b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
@@ -51,6 +51,8 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-s912-libretech-pc.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air-gbit.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-bananapi-m5.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-c4.dtb
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-a95xf3-air-gbit.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-a95xf3-air-gbit.dts
|
||||
new file mode 100644
|
||||
index 000000000000..d1debccdc1c2
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-a95xf3-air-gbit.dts
|
||||
@@ -0,0 +1,129 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright (c) 2019 BayLibre SAS. All rights reserved.
|
||||
+ * Copyright (c) 2020 Christian Hewitt <christianshewitt@gmail.com>
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "meson-sm1-ac2xx.dtsi"
|
||||
+#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
|
||||
+
|
||||
+/ {
|
||||
+ compatible = "cyx,a95xf3-air-gbit", "amlogic,sm1";
|
||||
+ model = "Shenzhen CYX Industrial Co., Ltd A95XF3-AIR";
|
||||
+
|
||||
+ sound {
|
||||
+ compatible = "amlogic,axg-sound-card";
|
||||
+ model = "A95XF3-AIR";
|
||||
+ audio-aux-devs = <&tdmout_b>;
|
||||
+ audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
|
||||
+ "TDMOUT_B IN 1", "FRDDR_B OUT 1",
|
||||
+ "TDMOUT_B IN 2", "FRDDR_C OUT 1",
|
||||
+ "TDM_B Playback", "TDMOUT_B OUT";
|
||||
+
|
||||
+ assigned-clocks = <&clkc CLKID_MPLL2>,
|
||||
+ <&clkc CLKID_MPLL0>,
|
||||
+ <&clkc CLKID_MPLL1>;
|
||||
+ assigned-clock-parents = <0>, <0>, <0>;
|
||||
+ assigned-clock-rates = <294912000>,
|
||||
+ <270950400>,
|
||||
+ <393216000>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ dai-link-0 {
|
||||
+ sound-dai = <&frddr_a>;
|
||||
+ };
|
||||
+
|
||||
+ dai-link-1 {
|
||||
+ sound-dai = <&frddr_b>;
|
||||
+ };
|
||||
+
|
||||
+ dai-link-2 {
|
||||
+ sound-dai = <&frddr_c>;
|
||||
+ };
|
||||
+
|
||||
+ /* 8ch hdmi interface */
|
||||
+ dai-link-3 {
|
||||
+ sound-dai = <&tdmif_b>;
|
||||
+ dai-format = "i2s";
|
||||
+ dai-tdm-slot-tx-mask-0 = <1 1>;
|
||||
+ dai-tdm-slot-tx-mask-1 = <1 1>;
|
||||
+ dai-tdm-slot-tx-mask-2 = <1 1>;
|
||||
+ dai-tdm-slot-tx-mask-3 = <1 1>;
|
||||
+ mclk-fs = <256>;
|
||||
+
|
||||
+ codec {
|
||||
+ sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ /* hdmi glue */
|
||||
+ dai-link-4 {
|
||||
+ sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
|
||||
+
|
||||
+ codec {
|
||||
+ sound-dai = <&hdmi_tx>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&arb {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&clkc_audio {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+ðmac {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ pinctrl-0 = <ð_pins>, <ð_rgmii_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ phy-mode = "rgmii-txid";
|
||||
+ phy-handle = <&external_phy>;
|
||||
+
|
||||
+ rx-internal-delay-ps = <800>;
|
||||
+};
|
||||
+
|
||||
+&ext_mdio {
|
||||
+ external_phy: ethernet-phy@0 {
|
||||
+ /* Realtek RTL8211F (0x001cc916) */
|
||||
+ reg = <0>;
|
||||
+ max-speed = <1000>;
|
||||
+
|
||||
+ reset-assert-us = <10000>;
|
||||
+ reset-deassert-us = <80000>;
|
||||
+ reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
|
||||
+
|
||||
+ interrupt-parent = <&gpio_intc>;
|
||||
+ /* MAC_INTR on GPIOZ_14 */
|
||||
+ interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&frddr_a {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&frddr_b {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&frddr_c {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&tdmif_b {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&tdmout_b {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&tohdmitx {
|
||||
+ status = "okay";
|
||||
+};
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-a95xf3-air.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-a95xf3-air.dts
|
||||
new file mode 100644
|
||||
index 000000000000..c94f2870b78b
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-a95xf3-air.dts
|
||||
@@ -0,0 +1,108 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright (c) 2019 BayLibre SAS. All rights reserved.
|
||||
+ * Copyright (c) 2020 Christian Hewitt <christianshewitt@gmail.com>
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "meson-sm1-ac2xx.dtsi"
|
||||
+#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
|
||||
+
|
||||
+/ {
|
||||
+ compatible = "cyx,a95xf3-air", "amlogic,sm1";
|
||||
+ model = "Shenzhen CYX Industrial Co., Ltd A95XF3-AIR";
|
||||
+
|
||||
+ sound {
|
||||
+ compatible = "amlogic,axg-sound-card";
|
||||
+ model = "A95XF3-AIR";
|
||||
+ audio-aux-devs = <&tdmout_b>;
|
||||
+ audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
|
||||
+ "TDMOUT_B IN 1", "FRDDR_B OUT 1",
|
||||
+ "TDMOUT_B IN 2", "FRDDR_C OUT 1",
|
||||
+ "TDM_B Playback", "TDMOUT_B OUT";
|
||||
+
|
||||
+ assigned-clocks = <&clkc CLKID_MPLL2>,
|
||||
+ <&clkc CLKID_MPLL0>,
|
||||
+ <&clkc CLKID_MPLL1>;
|
||||
+ assigned-clock-parents = <0>, <0>, <0>;
|
||||
+ assigned-clock-rates = <294912000>,
|
||||
+ <270950400>,
|
||||
+ <393216000>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ dai-link-0 {
|
||||
+ sound-dai = <&frddr_a>;
|
||||
+ };
|
||||
+
|
||||
+ dai-link-1 {
|
||||
+ sound-dai = <&frddr_b>;
|
||||
+ };
|
||||
+
|
||||
+ dai-link-2 {
|
||||
+ sound-dai = <&frddr_c>;
|
||||
+ };
|
||||
+
|
||||
+ /* 8ch hdmi interface */
|
||||
+ dai-link-3 {
|
||||
+ sound-dai = <&tdmif_b>;
|
||||
+ dai-format = "i2s";
|
||||
+ dai-tdm-slot-tx-mask-0 = <1 1>;
|
||||
+ dai-tdm-slot-tx-mask-1 = <1 1>;
|
||||
+ dai-tdm-slot-tx-mask-2 = <1 1>;
|
||||
+ dai-tdm-slot-tx-mask-3 = <1 1>;
|
||||
+ mclk-fs = <256>;
|
||||
+
|
||||
+ codec {
|
||||
+ sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ /* hdmi glue */
|
||||
+ dai-link-4 {
|
||||
+ sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
|
||||
+
|
||||
+ codec {
|
||||
+ sound-dai = <&hdmi_tx>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&arb {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&clkc_audio {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+ðmac {
|
||||
+ status = "okay";
|
||||
+ phy-handle = <&internal_ephy>;
|
||||
+ phy-mode = "rmii";
|
||||
+};
|
||||
+
|
||||
+&frddr_a {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&frddr_b {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&frddr_c {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&tdmif_b {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&tdmout_b {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&tohdmitx {
|
||||
+ status = "okay";
|
||||
+};
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From b83c8168c58ccb96f92a4b6ecf1b8b7483fcced3 Mon Sep 17 00:00:00 2001
|
||||
From da1c65a3a53a7dae2e8770b93bbd09252ffda24f Mon Sep 17 00:00:00 2001
|
||||
From: Sergey Shtylyov <s.shtylyov@omp.ru>
|
||||
Date: Fri, 24 Dec 2021 06:09:57 +0000
|
||||
Subject: [PATCH 38/90] FROMLIST(v1): mmc: meson-gx: fix deferred probing
|
||||
Subject: [PATCH 17/75] FROMLIST(v1): mmc: meson-gx: fix deferred probing
|
||||
|
||||
The driver overrides the error codes and IRQ0 returned by platform_get_irq()
|
||||
to -EINVAL, so if it returns -EPROBE_DEFER, the driver will fail the probe
|
@ -1,31 +0,0 @@
|
||||
From 59dbf5c8de6ada1dc326777c26fd70a3060f3eda Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Tue, 12 Jan 2021 17:24:07 +0000
|
||||
Subject: [PATCH 18/90] FROMGIT(5.18): dt-bindings: vendor-prefixes: add
|
||||
haochuangyi prefix
|
||||
|
||||
Shenzhen Haochuangyi Technology Co.,Ltd are a manufacturer of Android
|
||||
Set-Top Box devices.
|
||||
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Acked-by: Rob Herring <robh@kernel.org>
|
||||
---
|
||||
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
|
||||
index 7504538a7716..0d8da47cda1a 100644
|
||||
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
|
||||
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
|
||||
@@ -491,6 +491,8 @@ patternProperties:
|
||||
deprecated: true
|
||||
"^hannstar,.*":
|
||||
description: HannStar Display Corporation
|
||||
+ "^haochuangyi,.*":
|
||||
+ description: Shenzhen Haochuangyi Technology Co.,Ltd
|
||||
"^haoyu,.*":
|
||||
description: Haoyu Microelectronic Co. Ltd.
|
||||
"^hardkernel,.*":
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 3484913b5b5322e81b543b53ee4f892941ae5137 Mon Sep 17 00:00:00 2001
|
||||
From 90845ef50a720ad15afbeb17446fe0e7d87e0304 Mon Sep 17 00:00:00 2001
|
||||
From: Vyacheslav Bocharov <adeep@lexina.in>
|
||||
Date: Sat, 15 Jan 2022 08:27:14 +0000
|
||||
Subject: [PATCH 39/90] FROMLIST(v3): Bluetooth: btrtl: Add support for
|
||||
Subject: [PATCH 18/75] FROMLIST(v3): Bluetooth: btrtl: Add support for
|
||||
RTL8822C hci_ver 0x08
|
||||
|
||||
Add detection of RTL8822CS controller with hci_ver = 0x08
|
||||
@ -12,10 +12,10 @@ Signed-off-by: Vyacheslav Bocharov <adeep@lexina.in>
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c
|
||||
index c2bdd1e6060e..13e82783c2b9 100644
|
||||
index 481d488bca0f..310665033b07 100644
|
||||
--- a/drivers/bluetooth/btrtl.c
|
||||
+++ b/drivers/bluetooth/btrtl.c
|
||||
@@ -156,6 +156,14 @@ static const struct id_table ic_id_table[] = {
|
||||
@@ -165,6 +165,14 @@ static const struct id_table ic_id_table[] = {
|
||||
.fw_name = "rtl_bt/rtl8822cs_fw.bin",
|
||||
.cfg_name = "rtl_bt/rtl8822cs_config" },
|
||||
|
@ -1,29 +0,0 @@
|
||||
From 7a79eaf84eff07d549699125745e77ded66a3f13 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Tue, 12 Jan 2021 17:25:33 +0000
|
||||
Subject: [PATCH 19/90] FROMGIT(5.18): dt-bindings: arm: amlogic: add H96-Max
|
||||
bindings
|
||||
|
||||
Add the board binding for the Haochuangyi H96-Max STB device.
|
||||
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Acked-by: Rob Herring <robh@kernel.org>
|
||||
---
|
||||
Documentation/devicetree/bindings/arm/amlogic.yaml | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
index a1a1b3036da6..7c3627d9c773 100644
|
||||
--- a/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
+++ b/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
@@ -177,6 +177,7 @@ properties:
|
||||
- cyx,a95xf3-air-gbit
|
||||
- hardkernel,odroid-c4
|
||||
- hardkernel,odroid-hc4
|
||||
+ - haochuangyi,h96-max
|
||||
- khadas,vim3l
|
||||
- seirobotics,sei610
|
||||
- const: amlogic,sm1
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 3082b84d01e67e9db1b2933d40657f68ce5ce220 Mon Sep 17 00:00:00 2001
|
||||
From 2a6199bf5c1b6f24232c04ce2b4e5bb8a0adbf9b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
|
||||
Date: Sun, 20 Feb 2022 08:23:12 +0000
|
||||
Subject: [PATCH 45/90] FROMLIST(v2): dt-bindings: vendor-prefixes: Add Titan
|
||||
Subject: [PATCH 19/75] FROMLIST(v5): dt-bindings: vendor-prefixes: Add Titan
|
||||
Micro Electronics
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
@ -17,10 +17,10 @@ Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
|
||||
index c1fa95a505e9..c42803885092 100644
|
||||
index 01430973ecec..8bc4c0340f31 100644
|
||||
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
|
||||
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
|
||||
@@ -1225,6 +1225,8 @@ patternProperties:
|
||||
@@ -1254,6 +1254,8 @@ patternProperties:
|
||||
description: Texas Instruments
|
||||
"^tianma,.*":
|
||||
description: Tianma Micro-electronics Co., Ltd.
|
@ -1,197 +0,0 @@
|
||||
From bad362748bbc586a2315c96e1092e1913eca7e4c Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Tue, 12 Jan 2021 17:26:42 +0000
|
||||
Subject: [PATCH 20/90] FROMGIT(5.18): arm64: dts: meson: add initial
|
||||
device-tree for H96-Max
|
||||
|
||||
The Haochuangyi H96-Max is based on the Amlogic S905X3 reference
|
||||
design with the following specs:
|
||||
|
||||
- 4GB DDR4 RAM
|
||||
- 32/64/128GB eMMC
|
||||
- HDMI 2.1 video
|
||||
- S/PDIF optical output
|
||||
- AV output
|
||||
- 10/100/1000 Base-T Ethernet
|
||||
- AP6356S Wireless (802.11 a/b/g/n/ac, BT 4.1)
|
||||
- 1x USB 2.0 OTG port
|
||||
- 1x USB 3.0 port
|
||||
- IR receiver
|
||||
- 1x micro SD card slot (internal)
|
||||
- 1x Reset/Update button (in AV jack)
|
||||
- 7-segment VFD
|
||||
|
||||
Tested-by: Benoit Masson <yahoo@perenite.com>
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/Makefile | 1 +
|
||||
.../boot/dts/amlogic/meson-sm1-h96-max.dts | 145 ++++++++++++++++++
|
||||
2 files changed, 146 insertions(+)
|
||||
create mode 100644 arch/arm64/boot/dts/amlogic/meson-sm1-h96-max.dts
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
index dfbdeeba4e53..f7aea90c7f2a 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/Makefile
|
||||
+++ b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
@@ -54,6 +54,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air-gbit.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-bananapi-m5.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-sm1-h96-max.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-c4.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-hc4.dtb
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1-h96-max.dts b/arch/arm64/boot/dts/amlogic/meson-sm1-h96-max.dts
|
||||
new file mode 100644
|
||||
index 000000000000..0f6660e68e72
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1-h96-max.dts
|
||||
@@ -0,0 +1,145 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Copyright (c) 2019 BayLibre SAS. All rights reserved.
|
||||
+ * Copyright (c) 2020 Christian Hewitt <christianshewitt@gmail.com>
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "meson-sm1-ac2xx.dtsi"
|
||||
+#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
|
||||
+
|
||||
+/ {
|
||||
+ compatible = "haochuangyi,h96-max", "amlogic,sm1";
|
||||
+ model = "Shenzhen Haochuangyi Technology Co., Ltd H96 Max";
|
||||
+
|
||||
+ sound {
|
||||
+ compatible = "amlogic,axg-sound-card";
|
||||
+ model = "H96-MAX";
|
||||
+ audio-aux-devs = <&tdmout_b>;
|
||||
+ audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
|
||||
+ "TDMOUT_B IN 1", "FRDDR_B OUT 1",
|
||||
+ "TDMOUT_B IN 2", "FRDDR_C OUT 1",
|
||||
+ "TDM_B Playback", "TDMOUT_B OUT";
|
||||
+
|
||||
+ assigned-clocks = <&clkc CLKID_MPLL2>,
|
||||
+ <&clkc CLKID_MPLL0>,
|
||||
+ <&clkc CLKID_MPLL1>;
|
||||
+ assigned-clock-parents = <0>, <0>, <0>;
|
||||
+ assigned-clock-rates = <294912000>,
|
||||
+ <270950400>,
|
||||
+ <393216000>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ dai-link-0 {
|
||||
+ sound-dai = <&frddr_a>;
|
||||
+ };
|
||||
+
|
||||
+ dai-link-1 {
|
||||
+ sound-dai = <&frddr_b>;
|
||||
+ };
|
||||
+
|
||||
+ dai-link-2 {
|
||||
+ sound-dai = <&frddr_c>;
|
||||
+ };
|
||||
+
|
||||
+ /* 8ch hdmi interface */
|
||||
+ dai-link-3 {
|
||||
+ sound-dai = <&tdmif_b>;
|
||||
+ dai-format = "i2s";
|
||||
+ dai-tdm-slot-tx-mask-0 = <1 1>;
|
||||
+ dai-tdm-slot-tx-mask-1 = <1 1>;
|
||||
+ dai-tdm-slot-tx-mask-2 = <1 1>;
|
||||
+ dai-tdm-slot-tx-mask-3 = <1 1>;
|
||||
+ mclk-fs = <256>;
|
||||
+
|
||||
+ codec {
|
||||
+ sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ /* hdmi glue */
|
||||
+ dai-link-4 {
|
||||
+ sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
|
||||
+
|
||||
+ codec {
|
||||
+ sound-dai = <&hdmi_tx>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&arb {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&clkc_audio {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+ðmac {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ pinctrl-0 = <ð_pins>, <ð_rgmii_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ phy-mode = "rgmii-txid";
|
||||
+ phy-handle = <&external_phy>;
|
||||
+
|
||||
+ rx-internal-delay-ps = <800>;
|
||||
+};
|
||||
+
|
||||
+&ext_mdio {
|
||||
+ external_phy: ethernet-phy@0 {
|
||||
+ /* Realtek RTL8211F (0x001cc916) */
|
||||
+ reg = <0>;
|
||||
+ max-speed = <1000>;
|
||||
+
|
||||
+ reset-assert-us = <10000>;
|
||||
+ reset-deassert-us = <80000>;
|
||||
+ reset-gpios = <&gpio GPIOZ_15 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
|
||||
+
|
||||
+ interrupt-parent = <&gpio_intc>;
|
||||
+ /* MAC_INTR on GPIOZ_14 */
|
||||
+ interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&frddr_a {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&frddr_b {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&frddr_c {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&tdmif_b {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&tdmout_b {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&tohdmitx {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&uart_A {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ uart-has-rtscts;
|
||||
+
|
||||
+ bluetooth {
|
||||
+ compatible = "brcm,bcm43438-bt";
|
||||
+ shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
|
||||
+ max-speed = <2000000>;
|
||||
+ clocks = <&wifi32k>;
|
||||
+ clock-names = "lpo";
|
||||
+ };
|
||||
+};
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 3a0ec72e1299b63d6a296bf659c4630ed5cdbe6e Mon Sep 17 00:00:00 2001
|
||||
From 7305b92ea08b5ce68931b2f7121766fab63bebb0 Mon Sep 17 00:00:00 2001
|
||||
From: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
Date: Sun, 20 Feb 2022 08:24:47 +0000
|
||||
Subject: [PATCH 46/90] FROMLIST(v2): dt-bindings: auxdisplay: Add Titan Micro
|
||||
Subject: [PATCH 20/75] FROMLIST(v5): dt-bindings: auxdisplay: Add Titan Micro
|
||||
Electronics TM1628
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
@ -13,6 +13,7 @@ Add a YAML schema binding for TM1628 auxdisplay
|
||||
This patch is partially based on previous RFC work from
|
||||
Andreas Färber <afaerber@suse.de>.
|
||||
|
||||
Co-developed-by: Andreas Färber <afaerber@suse.de>
|
||||
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
---
|
@ -1,54 +0,0 @@
|
||||
From ceaedabcb1099e70eb8de51854d0965f4b520229 Mon Sep 17 00:00:00 2001
|
||||
From: Artem Lapkin <art@khadas.com>
|
||||
Date: Thu, 16 Dec 2021 16:10:58 +0000
|
||||
Subject: [PATCH 21/90] FROMGIT(5.18): arm64: dts: meson-sm1: add spdifin
|
||||
spdifout nodes
|
||||
|
||||
Add spdifin spdifout nodes for Amlogic SM1 SoCs.
|
||||
|
||||
Signed-off-by: Artem Lapkin <art@khadas.com>
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/meson-sm1.dtsi | 27 ++++++++++++++++++++++
|
||||
1 file changed, 27 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi b/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi
|
||||
index 3d8b1f4f2001..1e0adf259d61 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi
|
||||
@@ -356,6 +356,33 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+ spdifin: audio-controller@400 {
|
||||
+ compatible = "amlogic,g12a-spdifin",
|
||||
+ "amlogic,axg-spdifin";
|
||||
+ reg = <0x0 0x400 0x0 0x30>;
|
||||
+ #sound-dai-cells = <0>;
|
||||
+ sound-name-prefix = "SPDIFIN";
|
||||
+ interrupts = <GIC_SPI 151 IRQ_TYPE_EDGE_RISING>;
|
||||
+ clocks = <&clkc_audio AUD_CLKID_SPDIFIN>,
|
||||
+ <&clkc_audio AUD_CLKID_SPDIFIN_CLK>;
|
||||
+ clock-names = "pclk", "refclk";
|
||||
+ resets = <&clkc_audio AUD_RESET_SPDIFIN>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
+ spdifout: audio-controller@480 {
|
||||
+ compatible = "amlogic,g12a-spdifout",
|
||||
+ "amlogic,axg-spdifout";
|
||||
+ reg = <0x0 0x480 0x0 0x50>;
|
||||
+ #sound-dai-cells = <0>;
|
||||
+ sound-name-prefix = "SPDIFOUT";
|
||||
+ clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>,
|
||||
+ <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>;
|
||||
+ clock-names = "pclk", "mclk";
|
||||
+ resets = <&clkc_audio AUD_RESET_SPDIFOUT>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
tdmout_a: audio-controller@500 {
|
||||
compatible = "amlogic,sm1-tdmout";
|
||||
reg = <0x0 0x500 0x0 0x40>;
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From e255be5d8029a419bc2cc39c8eb84466e77a7f7c Mon Sep 17 00:00:00 2001
|
||||
From 5042a1c07c4a1ea5c58b31d8a3b35a156f64858d Mon Sep 17 00:00:00 2001
|
||||
From: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
Date: Sun, 20 Feb 2022 08:26:27 +0000
|
||||
Subject: [PATCH 47/90] FROMLIST(v2): docs: ABI: document tm1628 attribute
|
||||
Subject: [PATCH 21/75] FROMLIST(v5): docs: ABI: document tm1628 attribute
|
||||
display-text
|
||||
|
||||
Document the attribute for reading / writing the text to be displayed on
|
@ -1,43 +0,0 @@
|
||||
From c0131d32a3e19398225b12b1bbf448b9a55bebcd Mon Sep 17 00:00:00 2001
|
||||
From: Gary Bisson <gary.bisson@boundarydevices.com>
|
||||
Date: Mon, 3 Jan 2022 16:51:30 +0000
|
||||
Subject: [PATCH 22/90] FROMGIT(5.18): arm64: dts: meson-g12-common: add more
|
||||
pwm_f options
|
||||
|
||||
Add missing PWM_F pin muxing for GPIOA_11 and GPIOZ_12.
|
||||
|
||||
Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
|
||||
---
|
||||
.../arm64/boot/dts/amlogic/meson-g12-common.dtsi | 16 ++++++++++++++++
|
||||
1 file changed, 16 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
|
||||
index 04da23119ff1..d54f2a2bdea2 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
|
||||
@@ -845,6 +845,22 @@
|
||||
};
|
||||
};
|
||||
|
||||
+ pwm_f_z_pins: pwm-f-z {
|
||||
+ mux {
|
||||
+ groups = "pwm_f_z";
|
||||
+ function = "pwm_f";
|
||||
+ bias-disable;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ pwm_f_a_pins: pwm-f-a {
|
||||
+ mux {
|
||||
+ groups = "pwm_f_a";
|
||||
+ function = "pwm_f";
|
||||
+ bias-disable;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
pwm_f_x_pins: pwm-f-x {
|
||||
mux {
|
||||
groups = "pwm_f_x";
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 64b6dc707ec8fa981c36c9855d9502a14c4a06ab Mon Sep 17 00:00:00 2001
|
||||
From b3f2d569b4820d0660bc83187d2d9d1fb817ed56 Mon Sep 17 00:00:00 2001
|
||||
From: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
Date: Sun, 20 Feb 2022 08:27:56 +0000
|
||||
Subject: [PATCH 48/90] FROMLIST(v2): auxdisplay: add support for Titanmec
|
||||
Date: Mon, 4 Apr 2022 18:51:20 +0000
|
||||
Subject: [PATCH 22/75] FROMLIST(v5): auxdisplay: add support for Titanmec
|
||||
TM1628 7 segment display controller
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
@ -33,21 +33,21 @@ Note: There's a number of chips from other manufacturers that are
|
||||
Successfully tested on a TX3 Mini TV box that has an SM1628C and a
|
||||
display with 4 digits and 7 symbols.
|
||||
|
||||
Tested-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Co-developed-by: Andreas Färber <afaerber@suse.de>
|
||||
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
---
|
||||
drivers/auxdisplay/Kconfig | 10 +
|
||||
drivers/auxdisplay/Kconfig | 11 ++
|
||||
drivers/auxdisplay/Makefile | 1 +
|
||||
drivers/auxdisplay/tm1628.c | 375 ++++++++++++++++++++++++++++++++++++
|
||||
3 files changed, 386 insertions(+)
|
||||
drivers/auxdisplay/tm1628.c | 376 ++++++++++++++++++++++++++++++++++++
|
||||
3 files changed, 388 insertions(+)
|
||||
create mode 100644 drivers/auxdisplay/tm1628.c
|
||||
|
||||
diff --git a/drivers/auxdisplay/Kconfig b/drivers/auxdisplay/Kconfig
|
||||
index 64012cda4d12..25ef2e452897 100644
|
||||
index 64012cda4d12..2764afc5c5d9 100644
|
||||
--- a/drivers/auxdisplay/Kconfig
|
||||
+++ b/drivers/auxdisplay/Kconfig
|
||||
@@ -203,6 +203,16 @@ config ARM_CHARLCD
|
||||
@@ -203,6 +203,17 @@ config ARM_CHARLCD
|
||||
line and the Linux version on the second line, but that's
|
||||
still useful.
|
||||
|
||||
@ -58,6 +58,7 @@ index 64012cda4d12..25ef2e452897 100644
|
||||
+ help
|
||||
+ Say Y to enable support for Titan Micro Electronics TM1628
|
||||
+ LED controller.
|
||||
+
|
||||
+ It's a 3-wire SPI device controlling a two-dimensional grid of
|
||||
+ LEDs. Dimming is applied to all outputs through an internal PWM.
|
||||
+
|
||||
@ -75,17 +76,19 @@ index 6968ed4d3f0a..7728e17e1c5a 100644
|
||||
+obj-$(CONFIG_TM1628) += tm1628.o
|
||||
diff --git a/drivers/auxdisplay/tm1628.c b/drivers/auxdisplay/tm1628.c
|
||||
new file mode 100644
|
||||
index 000000000000..072de8d47a59
|
||||
index 000000000000..4d99a7aa077b
|
||||
--- /dev/null
|
||||
+++ b/drivers/auxdisplay/tm1628.c
|
||||
@@ -0,0 +1,375 @@
|
||||
@@ -0,0 +1,376 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
+/*
|
||||
+ * Titan Micro Electronics TM1628 LED controller
|
||||
+ *
|
||||
+ * Copyright (c) 2019 Andreas Färber
|
||||
+ * Copyright (c) 2022 Heiner Kallweit
|
||||
+ */
|
||||
+
|
||||
+#include <linux/ctype.h>
|
||||
+#include <linux/delay.h>
|
||||
+#include <linux/leds.h>
|
||||
+#include <linux/module.h>
|
||||
@ -109,6 +112,7 @@ index 000000000000..072de8d47a59
|
||||
+#define TM1628_CMD_SET_ADDRESS (3 << 6)
|
||||
+
|
||||
+#define TM1628_BRIGHTNESS_MAX 7
|
||||
+#define NUM_LED_SEGS 7
|
||||
+
|
||||
+/* Physical limits, depending on the mode the chip may support less */
|
||||
+#define MAX_GRID_SIZE 7
|
||||
@ -126,7 +130,7 @@ index 000000000000..072de8d47a59
|
||||
+ __le16 data[MAX_GRID_SIZE];
|
||||
+ struct mutex disp_lock;
|
||||
+ char text[MAX_GRID_SIZE + 1];
|
||||
+ u8 segment_mapping[7];
|
||||
+ u8 segment_mapping[NUM_LED_SEGS];
|
||||
+ u8 grid[MAX_GRID_SIZE];
|
||||
+ int grid_size;
|
||||
+ struct tm1628_led leds[];
|
||||
@ -135,7 +139,7 @@ index 000000000000..072de8d47a59
|
||||
+/* Command 1: Display Mode Setting */
|
||||
+static int tm1628_set_display_mode(struct spi_device *spi, u8 grid_mode)
|
||||
+{
|
||||
+ u8 cmd = TM1628_CMD_DISPLAY_MODE | grid_mode;
|
||||
+ const u8 cmd = TM1628_CMD_DISPLAY_MODE | grid_mode;
|
||||
+
|
||||
+ return spi_write(spi, &cmd, 1);
|
||||
+}
|
||||
@ -143,7 +147,7 @@ index 000000000000..072de8d47a59
|
||||
+/* Command 3: Address Setting */
|
||||
+static int tm1628_set_address(struct spi_device *spi, u8 offset)
|
||||
+{
|
||||
+ u8 cmd = TM1628_CMD_SET_ADDRESS | (offset * sizeof(__le16));
|
||||
+ const u8 cmd = TM1628_CMD_SET_ADDRESS | (offset * sizeof(__le16));
|
||||
+
|
||||
+ return spi_write(spi, &cmd, 1);
|
||||
+}
|
||||
@ -153,7 +157,7 @@ index 000000000000..072de8d47a59
|
||||
+ unsigned int len)
|
||||
+{
|
||||
+ struct tm1628 *s = spi_get_drvdata(spi);
|
||||
+ u8 cmd = TM1628_CMD_DATA | TM1628_DATA_WRITE_DATA;
|
||||
+ const u8 cmd = TM1628_CMD_DATA | TM1628_DATA_WRITE_DATA;
|
||||
+ struct spi_transfer xfers[] = {
|
||||
+ {
|
||||
+ .tx_buf = &cmd,
|
||||
@ -190,28 +194,29 @@ index 000000000000..072de8d47a59
|
||||
+static int tm1628_show_text(struct tm1628 *s)
|
||||
+{
|
||||
+ static SEG7_CONVERSION_MAP(map_seg7, MAP_ASCII7SEG_ALPHANUM);
|
||||
+ int i, ret;
|
||||
+ int msg_len, i, ret;
|
||||
+
|
||||
+ int msg_len = strlen(s->text);
|
||||
+ msg_len = strlen(s->text);
|
||||
+
|
||||
+ mutex_lock(&s->disp_lock);
|
||||
+
|
||||
+ for (i = 0; i < s->grid_size; i++) {
|
||||
+ int pos = s->grid[i] - 1;
|
||||
+ int j, char7_raw, char7;
|
||||
+
|
||||
+ if (i < msg_len) {
|
||||
+ int char7_raw = map_to_seg7(&map_seg7, s->text[i]);
|
||||
+ int j, char7;
|
||||
+
|
||||
+ for (j = 0, char7 = 0; j < 7; j++) {
|
||||
+ if (char7_raw & BIT(j))
|
||||
+ char7 |= BIT(s->segment_mapping[j] - 1);
|
||||
+ }
|
||||
+
|
||||
+ s->data[pos] = cpu_to_le16(char7);
|
||||
+ } else {
|
||||
+ if (i >= msg_len) {
|
||||
+ s->data[pos] = 0;
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ char7_raw = map_to_seg7(&map_seg7, s->text[i]);
|
||||
+
|
||||
+ for (j = 0, char7 = 0; j < NUM_LED_SEGS; j++) {
|
||||
+ if (char7_raw & BIT(j))
|
||||
+ char7 |= BIT(s->segment_mapping[j] - 1);
|
||||
+ }
|
||||
+
|
||||
+ s->data[pos] = cpu_to_le16(char7);
|
||||
+ }
|
||||
+
|
||||
+ ret = tm1628_write_data(s->spi, 0, s->grid_size);
|
||||
@ -226,11 +231,8 @@ index 000000000000..072de8d47a59
|
||||
+{
|
||||
+ struct tm1628_led *led = container_of(led_cdev, struct tm1628_led, leddev);
|
||||
+ struct tm1628 *s = led->ctrl;
|
||||
+ int offset, ret;
|
||||
+ __le16 bit;
|
||||
+
|
||||
+ offset = led->grid - 1;
|
||||
+ bit = cpu_to_le16(BIT(led->seg - 1));
|
||||
+ int ret, offset = led->grid - 1;
|
||||
+ __le16 bit = cpu_to_le16(BIT(led->seg - 1));
|
||||
+
|
||||
+ mutex_lock(&s->disp_lock);
|
||||
+
|
||||
@ -250,13 +252,10 @@ index 000000000000..072de8d47a59
|
||||
+{
|
||||
+ struct tm1628_led *led = container_of(led_cdev, struct tm1628_led, leddev);
|
||||
+ struct tm1628 *s = led->ctrl;
|
||||
+ int offset;
|
||||
+ __le16 bit;
|
||||
+ int offset = led->grid - 1;
|
||||
+ __le16 bit = cpu_to_le16(BIT(led->seg - 1));
|
||||
+ bool on;
|
||||
+
|
||||
+ offset = led->grid - 1;
|
||||
+ bit = cpu_to_le16(BIT(led->seg - 1));
|
||||
+
|
||||
+ mutex_lock(&s->disp_lock);
|
||||
+ on = s->data[offset] & bit;
|
||||
+ mutex_unlock(&s->disp_lock);
|
||||
@ -294,10 +293,7 @@ index 000000000000..072de8d47a59
|
||||
+ struct tm1628 *s = dev_get_drvdata(dev);
|
||||
+ int ret, i;
|
||||
+
|
||||
+ if (count > s->grid_size + 1) /* consider trailing newline */
|
||||
+ return -E2BIG;
|
||||
+
|
||||
+ for (i = 0; i < count && isprint(buf[i]); i++)
|
||||
+ for (i = 0; i < count && i < s->grid_size && isprint(buf[i]); i++)
|
||||
+ s->text[i] = buf[i];
|
||||
+
|
||||
+ s->text[i] = '\0';
|
||||
@ -329,24 +325,28 @@ index 000000000000..072de8d47a59
|
||||
+
|
||||
+ mutex_init(&s->disp_lock);
|
||||
+
|
||||
+ msleep(200); /* according to TM1628 datasheet */
|
||||
+ /* According to TM1628 datasheet */
|
||||
+ msleep(200);
|
||||
+
|
||||
+ /* clear screen */
|
||||
+ /* Clear screen */
|
||||
+ ret = tm1628_write_data(spi, 0, MAX_GRID_SIZE);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+ /* Assume that subsequent SPI transfers will be ok if first was ok */
|
||||
+
|
||||
+ /* For now we support 6x12 mode only. This should be sufficient for most use cases */
|
||||
+ tm1628_set_display_mode(spi, TM1628_DISPLAY_MODE_6_12);
|
||||
+ ret = tm1628_set_display_mode(spi, TM1628_DISPLAY_MODE_6_12);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ tm1628_set_display_ctrl(spi, true);
|
||||
+ ret = tm1628_set_display_ctrl(spi, true);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ num_leds = 0;
|
||||
+
|
||||
+ if (!IS_REACHABLE(CONFIG_LEDS_CLASS))
|
||||
+ goto no_leds;
|
||||
+
|
||||
+ num_leds = 0;
|
||||
+
|
||||
+ device_for_each_child_node(&spi->dev, child) {
|
||||
+ u32 reg[2];
|
||||
+
|
||||
@ -379,7 +379,7 @@ index 000000000000..072de8d47a59
|
||||
+ }
|
||||
+
|
||||
+no_leds:
|
||||
+ ret = device_property_count_u8(&spi->dev, "grid");
|
||||
+ ret = device_property_count_u8(&spi->dev, "titanmec,grid");
|
||||
+ if (ret < 1 || ret > MAX_GRID_SIZE) {
|
||||
+ dev_err(&spi->dev, "Invalid display length (%d)\n", ret);
|
||||
+ return -EINVAL;
|
||||
@ -387,7 +387,7 @@ index 000000000000..072de8d47a59
|
||||
+
|
||||
+ s->grid_size = ret;
|
||||
+
|
||||
+ ret = device_property_read_u8_array(&spi->dev, "grid", s->grid, s->grid_size);
|
||||
+ ret = device_property_read_u8_array(&spi->dev, "titanmec,grid", s->grid, s->grid_size);
|
||||
+ if (ret < 0)
|
||||
+ return ret;
|
||||
+
|
||||
@ -396,11 +396,12 @@ index 000000000000..072de8d47a59
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+
|
||||
+ ret = device_property_read_u8_array(&spi->dev, "segment-mapping", s->segment_mapping, 7);
|
||||
+ ret = device_property_read_u8_array(&spi->dev, "titanmec,segment-mapping",
|
||||
+ s->segment_mapping, NUM_LED_SEGS);
|
||||
+ if (ret < 0)
|
||||
+ return ret;
|
||||
+
|
||||
+ for (i = 0; i < 7; i++) {
|
||||
+ for (i = 0; i < NUM_LED_SEGS; i++) {
|
||||
+ if (s->segment_mapping[i] < 1 || s->segment_mapping[i] > MAX_SEGMENT_NUM)
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
@ -452,7 +453,8 @@ index 000000000000..072de8d47a59
|
||||
+module_spi_driver(tm1628_spi_driver);
|
||||
+
|
||||
+MODULE_DESCRIPTION("TM1628 LED controller driver");
|
||||
+MODULE_AUTHOR("Andreas Färber");
|
||||
+MODULE_AUTHOR("Andreas Färber <afaerber@suse.de>");
|
||||
+MODULE_AUTHOR("Heiner Kallweit <hkallweit1@gmail.com>");
|
||||
+MODULE_LICENSE("GPL");
|
||||
--
|
||||
2.17.1
|
@ -1,56 +0,0 @@
|
||||
From 0715e9b005f0533feefb9a9df98904f22aecfe3a Mon Sep 17 00:00:00 2001
|
||||
From: Gary Bisson <gary.bisson@boundarydevices.com>
|
||||
Date: Mon, 3 Jan 2022 16:52:18 +0000
|
||||
Subject: [PATCH 23/90] FROMGIT(5.18): arm64: dts: meson-g12-common: add
|
||||
uart_ao_b pins muxing
|
||||
|
||||
- RX/TX signals can be mapped on 2 different pairs of pins so supporting
|
||||
both options
|
||||
- RTS/CTS signals however only have 1 option available
|
||||
|
||||
Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
|
||||
---
|
||||
.../boot/dts/amlogic/meson-g12-common.dtsi | 27 +++++++++++++++++++
|
||||
1 file changed, 27 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
|
||||
index d54f2a2bdea2..3a330c9b0e5e 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
|
||||
@@ -1903,6 +1903,33 @@
|
||||
};
|
||||
};
|
||||
|
||||
+ uart_ao_b_1_pins: uart-ao-b-1 {
|
||||
+ mux {
|
||||
+ groups = "uart_ao_b_tx_2",
|
||||
+ "uart_ao_b_rx_3";
|
||||
+ function = "uart_ao_b";
|
||||
+ bias-disable;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ uart_ao_b_2_pins: uart-ao-b-2 {
|
||||
+ mux {
|
||||
+ groups = "uart_ao_b_tx_8",
|
||||
+ "uart_ao_b_rx_9";
|
||||
+ function = "uart_ao_b";
|
||||
+ bias-disable;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ uart_ao_b_cts_rts_pins: uart-ao-b-cts-rts {
|
||||
+ mux {
|
||||
+ groups = "uart_ao_b_cts",
|
||||
+ "uart_ao_b_rts";
|
||||
+ function = "uart_ao_b";
|
||||
+ bias-disable;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
pwm_a_e_pins: pwm-a-e {
|
||||
mux {
|
||||
groups = "pwm_a_e";
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 3abb1669bfb5e075daae0c0a928b2f31ded16e14 Mon Sep 17 00:00:00 2001
|
||||
From 2880209332a9d8cec61ffeb6d6fe5d211cabb20e Mon Sep 17 00:00:00 2001
|
||||
From: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
Date: Sun, 20 Feb 2022 08:29:31 +0000
|
||||
Subject: [PATCH 49/90] FROMLIST(v2): arm64: dts: meson-gxl-s905w-tx3-mini: add
|
||||
Date: Mon, 4 Apr 2022 18:52:34 +0000
|
||||
Subject: [PATCH 23/75] FROMLIST(v5): arm64: dts: meson-gxl-s905w-tx3-mini: add
|
||||
support for the 7 segment display
|
||||
|
||||
This patch adds support for the 7 segment display of the device.
|
||||
@ -12,7 +12,7 @@ Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
1 file changed, 59 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-tx3-mini.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-tx3-mini.dts
|
||||
index 6705c2082a78..20bbd931e696 100644
|
||||
index 6705c2082a78..ae0d8d7b1e19 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-tx3-mini.dts
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905w-tx3-mini.dts
|
||||
@@ -10,6 +10,7 @@
|
||||
@ -47,8 +47,8 @@ index 6705c2082a78..20bbd931e696 100644
|
||||
+ #address-cells = <2>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ segment-mapping = /bits/ 8 <4 5 6 1 2 3 7>;
|
||||
+ grid = /bits/ 8 <4 3 2 1>;
|
||||
+ titanmec,segment-mapping = /bits/ 8 <4 5 6 1 2 3 7>;
|
||||
+ titanmec,grid = /bits/ 8 <4 3 2 1>;
|
||||
+
|
||||
+ alarm@5,1 {
|
||||
+ reg = <5 1>;
|
@ -1,30 +0,0 @@
|
||||
From d28404155d45c7cf821887799c21c8acdce16d8c Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 19 Jan 2022 02:29:42 +0000
|
||||
Subject: [PATCH 24/90] FROMGIT(5.18): dt-bindings: vendor-prefixes: add osmc
|
||||
prefix
|
||||
|
||||
Open Source Media Centre (Sam Nazarko Trading Ltd.) are a manufacturer
|
||||
of Linux Set-Top Box devices.
|
||||
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
---
|
||||
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
|
||||
index 0d8da47cda1a..c1fa95a505e9 100644
|
||||
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
|
||||
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
|
||||
@@ -896,6 +896,8 @@ patternProperties:
|
||||
description: Ortus Technology Co., Ltd.
|
||||
"^osddisplays,.*":
|
||||
description: OSD Displays
|
||||
+ "^osmc,.*":
|
||||
+ description: Sam Nazarko Trading Ltd. (Open Source Media Centre)
|
||||
"^ouya,.*":
|
||||
description: Ouya Inc.
|
||||
"^overkiz,.*":
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,32 @@
|
||||
From ce197ea3edac7cfc4a85c22713a99f65ea2951fd Mon Sep 17 00:00:00 2001
|
||||
From: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
Date: Mon, 4 Apr 2022 18:53:32 +0000
|
||||
Subject: [PATCH 24/75] FROMLIST(v5): MAINTAINERS: Add entry for tm1628
|
||||
auxdisplay driver
|
||||
|
||||
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
---
|
||||
MAINTAINERS | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/MAINTAINERS b/MAINTAINERS
|
||||
index f468864fd268..08e95ea74a25 100644
|
||||
--- a/MAINTAINERS
|
||||
+++ b/MAINTAINERS
|
||||
@@ -19830,6 +19830,13 @@ W: http://sourceforge.net/projects/tlan/
|
||||
F: Documentation/networking/device_drivers/ethernet/ti/tlan.rst
|
||||
F: drivers/net/ethernet/ti/tlan.*
|
||||
|
||||
+TM1628 LED CONTROLLER DRIVER
|
||||
+M: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
+S: Maintained
|
||||
+F: Documentation/devicetree/bindings/auxdisplay/titanmec,tm1628.yaml
|
||||
+F: Documentation/ABI/testing/sysfs-devices-auxdisplay-tm1628
|
||||
+F: drivers/auxdisplay/tm1628.c
|
||||
+
|
||||
TM6000 VIDEO4LINUX DRIVER
|
||||
M: Mauro Carvalho Chehab <mchehab@kernel.org>
|
||||
L: linux-media@vger.kernel.org
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,28 +0,0 @@
|
||||
From 2a8105bc091a435effb5f9d5412328c564c93ac0 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 19 Jan 2022 02:40:20 +0000
|
||||
Subject: [PATCH 25/90] FROMGIT(5.18): dt-bindings: arm: amlogic: add Vero 4K+
|
||||
bindings
|
||||
|
||||
Add the board binding for the OSMC Vero 4K+ STB device
|
||||
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
---
|
||||
Documentation/devicetree/bindings/arm/amlogic.yaml | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
index 7c3627d9c773..05365bb50b29 100644
|
||||
--- a/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
+++ b/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
@@ -108,6 +108,7 @@ properties:
|
||||
- amlogic,p230
|
||||
- amlogic,p231
|
||||
- libretech,aml-s905d-pc
|
||||
+ - osmc,vero4k-plus
|
||||
- phicomm,n1
|
||||
- smartlabs,sml5442tw
|
||||
- videostrong,gxl-kii-pro
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,154 @@
|
||||
From 234d96018aa039365b006e506cee1cb5ff22af2b Mon Sep 17 00:00:00 2001
|
||||
From: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
Date: Mon, 4 Apr 2022 18:58:27 +0000
|
||||
Subject: [PATCH 25/75] FROMLIST(v2): xhci: factor out parts of
|
||||
xhci_gen_setup()
|
||||
|
||||
Factoring out parts of xhci_gen_setup() has two motivations:
|
||||
- When adding functionaliy to omit shared hcd if not needed in a
|
||||
subsequent patch, we'll have to call xhci_hcd_init_usb3_data()
|
||||
from two places.
|
||||
- It reduces size of xhci_gen_setup() and makes it better readable.
|
||||
|
||||
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
---
|
||||
drivers/usb/host/xhci.c | 104 +++++++++++++++++++++-------------------
|
||||
1 file changed, 54 insertions(+), 50 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
|
||||
index 25b87e99b4dd..92ae4ec531ff 100644
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -5207,6 +5207,57 @@ static int xhci_get_frame(struct usb_hcd *hcd)
|
||||
return readl(&xhci->run_regs->microframe_index) >> 3;
|
||||
}
|
||||
|
||||
+static void xhci_hcd_init_usb2_data(struct xhci_hcd *xhci, struct usb_hcd *hcd)
|
||||
+{
|
||||
+ xhci->usb2_rhub.hcd = hcd;
|
||||
+ hcd->speed = HCD_USB2;
|
||||
+ hcd->self.root_hub->speed = USB_SPEED_HIGH;
|
||||
+ /*
|
||||
+ * USB 2.0 roothub under xHCI has an integrated TT,
|
||||
+ * (rate matching hub) as opposed to having an OHCI/UHCI
|
||||
+ * companion controller.
|
||||
+ */
|
||||
+ hcd->has_tt = 1;
|
||||
+}
|
||||
+
|
||||
+static void xhci_hcd_init_usb3_data(struct xhci_hcd *xhci, struct usb_hcd *hcd)
|
||||
+{
|
||||
+ unsigned int minor_rev;
|
||||
+
|
||||
+ /*
|
||||
+ * Early xHCI 1.1 spec did not mention USB 3.1 capable hosts
|
||||
+ * should return 0x31 for sbrn, or that the minor revision
|
||||
+ * is a two digit BCD containig minor and sub-minor numbers.
|
||||
+ * This was later clarified in xHCI 1.2.
|
||||
+ *
|
||||
+ * Some USB 3.1 capable hosts therefore have sbrn 0x30, and
|
||||
+ * minor revision set to 0x1 instead of 0x10.
|
||||
+ */
|
||||
+ if (xhci->usb3_rhub.min_rev == 0x1)
|
||||
+ minor_rev = 1;
|
||||
+ else
|
||||
+ minor_rev = xhci->usb3_rhub.min_rev / 0x10;
|
||||
+
|
||||
+ switch (minor_rev) {
|
||||
+ case 2:
|
||||
+ hcd->speed = HCD_USB32;
|
||||
+ hcd->self.root_hub->speed = USB_SPEED_SUPER_PLUS;
|
||||
+ hcd->self.root_hub->rx_lanes = 2;
|
||||
+ hcd->self.root_hub->tx_lanes = 2;
|
||||
+ hcd->self.root_hub->ssp_rate = USB_SSP_GEN_2x2;
|
||||
+ break;
|
||||
+ case 1:
|
||||
+ hcd->speed = HCD_USB31;
|
||||
+ hcd->self.root_hub->speed = USB_SPEED_SUPER_PLUS;
|
||||
+ hcd->self.root_hub->ssp_rate = USB_SSP_GEN_2x1;
|
||||
+ break;
|
||||
+ }
|
||||
+ xhci_info(xhci, "Host supports USB 3.%x %sSuperSpeed\n",
|
||||
+ minor_rev, minor_rev ? "Enhanced " : "");
|
||||
+
|
||||
+ xhci->usb3_rhub.hcd = hcd;
|
||||
+}
|
||||
+
|
||||
int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
|
||||
{
|
||||
struct xhci_hcd *xhci;
|
||||
@@ -5215,7 +5266,6 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
|
||||
* quirks
|
||||
*/
|
||||
struct device *dev = hcd->self.sysdev;
|
||||
- unsigned int minor_rev;
|
||||
int retval;
|
||||
|
||||
/* Accept arbitrarily long scatter-gather lists */
|
||||
@@ -5230,60 +5280,14 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
|
||||
xhci = hcd_to_xhci(hcd);
|
||||
|
||||
if (usb_hcd_is_primary_hcd(hcd)) {
|
||||
- xhci->main_hcd = hcd;
|
||||
- xhci->usb2_rhub.hcd = hcd;
|
||||
- /* Mark the first roothub as being USB 2.0.
|
||||
- * The xHCI driver will register the USB 3.0 roothub.
|
||||
- */
|
||||
- hcd->speed = HCD_USB2;
|
||||
- hcd->self.root_hub->speed = USB_SPEED_HIGH;
|
||||
- /*
|
||||
- * USB 2.0 roothub under xHCI has an integrated TT,
|
||||
- * (rate matching hub) as opposed to having an OHCI/UHCI
|
||||
- * companion controller.
|
||||
- */
|
||||
- hcd->has_tt = 1;
|
||||
+ xhci_hcd_init_usb2_data(xhci, hcd);
|
||||
} else {
|
||||
- /*
|
||||
- * Early xHCI 1.1 spec did not mention USB 3.1 capable hosts
|
||||
- * should return 0x31 for sbrn, or that the minor revision
|
||||
- * is a two digit BCD containig minor and sub-minor numbers.
|
||||
- * This was later clarified in xHCI 1.2.
|
||||
- *
|
||||
- * Some USB 3.1 capable hosts therefore have sbrn 0x30, and
|
||||
- * minor revision set to 0x1 instead of 0x10.
|
||||
- */
|
||||
- if (xhci->usb3_rhub.min_rev == 0x1)
|
||||
- minor_rev = 1;
|
||||
- else
|
||||
- minor_rev = xhci->usb3_rhub.min_rev / 0x10;
|
||||
-
|
||||
- switch (minor_rev) {
|
||||
- case 2:
|
||||
- hcd->speed = HCD_USB32;
|
||||
- hcd->self.root_hub->speed = USB_SPEED_SUPER_PLUS;
|
||||
- hcd->self.root_hub->rx_lanes = 2;
|
||||
- hcd->self.root_hub->tx_lanes = 2;
|
||||
- hcd->self.root_hub->ssp_rate = USB_SSP_GEN_2x2;
|
||||
- break;
|
||||
- case 1:
|
||||
- hcd->speed = HCD_USB31;
|
||||
- hcd->self.root_hub->speed = USB_SPEED_SUPER_PLUS;
|
||||
- hcd->self.root_hub->ssp_rate = USB_SSP_GEN_2x1;
|
||||
- break;
|
||||
- }
|
||||
- xhci_info(xhci, "Host supports USB 3.%x %sSuperSpeed\n",
|
||||
- minor_rev,
|
||||
- minor_rev ? "Enhanced " : "");
|
||||
-
|
||||
- xhci->usb3_rhub.hcd = hcd;
|
||||
- /* xHCI private pointer was set in xhci_pci_probe for the second
|
||||
- * registered roothub.
|
||||
- */
|
||||
+ xhci_hcd_init_usb3_data(xhci, hcd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
mutex_init(&xhci->mutex);
|
||||
+ xhci->main_hcd = hcd;
|
||||
xhci->cap_regs = hcd->regs;
|
||||
xhci->op_regs = hcd->regs +
|
||||
HC_LENGTH(readl(&xhci->cap_regs->hc_capbase));
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,170 +0,0 @@
|
||||
From edc337ae1a104ef1111ed79d23426d7b77ce2e31 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 19 Jan 2022 04:06:17 +0000
|
||||
Subject: [PATCH 26/90] FROMGIT(5.18): arm64: dts: meson: add support for OSMC
|
||||
Vero 4K+
|
||||
|
||||
The OSMC Vero 4K+ device is based on the Amlogic S905D (P230)
|
||||
reference design with the following specifications:
|
||||
|
||||
- 2GB DDR4 RAM
|
||||
- 16GB eMMC
|
||||
- HDMI 2.1 video
|
||||
- S/PDIF optical output
|
||||
- AV output
|
||||
- 10/100/1000 Ethernet
|
||||
- AP6255 Wireless (802.11 a/b/g/n/ac, BT 4.2)
|
||||
- 2x USB 2.0 ports (1x OTG)
|
||||
- IR receiver (internal)
|
||||
- IR extender port (external)
|
||||
- 1x micro SD card slot
|
||||
- 1x Power LED (red)
|
||||
- 1x Reset button (in AV jack)
|
||||
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Tested-by: Chad Wagner <wagnerch42@gmail.com>
|
||||
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/Makefile | 1 +
|
||||
.../amlogic/meson-gxl-s905d-vero4k-plus.dts | 117 ++++++++++++++++++
|
||||
2 files changed, 118 insertions(+)
|
||||
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s905d-vero4k-plus.dts
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
index f7aea90c7f2a..383e9fb49852 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/Makefile
|
||||
+++ b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
@@ -36,6 +36,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p230.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p231.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-phicomm-n1.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-sml5442tw.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-vero4k-plus.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s805x-p241.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-p281.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-tx3-mini.dtb
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-vero4k-plus.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-vero4k-plus.dts
|
||||
new file mode 100644
|
||||
index 000000000000..4b0ff707e21b
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905d-vero4k-plus.dts
|
||||
@@ -0,0 +1,117 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+/*
|
||||
+ * Author: Christian Hewitt <christianshewitt@gmail.com>
|
||||
+ */
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "meson-gxl-s905d.dtsi"
|
||||
+#include "meson-gx-p23x-q20x.dtsi"
|
||||
+#include <dt-bindings/input/input.h>
|
||||
+#include <dt-bindings/leds/common.h>
|
||||
+
|
||||
+/ {
|
||||
+ compatible = "osmc,vero4k-plus", "amlogic,s905d", "amlogic,meson-gxl";
|
||||
+ model = "OSMC Vero 4K Plus";
|
||||
+
|
||||
+ gpio-keys-polled {
|
||||
+ compatible = "gpio-keys-polled";
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ poll-interval = <20>;
|
||||
+
|
||||
+ button@0 {
|
||||
+ label = "power";
|
||||
+ linux,code = <KEY_POWER>;
|
||||
+ gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ leds {
|
||||
+ compatible = "gpio-leds";
|
||||
+
|
||||
+ led-standby {
|
||||
+ color = <LED_COLOR_ID_RED>;
|
||||
+ function = LED_FUNCTION_POWER;
|
||||
+ gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_LOW>;
|
||||
+ default-state = "off";
|
||||
+ panic-indicator;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+ðmac {
|
||||
+ pinctrl-0 = <ð_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+
|
||||
+ phy-mode = "rgmii-txid";
|
||||
+ phy-handle = <&external_phy>;
|
||||
+
|
||||
+ amlogic,tx-delay-ns = <0>;
|
||||
+};
|
||||
+
|
||||
+&external_mdio {
|
||||
+ external_phy: ethernet-phy@0 {
|
||||
+ /* Realtek RTL8211F (0x001cc916) */
|
||||
+ pinctrl-0 = <ð_phy_irq_pin>;
|
||||
+ pinctrl-names = "default";
|
||||
+
|
||||
+ reg = <0>;
|
||||
+ max-speed = <1000>;
|
||||
+
|
||||
+ reset-assert-us = <10000>;
|
||||
+ reset-deassert-us = <80000>;
|
||||
+ reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
|
||||
+
|
||||
+ interrupt-parent = <&gpio_intc>;
|
||||
+ interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&pinctrl_periphs {
|
||||
+ /* Ensure the phy irq pin is properly configured as input */
|
||||
+ eth_phy_irq_pin: eth-phy-irq {
|
||||
+ mux {
|
||||
+ groups = "GPIOZ_15";
|
||||
+ function = "gpio_periphs";
|
||||
+ bias-disable;
|
||||
+ output-disable;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&sd_emmc_a {
|
||||
+ brcmf: wifi@1 {
|
||||
+ reg = <1>;
|
||||
+ compatible = "brcm,bcm4329-fmac";
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&uart_A {
|
||||
+ status = "okay";
|
||||
+ pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
|
||||
+ pinctrl-names = "default";
|
||||
+ uart-has-rtscts;
|
||||
+
|
||||
+ bluetooth {
|
||||
+ compatible = "brcm,bcm43438-bt";
|
||||
+ shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
|
||||
+ max-speed = <2000000>;
|
||||
+ clocks = <&wifi32k>;
|
||||
+ clock-names = "lpo";
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&usb {
|
||||
+ dr_mode = "host";
|
||||
+};
|
||||
+
|
||||
+&usb2_phy0 {
|
||||
+ /* HDMI_5V also supplies the USB VBUS */
|
||||
+ phy-supply = <&hdmi_5v>;
|
||||
+};
|
||||
+
|
||||
+&usb2_phy0 {
|
||||
+ /* HDMI_5V also supplies the USB VBUS */
|
||||
+ phy-supply = <&hdmi_5v>;
|
||||
+};
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,283 @@
|
||||
From b6dc593e9dbbf1017760f25b446d2a8b24364330 Mon Sep 17 00:00:00 2001
|
||||
From: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
Date: Mon, 4 Apr 2022 18:59:21 +0000
|
||||
Subject: [PATCH 26/75] FROMLIST(v2): xhci: prepare for operation w/o shared
|
||||
hcd
|
||||
|
||||
This patch prepares xhci for the following scenario:
|
||||
- If either of the root hubs has no ports, then omit shared hcd
|
||||
- Main hcd can be USB3 if there are no USB2 ports
|
||||
|
||||
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
---
|
||||
drivers/usb/host/xhci-hub.c | 3 ++-
|
||||
drivers/usb/host/xhci-mem.c | 11 ++++----
|
||||
drivers/usb/host/xhci.c | 53 ++++++++++++++++++++++++-------------
|
||||
drivers/usb/host/xhci.h | 26 ++++++++++++++++++
|
||||
4 files changed, 68 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
|
||||
index f65f1ba2b592..c54f2bc23d3f 100644
|
||||
--- a/drivers/usb/host/xhci-hub.c
|
||||
+++ b/drivers/usb/host/xhci-hub.c
|
||||
@@ -707,6 +707,7 @@ static int xhci_enter_test_mode(struct xhci_hcd *xhci,
|
||||
u16 test_mode, u16 wIndex, unsigned long *flags)
|
||||
__must_hold(&xhci->lock)
|
||||
{
|
||||
+ struct usb_hcd *usb3_hcd = xhci_get_usb3_hcd(xhci);
|
||||
int i, retval;
|
||||
|
||||
/* Disable all Device Slots */
|
||||
@@ -727,7 +728,7 @@ static int xhci_enter_test_mode(struct xhci_hcd *xhci,
|
||||
xhci_dbg(xhci, "Disable all port (PP = 0)\n");
|
||||
/* Power off USB3 ports*/
|
||||
for (i = 0; i < xhci->usb3_rhub.num_ports; i++)
|
||||
- xhci_set_port_power(xhci, xhci->shared_hcd, i, false, flags);
|
||||
+ xhci_set_port_power(xhci, usb3_hcd, i, false, flags);
|
||||
/* Power off USB2 ports*/
|
||||
for (i = 0; i < xhci->usb2_rhub.num_ports; i++)
|
||||
xhci_set_port_power(xhci, xhci->main_hcd, i, false, flags);
|
||||
diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
|
||||
index bbb27ee2c6a3..50bf64dcb186 100644
|
||||
--- a/drivers/usb/host/xhci-mem.c
|
||||
+++ b/drivers/usb/host/xhci-mem.c
|
||||
@@ -1072,7 +1072,7 @@ static u32 xhci_find_real_port_number(struct xhci_hcd *xhci,
|
||||
struct usb_hcd *hcd;
|
||||
|
||||
if (udev->speed >= USB_SPEED_SUPER)
|
||||
- hcd = xhci->shared_hcd;
|
||||
+ hcd = xhci_get_usb3_hcd(xhci);
|
||||
else
|
||||
hcd = xhci->main_hcd;
|
||||
|
||||
@@ -2362,10 +2362,11 @@ static int xhci_setup_port_arrays(struct xhci_hcd *xhci, gfp_t flags)
|
||||
xhci->usb2_rhub.num_ports = USB_MAXCHILDREN;
|
||||
}
|
||||
|
||||
- /*
|
||||
- * Note we could have all USB 3.0 ports, or all USB 2.0 ports.
|
||||
- * Not sure how the USB core will handle a hub with no ports...
|
||||
- */
|
||||
+ if (!xhci->usb2_rhub.num_ports)
|
||||
+ xhci_info(xhci, "USB2 root hub has no ports\n");
|
||||
+
|
||||
+ if (!xhci->usb3_rhub.num_ports)
|
||||
+ xhci_info(xhci, "USB3 root hub has no ports\n");
|
||||
|
||||
xhci_create_rhub_port_array(xhci, &xhci->usb2_rhub, flags);
|
||||
xhci_create_rhub_port_array(xhci, &xhci->usb3_rhub, flags);
|
||||
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
|
||||
index 92ae4ec531ff..5d4955ed4074 100644
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -486,6 +486,10 @@ static void compliance_mode_recovery(struct timer_list *t)
|
||||
|
||||
xhci = from_timer(xhci, t, comp_mode_recovery_timer);
|
||||
rhub = &xhci->usb3_rhub;
|
||||
+ hcd = rhub->hcd;
|
||||
+
|
||||
+ if (!hcd)
|
||||
+ return;
|
||||
|
||||
for (i = 0; i < rhub->num_ports; i++) {
|
||||
temp = readl(rhub->ports[i]->addr);
|
||||
@@ -499,7 +503,6 @@ static void compliance_mode_recovery(struct timer_list *t)
|
||||
i + 1);
|
||||
xhci_dbg_trace(xhci, trace_xhci_dbg_quirks,
|
||||
"Attempting compliance mode recovery");
|
||||
- hcd = xhci->shared_hcd;
|
||||
|
||||
if (hcd->state == HC_STATE_SUSPENDED)
|
||||
usb_hcd_resume_root_hub(hcd);
|
||||
@@ -612,14 +615,11 @@ static int xhci_run_finished(struct xhci_hcd *xhci)
|
||||
xhci_halt(xhci);
|
||||
return -ENODEV;
|
||||
}
|
||||
- xhci->shared_hcd->state = HC_STATE_RUNNING;
|
||||
xhci->cmd_ring_state = CMD_RING_STATE_RUNNING;
|
||||
|
||||
if (xhci->quirks & XHCI_NEC_HOST)
|
||||
xhci_ring_cmd_db(xhci);
|
||||
|
||||
- xhci_dbg_trace(xhci, trace_xhci_dbg_init,
|
||||
- "Finished xhci_run for USB3 roothub");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -694,12 +694,15 @@ int xhci_run(struct usb_hcd *hcd)
|
||||
xhci_free_command(xhci, command);
|
||||
}
|
||||
xhci_dbg_trace(xhci, trace_xhci_dbg_init,
|
||||
- "Finished xhci_run for USB2 roothub");
|
||||
+ "Finished %s for main hcd", __func__);
|
||||
|
||||
xhci_create_dbc_dev(xhci);
|
||||
|
||||
xhci_debugfs_init(xhci);
|
||||
|
||||
+ if (xhci_has_one_roothub(xhci))
|
||||
+ return xhci_run_finished(xhci);
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(xhci_run);
|
||||
@@ -992,7 +995,7 @@ int xhci_suspend(struct xhci_hcd *xhci, bool do_wakeup)
|
||||
return 0;
|
||||
|
||||
if (hcd->state != HC_STATE_SUSPENDED ||
|
||||
- xhci->shared_hcd->state != HC_STATE_SUSPENDED)
|
||||
+ (xhci->shared_hcd && xhci->shared_hcd->state != HC_STATE_SUSPENDED))
|
||||
return -EINVAL;
|
||||
|
||||
/* Clear root port wake on bits if wakeup not allowed. */
|
||||
@@ -1009,15 +1012,18 @@ int xhci_suspend(struct xhci_hcd *xhci, bool do_wakeup)
|
||||
__func__, hcd->self.busnum);
|
||||
clear_bit(HCD_FLAG_POLL_RH, &hcd->flags);
|
||||
del_timer_sync(&hcd->rh_timer);
|
||||
- clear_bit(HCD_FLAG_POLL_RH, &xhci->shared_hcd->flags);
|
||||
- del_timer_sync(&xhci->shared_hcd->rh_timer);
|
||||
+ if (xhci->shared_hcd) {
|
||||
+ clear_bit(HCD_FLAG_POLL_RH, &xhci->shared_hcd->flags);
|
||||
+ del_timer_sync(&xhci->shared_hcd->rh_timer);
|
||||
+ }
|
||||
|
||||
if (xhci->quirks & XHCI_SUSPEND_DELAY)
|
||||
usleep_range(1000, 1500);
|
||||
|
||||
spin_lock_irq(&xhci->lock);
|
||||
clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
|
||||
- clear_bit(HCD_FLAG_HW_ACCESSIBLE, &xhci->shared_hcd->flags);
|
||||
+ if (xhci->shared_hcd)
|
||||
+ clear_bit(HCD_FLAG_HW_ACCESSIBLE, &xhci->shared_hcd->flags);
|
||||
/* step 1: stop endpoint */
|
||||
/* skipped assuming that port suspend has done */
|
||||
|
||||
@@ -1117,7 +1123,8 @@ int xhci_resume(struct xhci_hcd *xhci, bool hibernated)
|
||||
msleep(100);
|
||||
|
||||
set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
|
||||
- set_bit(HCD_FLAG_HW_ACCESSIBLE, &xhci->shared_hcd->flags);
|
||||
+ if (xhci->shared_hcd)
|
||||
+ set_bit(HCD_FLAG_HW_ACCESSIBLE, &xhci->shared_hcd->flags);
|
||||
|
||||
spin_lock_irq(&xhci->lock);
|
||||
|
||||
@@ -1177,7 +1184,8 @@ int xhci_resume(struct xhci_hcd *xhci, bool hibernated)
|
||||
|
||||
/* Let the USB core know _both_ roothubs lost power. */
|
||||
usb_root_hub_lost_power(xhci->main_hcd->self.root_hub);
|
||||
- usb_root_hub_lost_power(xhci->shared_hcd->self.root_hub);
|
||||
+ if (xhci->shared_hcd)
|
||||
+ usb_root_hub_lost_power(xhci->shared_hcd->self.root_hub);
|
||||
|
||||
xhci_dbg(xhci, "Stop HCD\n");
|
||||
xhci_halt(xhci);
|
||||
@@ -1217,12 +1225,13 @@ int xhci_resume(struct xhci_hcd *xhci, bool hibernated)
|
||||
|
||||
xhci_dbg(xhci, "Start the primary HCD\n");
|
||||
retval = xhci_run(hcd->primary_hcd);
|
||||
- if (!retval) {
|
||||
+ if (!retval && secondary_hcd) {
|
||||
xhci_dbg(xhci, "Start the secondary HCD\n");
|
||||
retval = xhci_run(secondary_hcd);
|
||||
}
|
||||
hcd->state = HC_STATE_SUSPENDED;
|
||||
- xhci->shared_hcd->state = HC_STATE_SUSPENDED;
|
||||
+ if (xhci->shared_hcd)
|
||||
+ xhci->shared_hcd->state = HC_STATE_SUSPENDED;
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -1260,7 +1269,8 @@ int xhci_resume(struct xhci_hcd *xhci, bool hibernated)
|
||||
}
|
||||
|
||||
if (pending_portevent) {
|
||||
- usb_hcd_resume_root_hub(xhci->shared_hcd);
|
||||
+ if (xhci->shared_hcd)
|
||||
+ usb_hcd_resume_root_hub(xhci->shared_hcd);
|
||||
usb_hcd_resume_root_hub(hcd);
|
||||
}
|
||||
}
|
||||
@@ -1279,8 +1289,10 @@ int xhci_resume(struct xhci_hcd *xhci, bool hibernated)
|
||||
/* Re-enable port polling. */
|
||||
xhci_dbg(xhci, "%s: starting usb%d port polling.\n",
|
||||
__func__, hcd->self.busnum);
|
||||
- set_bit(HCD_FLAG_POLL_RH, &xhci->shared_hcd->flags);
|
||||
- usb_hcd_poll_rh_status(xhci->shared_hcd);
|
||||
+ if (xhci->shared_hcd) {
|
||||
+ set_bit(HCD_FLAG_POLL_RH, &xhci->shared_hcd->flags);
|
||||
+ usb_hcd_poll_rh_status(xhci->shared_hcd);
|
||||
+ }
|
||||
set_bit(HCD_FLAG_POLL_RH, &hcd->flags);
|
||||
usb_hcd_poll_rh_status(hcd);
|
||||
|
||||
@@ -5279,9 +5291,7 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
|
||||
|
||||
xhci = hcd_to_xhci(hcd);
|
||||
|
||||
- if (usb_hcd_is_primary_hcd(hcd)) {
|
||||
- xhci_hcd_init_usb2_data(xhci, hcd);
|
||||
- } else {
|
||||
+ if (!usb_hcd_is_primary_hcd(hcd)) {
|
||||
xhci_hcd_init_usb3_data(xhci, hcd);
|
||||
return 0;
|
||||
}
|
||||
@@ -5362,6 +5372,11 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
|
||||
return retval;
|
||||
xhci_dbg(xhci, "Called HCD init\n");
|
||||
|
||||
+ if (xhci_hcd_is_usb3(hcd))
|
||||
+ xhci_hcd_init_usb3_data(xhci, hcd);
|
||||
+ else
|
||||
+ xhci_hcd_init_usb2_data(xhci, hcd);
|
||||
+
|
||||
xhci_info(xhci, "hcc params 0x%08x hci version 0x%x quirks 0x%016llx\n",
|
||||
xhci->hcc_params, xhci->hci_version, xhci->quirks);
|
||||
|
||||
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
|
||||
index 473a33ce299e..c792a3148e49 100644
|
||||
--- a/drivers/usb/host/xhci.h
|
||||
+++ b/drivers/usb/host/xhci.h
|
||||
@@ -1911,6 +1911,8 @@ struct xhci_hcd {
|
||||
unsigned hw_lpm_support:1;
|
||||
/* Broken Suspend flag for SNPS Suspend resume issue */
|
||||
unsigned broken_suspend:1;
|
||||
+ /* Indicates that omitting hcd is supported if root hub has no ports */
|
||||
+ unsigned allow_single_roothub:1;
|
||||
/* cached usb2 extened protocol capabilites */
|
||||
u32 *ext_caps;
|
||||
unsigned int num_ext_caps;
|
||||
@@ -1966,6 +1968,30 @@ static inline struct usb_hcd *xhci_to_hcd(struct xhci_hcd *xhci)
|
||||
return xhci->main_hcd;
|
||||
}
|
||||
|
||||
+static inline struct usb_hcd *xhci_get_usb3_hcd(struct xhci_hcd *xhci)
|
||||
+{
|
||||
+ if (xhci->shared_hcd)
|
||||
+ return xhci->shared_hcd;
|
||||
+
|
||||
+ if (!xhci->usb2_rhub.num_ports)
|
||||
+ return xhci->main_hcd;
|
||||
+
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+static inline bool xhci_hcd_is_usb3(struct usb_hcd *hcd)
|
||||
+{
|
||||
+ struct xhci_hcd *xhci = hcd_to_xhci(hcd);
|
||||
+
|
||||
+ return hcd == xhci_get_usb3_hcd(xhci);
|
||||
+}
|
||||
+
|
||||
+static inline bool xhci_has_one_roothub(struct xhci_hcd *xhci)
|
||||
+{
|
||||
+ return xhci->allow_single_roothub &&
|
||||
+ (!xhci->usb2_rhub.num_ports || !xhci->usb3_rhub.num_ports);
|
||||
+}
|
||||
+
|
||||
#define xhci_dbg(xhci, fmt, args...) \
|
||||
dev_dbg(xhci_to_hcd(xhci)->self.controller , fmt , ## args)
|
||||
#define xhci_err(xhci, fmt, args...) \
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,99 @@
|
||||
From e8676e5d5aa96d002541a5b0863de9a5a3f8163e Mon Sep 17 00:00:00 2001
|
||||
From: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
Date: Mon, 4 Apr 2022 19:00:18 +0000
|
||||
Subject: [PATCH 27/75] FROMLIST(v2): usb: host: xhci-plat: create shared hcd
|
||||
after having added main hcd
|
||||
|
||||
This patch is in preparation of an extension where in case of a
|
||||
root hub with no ports no shared hcd will be created.
|
||||
Whether one of the root hubs has no ports we figure our in
|
||||
usb_add_hcd() for the primary hcd. Therefore create the shared hcd
|
||||
only after this call.
|
||||
|
||||
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
---
|
||||
drivers/usb/host/xhci-plat.c | 29 ++++++++++++++++-------------
|
||||
1 file changed, 16 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
|
||||
index 649ffd861b44..5d752b384de2 100644
|
||||
--- a/drivers/usb/host/xhci-plat.c
|
||||
+++ b/drivers/usb/host/xhci-plat.c
|
||||
@@ -283,12 +283,6 @@ static int xhci_plat_probe(struct platform_device *pdev)
|
||||
device_set_wakeup_capable(&pdev->dev, true);
|
||||
|
||||
xhci->main_hcd = hcd;
|
||||
- xhci->shared_hcd = __usb_create_hcd(driver, sysdev, &pdev->dev,
|
||||
- dev_name(&pdev->dev), hcd);
|
||||
- if (!xhci->shared_hcd) {
|
||||
- ret = -ENOMEM;
|
||||
- goto disable_clk;
|
||||
- }
|
||||
|
||||
/* imod_interval is the interrupt moderation value in nanoseconds. */
|
||||
xhci->imod_interval = 40000;
|
||||
@@ -313,16 +307,16 @@ static int xhci_plat_probe(struct platform_device *pdev)
|
||||
if (IS_ERR(hcd->usb_phy)) {
|
||||
ret = PTR_ERR(hcd->usb_phy);
|
||||
if (ret == -EPROBE_DEFER)
|
||||
- goto put_usb3_hcd;
|
||||
+ goto disable_clk;
|
||||
hcd->usb_phy = NULL;
|
||||
} else {
|
||||
ret = usb_phy_init(hcd->usb_phy);
|
||||
if (ret)
|
||||
- goto put_usb3_hcd;
|
||||
+ goto disable_clk;
|
||||
}
|
||||
|
||||
hcd->tpl_support = of_usb_host_tpl_support(sysdev->of_node);
|
||||
- xhci->shared_hcd->tpl_support = hcd->tpl_support;
|
||||
+
|
||||
if (priv && (priv->quirks & XHCI_SKIP_PHY_INIT))
|
||||
hcd->skip_phy_initialization = 1;
|
||||
|
||||
@@ -333,12 +327,21 @@ static int xhci_plat_probe(struct platform_device *pdev)
|
||||
if (ret)
|
||||
goto disable_usb_phy;
|
||||
|
||||
+ xhci->shared_hcd = __usb_create_hcd(driver, sysdev, &pdev->dev,
|
||||
+ dev_name(&pdev->dev), hcd);
|
||||
+ if (!xhci->shared_hcd) {
|
||||
+ ret = -ENOMEM;
|
||||
+ goto dealloc_usb2_hcd;
|
||||
+ }
|
||||
+
|
||||
+ xhci->shared_hcd->tpl_support = hcd->tpl_support;
|
||||
+
|
||||
if (HCC_MAX_PSA(xhci->hcc_params) >= 4)
|
||||
xhci->shared_hcd->can_do_streams = 1;
|
||||
|
||||
ret = usb_add_hcd(xhci->shared_hcd, irq, IRQF_SHARED);
|
||||
if (ret)
|
||||
- goto dealloc_usb2_hcd;
|
||||
+ goto put_usb3_hcd;
|
||||
|
||||
device_enable_async_suspend(&pdev->dev);
|
||||
pm_runtime_put_noidle(&pdev->dev);
|
||||
@@ -352,15 +355,15 @@ static int xhci_plat_probe(struct platform_device *pdev)
|
||||
return 0;
|
||||
|
||||
|
||||
+put_usb3_hcd:
|
||||
+ usb_put_hcd(xhci->shared_hcd);
|
||||
+
|
||||
dealloc_usb2_hcd:
|
||||
usb_remove_hcd(hcd);
|
||||
|
||||
disable_usb_phy:
|
||||
usb_phy_shutdown(hcd->usb_phy);
|
||||
|
||||
-put_usb3_hcd:
|
||||
- usb_put_hcd(xhci->shared_hcd);
|
||||
-
|
||||
disable_clk:
|
||||
clk_disable_unprepare(xhci->clk);
|
||||
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,66 @@
|
||||
From 3664f1ee62e7ea3c4e953b8ad4e4f2efd20acc2f Mon Sep 17 00:00:00 2001
|
||||
From: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
Date: Mon, 4 Apr 2022 19:01:08 +0000
|
||||
Subject: [PATCH 28/75] FROMLIST(v2): usb: host: xhci-plat: prepare operation
|
||||
w/o shared hcd
|
||||
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
---
|
||||
drivers/usb/host/xhci-plat.c | 31 ++++++++++++++++++-------------
|
||||
1 file changed, 18 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
|
||||
index 5d752b384de2..c512ec2148ae 100644
|
||||
--- a/drivers/usb/host/xhci-plat.c
|
||||
+++ b/drivers/usb/host/xhci-plat.c
|
||||
@@ -180,7 +180,7 @@ static int xhci_plat_probe(struct platform_device *pdev)
|
||||
struct device *sysdev, *tmpdev;
|
||||
struct xhci_hcd *xhci;
|
||||
struct resource *res;
|
||||
- struct usb_hcd *hcd;
|
||||
+ struct usb_hcd *hcd, *usb3_hcd;
|
||||
int ret;
|
||||
int irq;
|
||||
struct xhci_plat_priv *priv = NULL;
|
||||
@@ -327,21 +327,26 @@ static int xhci_plat_probe(struct platform_device *pdev)
|
||||
if (ret)
|
||||
goto disable_usb_phy;
|
||||
|
||||
- xhci->shared_hcd = __usb_create_hcd(driver, sysdev, &pdev->dev,
|
||||
- dev_name(&pdev->dev), hcd);
|
||||
- if (!xhci->shared_hcd) {
|
||||
- ret = -ENOMEM;
|
||||
- goto dealloc_usb2_hcd;
|
||||
- }
|
||||
+ if (!xhci_has_one_roothub(xhci)) {
|
||||
+ xhci->shared_hcd = __usb_create_hcd(driver, sysdev, &pdev->dev,
|
||||
+ dev_name(&pdev->dev), hcd);
|
||||
+ if (!xhci->shared_hcd) {
|
||||
+ ret = -ENOMEM;
|
||||
+ goto dealloc_usb2_hcd;
|
||||
+ }
|
||||
|
||||
- xhci->shared_hcd->tpl_support = hcd->tpl_support;
|
||||
+ xhci->shared_hcd->tpl_support = hcd->tpl_support;
|
||||
+ }
|
||||
|
||||
- if (HCC_MAX_PSA(xhci->hcc_params) >= 4)
|
||||
- xhci->shared_hcd->can_do_streams = 1;
|
||||
+ usb3_hcd = xhci_get_usb3_hcd(xhci);
|
||||
+ if (usb3_hcd && HCC_MAX_PSA(xhci->hcc_params) >= 4)
|
||||
+ usb3_hcd->can_do_streams = 1;
|
||||
|
||||
- ret = usb_add_hcd(xhci->shared_hcd, irq, IRQF_SHARED);
|
||||
- if (ret)
|
||||
- goto put_usb3_hcd;
|
||||
+ if (xhci->shared_hcd) {
|
||||
+ ret = usb_add_hcd(xhci->shared_hcd, irq, IRQF_SHARED);
|
||||
+ if (ret)
|
||||
+ goto put_usb3_hcd;
|
||||
+ }
|
||||
|
||||
device_enable_async_suspend(&pdev->dev);
|
||||
pm_runtime_put_noidle(&pdev->dev);
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,44 +0,0 @@
|
||||
From 16be516cd74d7653bbc323aa263de191487519c4 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
|
||||
Date: Sat, 27 Nov 2021 07:29:18 +0000
|
||||
Subject: [PATCH 29/90] FROMLIST(v1): pwm: meson: Drop always false check from
|
||||
.request()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
In .request() pwm_get_chip_data() returns NULL always since commit
|
||||
e926b12c611c ("pwm: Clear chip_data in pwm_put()"). (And if it didn't
|
||||
returning 0 would be wrong because then .request() wouldn't reenable
|
||||
the clk which the other driver code depends on.)
|
||||
|
||||
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
|
||||
---
|
||||
drivers/pwm/pwm-meson.c | 8 +-------
|
||||
1 file changed, 1 insertion(+), 7 deletions(-)
|
||||
|
||||
diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c
|
||||
index 3cf3bcf5ddfc..be3c806b57e4 100644
|
||||
--- a/drivers/pwm/pwm-meson.c
|
||||
+++ b/drivers/pwm/pwm-meson.c
|
||||
@@ -120,16 +120,10 @@ static inline struct meson_pwm *to_meson_pwm(struct pwm_chip *chip)
|
||||
static int meson_pwm_request(struct pwm_chip *chip, struct pwm_device *pwm)
|
||||
{
|
||||
struct meson_pwm *meson = to_meson_pwm(chip);
|
||||
- struct meson_pwm_channel *channel;
|
||||
+ struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm];
|
||||
struct device *dev = chip->dev;
|
||||
int err;
|
||||
|
||||
- channel = pwm_get_chip_data(pwm);
|
||||
- if (channel)
|
||||
- return 0;
|
||||
-
|
||||
- channel = &meson->channels[pwm->hwpwm];
|
||||
-
|
||||
if (channel->clk_parent) {
|
||||
err = clk_set_parent(channel->clk, channel->clk_parent);
|
||||
if (err < 0) {
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,30 @@
|
||||
From c3a2888344e4954412e69d0fc6599a2b075f0793 Mon Sep 17 00:00:00 2001
|
||||
From: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
Date: Mon, 4 Apr 2022 19:01:52 +0000
|
||||
Subject: [PATCH 29/75] FROMLIST(v2): usb: host: xhci-plat: omit shared hcd if
|
||||
either root hub has no ports
|
||||
|
||||
Activate the just added extension for xhci-plat and omit the shared
|
||||
hcd if either of the root hubs has no ports.
|
||||
|
||||
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
---
|
||||
drivers/usb/host/xhci-plat.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
|
||||
index c512ec2148ae..044855818cb1 100644
|
||||
--- a/drivers/usb/host/xhci-plat.c
|
||||
+++ b/drivers/usb/host/xhci-plat.c
|
||||
@@ -245,6 +245,8 @@ static int xhci_plat_probe(struct platform_device *pdev)
|
||||
|
||||
xhci = hcd_to_xhci(hcd);
|
||||
|
||||
+ xhci->allow_single_roothub = 1;
|
||||
+
|
||||
/*
|
||||
* Not all platforms have clks so it is not an error if the
|
||||
* clock do not exist.
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,35 +0,0 @@
|
||||
From 3abd335c1765a2aa6ecfc504574a27d02fc66d07 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
|
||||
Date: Sat, 27 Nov 2021 07:30:03 +0000
|
||||
Subject: [PATCH 30/90] FROMLIST(v1): pwm: meson: Drop useless check for
|
||||
channel data being NULL
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
In meson_pwm_free() the function pwm_get_chip_data() always returns a
|
||||
non-NULL pointer because it's only called when the request callback
|
||||
succeeded and this callback calls pwm_set_chip_data() in this case.
|
||||
|
||||
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
|
||||
---
|
||||
drivers/pwm/pwm-meson.c | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c
|
||||
index be3c806b57e4..1fbe54a2abfe 100644
|
||||
--- a/drivers/pwm/pwm-meson.c
|
||||
+++ b/drivers/pwm/pwm-meson.c
|
||||
@@ -148,8 +148,7 @@ static void meson_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm)
|
||||
{
|
||||
struct meson_pwm_channel *channel = pwm_get_chip_data(pwm);
|
||||
|
||||
- if (channel)
|
||||
- clk_disable_unprepare(channel->clk);
|
||||
+ clk_disable_unprepare(channel->clk);
|
||||
}
|
||||
|
||||
static int meson_pwm_calc(struct meson_pwm *meson, struct pwm_device *pwm,
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,90 @@
|
||||
From a0ae584a106faa1717fe909918a539da58cfff67 Mon Sep 17 00:00:00 2001
|
||||
From: Lucas Tanure <tanure@linux.com>
|
||||
Date: Sun, 10 Apr 2022 09:48:48 +0000
|
||||
Subject: [PATCH 30/75] FROMLIST(v2): i2c: meson: Use _SHIFT and _MASK for
|
||||
register definitions
|
||||
|
||||
Differentiate between masks and shifts
|
||||
|
||||
Signed-off-by: Lucas Tanure <tanure@linux.com>
|
||||
---
|
||||
drivers/i2c/busses/i2c-meson.c | 41 ++++++++++++++++++----------------
|
||||
1 file changed, 22 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/drivers/i2c/busses/i2c-meson.c b/drivers/i2c/busses/i2c-meson.c
|
||||
index 07eb819072c4..4b4a5b2d77ab 100644
|
||||
--- a/drivers/i2c/busses/i2c-meson.c
|
||||
+++ b/drivers/i2c/busses/i2c-meson.c
|
||||
@@ -30,18 +30,21 @@
|
||||
#define REG_TOK_RDATA1 0x1c
|
||||
|
||||
/* Control register fields */
|
||||
-#define REG_CTRL_START BIT(0)
|
||||
-#define REG_CTRL_ACK_IGNORE BIT(1)
|
||||
-#define REG_CTRL_STATUS BIT(2)
|
||||
-#define REG_CTRL_ERROR BIT(3)
|
||||
-#define REG_CTRL_CLKDIV GENMASK(21, 12)
|
||||
-#define REG_CTRL_CLKDIVEXT GENMASK(29, 28)
|
||||
-
|
||||
-#define REG_SLV_ADDR GENMASK(7, 0)
|
||||
-#define REG_SLV_SDA_FILTER GENMASK(10, 8)
|
||||
-#define REG_SLV_SCL_FILTER GENMASK(13, 11)
|
||||
-#define REG_SLV_SCL_LOW GENMASK(27, 16)
|
||||
-#define REG_SLV_SCL_LOW_EN BIT(28)
|
||||
+#define REG_CTRL_START BIT(0)
|
||||
+#define REG_CTRL_ACK_IGNORE BIT(1)
|
||||
+#define REG_CTRL_STATUS BIT(2)
|
||||
+#define REG_CTRL_ERROR BIT(3)
|
||||
+#define REG_CTRL_CLKDIV_SHIFT 12
|
||||
+#define REG_CTRL_CLKDIV_MASK GENMASK(21, REG_CTRL_CLKDIV_SHIFT)
|
||||
+#define REG_CTRL_CLKDIVEXT_SHIFT 28
|
||||
+#define REG_CTRL_CLKDIVEXT_MASK GENMASK(29, REG_CTRL_CLKDIVEXT_SHIFT)
|
||||
+
|
||||
+#define REG_SLV_ADDR_MASK GENMASK(7, 0)
|
||||
+#define REG_SLV_SDA_FILTER_MASK GENMASK(10, 8)
|
||||
+#define REG_SLV_SCL_FILTER_MASK GENMASK(13, 11)
|
||||
+#define REG_SLV_SCL_LOW_SHIFT 16
|
||||
+#define REG_SLV_SCL_LOW_MASK GENMASK(27, REG_SLV_SCL_LOW_SHIFT)
|
||||
+#define REG_SLV_SCL_LOW_EN BIT(28)
|
||||
|
||||
#define I2C_TIMEOUT_MS 500
|
||||
#define FILTER_DELAY 15
|
||||
@@ -149,11 +152,11 @@ static void meson_i2c_set_clk_div(struct meson_i2c *i2c, unsigned int freq)
|
||||
div = GENMASK(11, 0);
|
||||
}
|
||||
|
||||
- meson_i2c_set_mask(i2c, REG_CTRL, REG_CTRL_CLKDIV,
|
||||
- FIELD_PREP(REG_CTRL_CLKDIV, div & GENMASK(9, 0)));
|
||||
+ meson_i2c_set_mask(i2c, REG_CTRL, REG_CTRL_CLKDIV_MASK,
|
||||
+ FIELD_PREP(REG_CTRL_CLKDIV_MASK, div & GENMASK(9, 0)));
|
||||
|
||||
- meson_i2c_set_mask(i2c, REG_CTRL, REG_CTRL_CLKDIVEXT,
|
||||
- FIELD_PREP(REG_CTRL_CLKDIVEXT, div >> 10));
|
||||
+ meson_i2c_set_mask(i2c, REG_CTRL, REG_CTRL_CLKDIVEXT_MASK,
|
||||
+ FIELD_PREP(REG_CTRL_CLKDIVEXT_MASK, div >> 10));
|
||||
|
||||
/* Disable HIGH/LOW mode */
|
||||
meson_i2c_set_mask(i2c, REG_SLAVE_ADDR, REG_SLV_SCL_LOW_EN, 0);
|
||||
@@ -292,8 +295,8 @@ static void meson_i2c_do_start(struct meson_i2c *i2c, struct i2c_msg *msg)
|
||||
TOKEN_SLAVE_ADDR_WRITE;
|
||||
|
||||
|
||||
- meson_i2c_set_mask(i2c, REG_SLAVE_ADDR, REG_SLV_ADDR,
|
||||
- FIELD_PREP(REG_SLV_ADDR, msg->addr << 1));
|
||||
+ meson_i2c_set_mask(i2c, REG_SLAVE_ADDR, REG_SLV_ADDR_MASK,
|
||||
+ FIELD_PREP(REG_SLV_ADDR_MASK, msg->addr << 1));
|
||||
|
||||
meson_i2c_add_token(i2c, TOKEN_START);
|
||||
meson_i2c_add_token(i2c, token);
|
||||
@@ -467,7 +470,7 @@ static int meson_i2c_probe(struct platform_device *pdev)
|
||||
|
||||
/* Disable filtering */
|
||||
meson_i2c_set_mask(i2c, REG_SLAVE_ADDR,
|
||||
- REG_SLV_SDA_FILTER | REG_SLV_SCL_FILTER, 0);
|
||||
+ REG_SLV_SDA_FILTER_MASK | REG_SLV_SCL_FILTER_MASK, 0);
|
||||
|
||||
meson_i2c_set_clk_div(i2c, timings.bus_freq_hz);
|
||||
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,70 +0,0 @@
|
||||
From af595b31dff2af751a53aae0b83de9569c75b238 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
|
||||
Date: Sat, 27 Nov 2021 07:31:03 +0000
|
||||
Subject: [PATCH 31/90] FROMLIST(v1): pwm: meson: Simplify duplicated
|
||||
per-channel tracking
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The driver tracks per-channel data via struct pwm_device::chip_data and
|
||||
struct meson_pwm::channels[]. The latter holds the actual data, the former
|
||||
is only a pointer to the latter. So simplify by using struct
|
||||
meson_pwm::channels[] consistently.
|
||||
|
||||
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
|
||||
---
|
||||
drivers/pwm/pwm-meson.c | 11 ++++++-----
|
||||
1 file changed, 6 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c
|
||||
index 1fbe54a2abfe..908e314c7c00 100644
|
||||
--- a/drivers/pwm/pwm-meson.c
|
||||
+++ b/drivers/pwm/pwm-meson.c
|
||||
@@ -141,12 +141,13 @@ static int meson_pwm_request(struct pwm_chip *chip, struct pwm_device *pwm)
|
||||
return err;
|
||||
}
|
||||
|
||||
- return pwm_set_chip_data(pwm, channel);
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static void meson_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm)
|
||||
{
|
||||
- struct meson_pwm_channel *channel = pwm_get_chip_data(pwm);
|
||||
+ struct meson_pwm *meson = to_meson_pwm(chip);
|
||||
+ struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm];
|
||||
|
||||
clk_disable_unprepare(channel->clk);
|
||||
}
|
||||
@@ -154,7 +155,7 @@ static void meson_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm)
|
||||
static int meson_pwm_calc(struct meson_pwm *meson, struct pwm_device *pwm,
|
||||
const struct pwm_state *state)
|
||||
{
|
||||
- struct meson_pwm_channel *channel = pwm_get_chip_data(pwm);
|
||||
+ struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm];
|
||||
unsigned int duty, period, pre_div, cnt, duty_cnt;
|
||||
unsigned long fin_freq;
|
||||
|
||||
@@ -217,7 +218,7 @@ static int meson_pwm_calc(struct meson_pwm *meson, struct pwm_device *pwm,
|
||||
|
||||
static void meson_pwm_enable(struct meson_pwm *meson, struct pwm_device *pwm)
|
||||
{
|
||||
- struct meson_pwm_channel *channel = pwm_get_chip_data(pwm);
|
||||
+ struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm];
|
||||
struct meson_pwm_channel_data *channel_data;
|
||||
unsigned long flags;
|
||||
u32 value;
|
||||
@@ -260,8 +261,8 @@ static void meson_pwm_disable(struct meson_pwm *meson, struct pwm_device *pwm)
|
||||
static int meson_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
|
||||
const struct pwm_state *state)
|
||||
{
|
||||
- struct meson_pwm_channel *channel = pwm_get_chip_data(pwm);
|
||||
struct meson_pwm *meson = to_meson_pwm(chip);
|
||||
+ struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm];
|
||||
int err = 0;
|
||||
|
||||
if (!state)
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,143 @@
|
||||
From 23e52264e449d1e7de766c6e4f93aa72f1051e69 Mon Sep 17 00:00:00 2001
|
||||
From: Lucas Tanure <tanure@linux.com>
|
||||
Date: Sun, 10 Apr 2022 09:50:15 +0000
|
||||
Subject: [PATCH 31/75] FROMLIST(v2): i2c: meson: Use 50% duty cycle for I2C
|
||||
clock
|
||||
|
||||
The duty cycle of 33% is less than the required
|
||||
by the I2C specs for the LOW period of the SCL
|
||||
clock.
|
||||
|
||||
Move the duty cyle to 50% for 100Khz or lower
|
||||
clocks, and (40% High SCL / 60% Low SCL) duty
|
||||
cycle for clocks above 100Khz.
|
||||
|
||||
Signed-off-by: Lucas Tanure <tanure@linux.com>
|
||||
---
|
||||
drivers/i2c/busses/i2c-meson.c | 70 +++++++++++++++++++++++++++++-----
|
||||
1 file changed, 60 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/drivers/i2c/busses/i2c-meson.c b/drivers/i2c/busses/i2c-meson.c
|
||||
index 4b4a5b2d77ab..50dab123380a 100644
|
||||
--- a/drivers/i2c/busses/i2c-meson.c
|
||||
+++ b/drivers/i2c/busses/i2c-meson.c
|
||||
@@ -65,10 +65,6 @@ enum {
|
||||
STATE_WRITE,
|
||||
};
|
||||
|
||||
-struct meson_i2c_data {
|
||||
- unsigned char div_factor;
|
||||
-};
|
||||
-
|
||||
/**
|
||||
* struct meson_i2c - Meson I2C device private data
|
||||
*
|
||||
@@ -109,6 +105,10 @@ struct meson_i2c {
|
||||
const struct meson_i2c_data *data;
|
||||
};
|
||||
|
||||
+struct meson_i2c_data {
|
||||
+ void (*set_clk_div)(struct meson_i2c *i2c, unsigned int freq);
|
||||
+};
|
||||
+
|
||||
static void meson_i2c_set_mask(struct meson_i2c *i2c, int reg, u32 mask,
|
||||
u32 val)
|
||||
{
|
||||
@@ -137,14 +137,62 @@ static void meson_i2c_add_token(struct meson_i2c *i2c, int token)
|
||||
i2c->num_tokens++;
|
||||
}
|
||||
|
||||
-static void meson_i2c_set_clk_div(struct meson_i2c *i2c, unsigned int freq)
|
||||
+static void meson_gxbb_axg_i2c_set_clk_div(struct meson_i2c *i2c, unsigned int freq)
|
||||
+{
|
||||
+ unsigned long clk_rate = clk_get_rate(i2c->clk);
|
||||
+ unsigned int div_h, div_l;
|
||||
+
|
||||
+ /* According to I2C-BUS Spec 2.1, in FAST-MODE, the minimum LOW period is 1.3uS, and
|
||||
+ * minimum HIGH is least 0.6us.
|
||||
+ * For 400000 freq, the period is 2.5us. To keep within the specs, give 40% of period to
|
||||
+ * HIGH and 60% to LOW. This means HIGH at 1.0us and LOW 1.5us.
|
||||
+ * The same applies for Fast-mode plus, where LOW is 0.5us and HIGH is 0.26us.
|
||||
+ * Duty = H/(H + L) = 2/5
|
||||
+ */
|
||||
+ if (freq <= I2C_MAX_STANDARD_MODE_FREQ) {
|
||||
+ div_h = DIV_ROUND_UP(clk_rate, freq);
|
||||
+ div_l = DIV_ROUND_UP(div_h, 4);
|
||||
+ div_h = DIV_ROUND_UP(div_h, 2) - FILTER_DELAY;
|
||||
+ } else {
|
||||
+ div_h = DIV_ROUND_UP(clk_rate * 2, freq * 5) - FILTER_DELAY;
|
||||
+ div_l = DIV_ROUND_UP(clk_rate * 3, freq * 5 * 2);
|
||||
+ }
|
||||
+
|
||||
+ /* clock divider has 12 bits */
|
||||
+ if (div_h > GENMASK(11, 0)) {
|
||||
+ dev_err(i2c->dev, "requested bus frequency too low\n");
|
||||
+ div_h = GENMASK(11, 0);
|
||||
+ }
|
||||
+ if (div_l > GENMASK(11, 0)) {
|
||||
+ dev_err(i2c->dev, "requested bus frequency too low\n");
|
||||
+ div_l = GENMASK(11, 0);
|
||||
+ }
|
||||
+
|
||||
+ meson_i2c_set_mask(i2c, REG_CTRL, REG_CTRL_CLKDIV_MASK,
|
||||
+ FIELD_PREP(REG_CTRL_CLKDIV_MASK, div_h & GENMASK(9, 0)));
|
||||
+
|
||||
+ meson_i2c_set_mask(i2c, REG_CTRL, REG_CTRL_CLKDIVEXT_MASK,
|
||||
+ FIELD_PREP(REG_CTRL_CLKDIVEXT_MASK, div_h >> 10));
|
||||
+
|
||||
+ /* set SCL low delay */
|
||||
+ meson_i2c_set_mask(i2c, REG_SLAVE_ADDR, REG_SLV_SCL_LOW_MASK,
|
||||
+ FIELD_PREP(REG_SLV_SCL_LOW_MASK, div_l));
|
||||
+
|
||||
+ /* Enable HIGH/LOW mode */
|
||||
+ meson_i2c_set_mask(i2c, REG_SLAVE_ADDR, REG_SLV_SCL_LOW_EN, REG_SLV_SCL_LOW_EN);
|
||||
+
|
||||
+ dev_dbg(i2c->dev, "%s: clk %lu, freq %u, divh %u, divl %u\n", __func__,
|
||||
+ clk_rate, freq, div_h, div_l);
|
||||
+}
|
||||
+
|
||||
+static void meson6_i2c_set_clk_div(struct meson_i2c *i2c, unsigned int freq)
|
||||
{
|
||||
unsigned long clk_rate = clk_get_rate(i2c->clk);
|
||||
unsigned int div;
|
||||
|
||||
div = DIV_ROUND_UP(clk_rate, freq);
|
||||
div -= FILTER_DELAY;
|
||||
- div = DIV_ROUND_UP(div, i2c->data->div_factor);
|
||||
+ div = DIV_ROUND_UP(div, 4);
|
||||
|
||||
/* clock divider has 12 bits */
|
||||
if (div > GENMASK(11, 0)) {
|
||||
@@ -472,7 +520,9 @@ static int meson_i2c_probe(struct platform_device *pdev)
|
||||
meson_i2c_set_mask(i2c, REG_SLAVE_ADDR,
|
||||
REG_SLV_SDA_FILTER_MASK | REG_SLV_SCL_FILTER_MASK, 0);
|
||||
|
||||
- meson_i2c_set_clk_div(i2c, timings.bus_freq_hz);
|
||||
+ if (!i2c->data->set_clk_div)
|
||||
+ return -EINVAL;
|
||||
+ i2c->data->set_clk_div(i2c, timings.bus_freq_hz);
|
||||
|
||||
ret = i2c_add_adapter(&i2c->adap);
|
||||
if (ret < 0) {
|
||||
@@ -494,15 +544,15 @@ static int meson_i2c_remove(struct platform_device *pdev)
|
||||
}
|
||||
|
||||
static const struct meson_i2c_data i2c_meson6_data = {
|
||||
- .div_factor = 4,
|
||||
+ .set_clk_div = meson6_i2c_set_clk_div,
|
||||
};
|
||||
|
||||
static const struct meson_i2c_data i2c_gxbb_data = {
|
||||
- .div_factor = 4,
|
||||
+ .set_clk_div = meson_gxbb_axg_i2c_set_clk_div,
|
||||
};
|
||||
|
||||
static const struct meson_i2c_data i2c_axg_data = {
|
||||
- .div_factor = 3,
|
||||
+ .set_clk_div = meson_gxbb_axg_i2c_set_clk_div,
|
||||
};
|
||||
|
||||
static const struct of_device_id meson_i2c_match[] = {
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,73 @@
|
||||
From 28c487d0757b872d9dbeba4a2064de0c3d6da3bf Mon Sep 17 00:00:00 2001
|
||||
From: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
Date: Sun, 17 Apr 2022 05:34:29 +0000
|
||||
Subject: [PATCH 32/75] FROMLIST(v1): mmc: meson-gx: switch to device-managed
|
||||
dmam_alloc_coherent()
|
||||
|
||||
Using the device-managed version allows to simplify clean-up in probe()
|
||||
error path and remove().
|
||||
|
||||
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
---
|
||||
drivers/mmc/host/meson-gx-mmc.c | 21 +++++----------------
|
||||
1 file changed, 5 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c
|
||||
index 1a11a4bf4d4f..f2ff19ff8e9d 100644
|
||||
--- a/drivers/mmc/host/meson-gx-mmc.c
|
||||
+++ b/drivers/mmc/host/meson-gx-mmc.c
|
||||
@@ -1271,8 +1271,8 @@ static int meson_mmc_probe(struct platform_device *pdev)
|
||||
/* data bounce buffer */
|
||||
host->bounce_buf_size = mmc->max_req_size;
|
||||
host->bounce_buf =
|
||||
- dma_alloc_coherent(host->dev, host->bounce_buf_size,
|
||||
- &host->bounce_dma_addr, GFP_KERNEL);
|
||||
+ dmam_alloc_coherent(host->dev, host->bounce_buf_size,
|
||||
+ &host->bounce_dma_addr, GFP_KERNEL);
|
||||
if (host->bounce_buf == NULL) {
|
||||
dev_err(host->dev, "Unable to map allocate DMA bounce buffer.\n");
|
||||
ret = -ENOMEM;
|
||||
@@ -1280,12 +1280,12 @@ static int meson_mmc_probe(struct platform_device *pdev)
|
||||
}
|
||||
}
|
||||
|
||||
- host->descs = dma_alloc_coherent(host->dev, SD_EMMC_DESC_BUF_LEN,
|
||||
- &host->descs_dma_addr, GFP_KERNEL);
|
||||
+ host->descs = dmam_alloc_coherent(host->dev, SD_EMMC_DESC_BUF_LEN,
|
||||
+ &host->descs_dma_addr, GFP_KERNEL);
|
||||
if (!host->descs) {
|
||||
dev_err(host->dev, "Allocating descriptor DMA buffer failed\n");
|
||||
ret = -ENOMEM;
|
||||
- goto err_bounce_buf;
|
||||
+ goto err_free_irq;
|
||||
}
|
||||
|
||||
mmc->ops = &meson_mmc_ops;
|
||||
@@ -1293,10 +1293,6 @@ static int meson_mmc_probe(struct platform_device *pdev)
|
||||
|
||||
return 0;
|
||||
|
||||
-err_bounce_buf:
|
||||
- if (!host->dram_access_quirk)
|
||||
- dma_free_coherent(host->dev, host->bounce_buf_size,
|
||||
- host->bounce_buf, host->bounce_dma_addr);
|
||||
err_free_irq:
|
||||
free_irq(host->irq, host);
|
||||
err_init_clk:
|
||||
@@ -1318,13 +1314,6 @@ static int meson_mmc_remove(struct platform_device *pdev)
|
||||
writel(0, host->regs + SD_EMMC_IRQ_EN);
|
||||
free_irq(host->irq, host);
|
||||
|
||||
- dma_free_coherent(host->dev, SD_EMMC_DESC_BUF_LEN,
|
||||
- host->descs, host->descs_dma_addr);
|
||||
-
|
||||
- if (!host->dram_access_quirk)
|
||||
- dma_free_coherent(host->dev, host->bounce_buf_size,
|
||||
- host->bounce_buf, host->bounce_dma_addr);
|
||||
-
|
||||
clk_disable_unprepare(host->mmc_clk);
|
||||
clk_disable_unprepare(host->core_clk);
|
||||
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,34 +0,0 @@
|
||||
From 5d2b0c8f838a3a7dbf761e5b7fb1fb08f4df5160 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
|
||||
Date: Sat, 27 Nov 2021 07:32:18 +0000
|
||||
Subject: [PATCH 32/90] FROMLIST(v1): pwm: meson: Drop always false check from
|
||||
.apply()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The pwm core only calls the apply callback with a valid state pointer,
|
||||
so don't repeat this check already done in the core.
|
||||
|
||||
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
|
||||
---
|
||||
drivers/pwm/pwm-meson.c | 3 ---
|
||||
1 file changed, 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c
|
||||
index 908e314c7c00..57112f438c6d 100644
|
||||
--- a/drivers/pwm/pwm-meson.c
|
||||
+++ b/drivers/pwm/pwm-meson.c
|
||||
@@ -265,9 +265,6 @@ static int meson_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
|
||||
struct meson_pwm_channel *channel = &meson->channels[pwm->hwpwm];
|
||||
int err = 0;
|
||||
|
||||
- if (!state)
|
||||
- return -EINVAL;
|
||||
-
|
||||
if (!state->enabled) {
|
||||
if (state->polarity == PWM_POLARITY_INVERSED) {
|
||||
/*
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,90 @@
|
||||
From 462a86b58839bfed1488889f4162d917329f537a Mon Sep 17 00:00:00 2001
|
||||
From: John Ogness <john.ogness@linutronix.de>
|
||||
Date: Mon, 9 May 2022 09:33:17 +0000
|
||||
Subject: [PATCH 33/75] FROMLIST(v1): serial: meson: acquire port->lock in
|
||||
startup()
|
||||
|
||||
The uart_ops startup() callback is called without interrupts
|
||||
disabled and without port->lock locked, relatively late during the
|
||||
boot process (from the call path of console_on_rootfs()). If the
|
||||
device is a console, it was already previously registered and could
|
||||
be actively printing messages.
|
||||
|
||||
Since the startup() callback is reading/writing registers used by
|
||||
the console write() callback (AML_UART_CONTROL), its access must
|
||||
be synchronized using the port->lock. Currently it is not.
|
||||
|
||||
The startup() callback is the only function that explicitly enables
|
||||
interrupts. Without the synchronization, it is possible that
|
||||
interrupts become accidentally permanently disabled.
|
||||
|
||||
CPU0 CPU1
|
||||
meson_serial_console_write meson_uart_startup
|
||||
-------------------------- ------------------
|
||||
spin_lock(port->lock)
|
||||
val = readl(AML_UART_CONTROL)
|
||||
uart_console_write()
|
||||
writel(INT_EN, AML_UART_CONTROL)
|
||||
writel(val, AML_UART_CONTROL)
|
||||
spin_unlock(port->lock)
|
||||
|
||||
Add port->lock synchronization to meson_uart_startup() to avoid
|
||||
racing with meson_serial_console_write().
|
||||
|
||||
Also add detailed comments to meson_uart_reset() explaining why it
|
||||
is *not* using port->lock synchronization.
|
||||
|
||||
Fixes: ff7693d079e5 ("ARM: meson: serial: add MesonX SoC on-chip uart driver")
|
||||
Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
|
||||
Signed-off-by: John Ogness <john.ogness@linutronix.de>
|
||||
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
|
||||
Reviewed-by: Jiri Slaby <jirislaby@kernel.org>
|
||||
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
|
||||
---
|
||||
drivers/tty/serial/meson_uart.c | 13 +++++++++++++
|
||||
1 file changed, 13 insertions(+)
|
||||
|
||||
diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c
|
||||
index 2bf1c57e0981..39021dac09cc 100644
|
||||
--- a/drivers/tty/serial/meson_uart.c
|
||||
+++ b/drivers/tty/serial/meson_uart.c
|
||||
@@ -253,6 +253,14 @@ static const char *meson_uart_type(struct uart_port *port)
|
||||
return (port->type == PORT_MESON) ? "meson_uart" : NULL;
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * This function is called only from probe() using a temporary io mapping
|
||||
+ * in order to perform a reset before setting up the device. Since the
|
||||
+ * temporarily mapped region was successfully requested, there can be no
|
||||
+ * console on this port at this time. Hence it is not necessary for this
|
||||
+ * function to acquire the port->lock. (Since there is no console on this
|
||||
+ * port at this time, the port->lock is not initialized yet.)
|
||||
+ */
|
||||
static void meson_uart_reset(struct uart_port *port)
|
||||
{
|
||||
u32 val;
|
||||
@@ -267,9 +275,12 @@ static void meson_uart_reset(struct uart_port *port)
|
||||
|
||||
static int meson_uart_startup(struct uart_port *port)
|
||||
{
|
||||
+ unsigned long flags;
|
||||
u32 val;
|
||||
int ret = 0;
|
||||
|
||||
+ spin_lock_irqsave(&port->lock, flags);
|
||||
+
|
||||
val = readl(port->membase + AML_UART_CONTROL);
|
||||
val |= AML_UART_CLEAR_ERR;
|
||||
writel(val, port->membase + AML_UART_CONTROL);
|
||||
@@ -285,6 +296,8 @@ static int meson_uart_startup(struct uart_port *port)
|
||||
val = (AML_UART_RECV_IRQ(1) | AML_UART_XMIT_IRQ(port->fifosize / 2));
|
||||
writel(val, port->membase + AML_UART_MISC);
|
||||
|
||||
+ spin_unlock_irqrestore(&port->lock, flags);
|
||||
+
|
||||
ret = request_irq(port->irq, meson_uart_interrupt, 0,
|
||||
port->name, port);
|
||||
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,36 +0,0 @@
|
||||
From 44db0a603f48f39f5bb38ffd1b173d7c7036357b Mon Sep 17 00:00:00 2001
|
||||
From: Amjad Ouled-Ameur <aouledameur@baylibre.com>
|
||||
Date: Mon, 6 Dec 2021 04:25:36 +0000
|
||||
Subject: [PATCH 33/90] FROMLIST(v4): phy: amlogic: phy-meson-gxl-usb2: fix
|
||||
shared reset controller use
|
||||
|
||||
Use reset_control_rearm() call if an error occurs in case
|
||||
phy_meson_gxl_usb2_init() fails after reset() has been called ; or in case
|
||||
phy_meson_gxl_usb2_exit() is called i.e the resource is no longer used
|
||||
and the reset line may be triggered again by other devices.
|
||||
|
||||
reset_control_rearm() keeps use of triggered_count sane in the reset
|
||||
framework. Therefore, use of reset_control_reset() on shared reset line
|
||||
should be balanced with reset_control_rearm().
|
||||
|
||||
Signed-off-by: Amjad Ouled-Ameur <aouledameur@baylibre.com>
|
||||
Reported-by: Jerome Brunet <jbrunet@baylibre.com>
|
||||
---
|
||||
drivers/phy/amlogic/phy-meson-gxl-usb2.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/phy/amlogic/phy-meson-gxl-usb2.c b/drivers/phy/amlogic/phy-meson-gxl-usb2.c
|
||||
index 2b3c0d730f20..d2f56075dc57 100644
|
||||
--- a/drivers/phy/amlogic/phy-meson-gxl-usb2.c
|
||||
+++ b/drivers/phy/amlogic/phy-meson-gxl-usb2.c
|
||||
@@ -125,6 +125,7 @@ static int phy_meson_gxl_usb2_exit(struct phy *phy)
|
||||
struct phy_meson_gxl_usb2_priv *priv = phy_get_drvdata(phy);
|
||||
|
||||
clk_disable_unprepare(priv->clk);
|
||||
+ reset_control_rearm(priv->reset);
|
||||
|
||||
return 0;
|
||||
}
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,53 @@
|
||||
From db6c49de494561d79bc0e75d30812e3e72769b2a Mon Sep 17 00:00:00 2001
|
||||
From: Dongjin Kim <tobetter@gmail.com>
|
||||
Date: Mon, 16 May 2022 05:46:15 +0000
|
||||
Subject: [PATCH 34/75] FROMLIST(v1): drm/meson: add YUV422 output support
|
||||
|
||||
Support YUV422 output from the Amlogic Meson SoC VPU to the HDMI
|
||||
controller. Without this YUV422 format out of the HDMI encoder
|
||||
leads to using the dw-hdmi YUV444 to YUV422 color conversion which
|
||||
gives wrong colors and a green line on the left edge of the screen.
|
||||
|
||||
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Tested-by: Furkan Kardame <f.kardame@manjaro.org>
|
||||
---
|
||||
drivers/gpu/drm/meson/meson_encoder_hdmi.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/meson/meson_encoder_hdmi.c b/drivers/gpu/drm/meson/meson_encoder_hdmi.c
|
||||
index 5e306de6f485..08529efb4405 100644
|
||||
--- a/drivers/gpu/drm/meson/meson_encoder_hdmi.c
|
||||
+++ b/drivers/gpu/drm/meson/meson_encoder_hdmi.c
|
||||
@@ -218,7 +218,8 @@ static void meson_encoder_hdmi_atomic_enable(struct drm_bridge *bridge,
|
||||
if (encoder_hdmi->output_bus_fmt == MEDIA_BUS_FMT_UYYVYY8_0_5X24) {
|
||||
ycrcb_map = VPU_HDMI_OUTPUT_CRYCB;
|
||||
yuv420_mode = true;
|
||||
- }
|
||||
+ } else if (encoder_hdmi->output_bus_fmt == MEDIA_BUS_FMT_UYVY8_1X16)
|
||||
+ ycrcb_map = VPU_HDMI_OUTPUT_CRYCB;
|
||||
|
||||
/* VENC + VENC-DVI Mode setup */
|
||||
meson_venc_hdmi_mode_set(priv, vic, ycrcb_map, yuv420_mode, mode);
|
||||
@@ -230,6 +231,10 @@ static void meson_encoder_hdmi_atomic_enable(struct drm_bridge *bridge,
|
||||
/* Setup YUV420 to HDMI-TX, no 10bit diphering */
|
||||
writel_relaxed(2 | (2 << 2),
|
||||
priv->io_base + _REG(VPU_HDMI_FMT_CTRL));
|
||||
+ else if (encoder_hdmi->output_bus_fmt == MEDIA_BUS_FMT_UYVY8_1X16)
|
||||
+ /* Setup YUV422 to HDMI-TX, no 10bit diphering */
|
||||
+ writel_relaxed(1 | (2 << 2),
|
||||
+ priv->io_base + _REG(VPU_HDMI_FMT_CTRL));
|
||||
else
|
||||
/* Setup YUV444 to HDMI-TX, no 10bit diphering */
|
||||
writel_relaxed(0, priv->io_base + _REG(VPU_HDMI_FMT_CTRL));
|
||||
@@ -257,6 +262,7 @@ static void meson_encoder_hdmi_atomic_disable(struct drm_bridge *bridge,
|
||||
|
||||
static const u32 meson_encoder_hdmi_out_bus_fmts[] = {
|
||||
MEDIA_BUS_FMT_YUV8_1X24,
|
||||
+ MEDIA_BUS_FMT_UYVY8_1X16,
|
||||
MEDIA_BUS_FMT_UYYVYY8_0_5X24,
|
||||
};
|
||||
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,34 +0,0 @@
|
||||
From 2639df70052725a687b1bd5c2db17af72a02cf12 Mon Sep 17 00:00:00 2001
|
||||
From: Amjad Ouled-Ameur <aouledameur@baylibre.com>
|
||||
Date: Mon, 6 Dec 2021 04:26:22 +0000
|
||||
Subject: [PATCH 34/90] FROMLIST(v4): phy: amlogic: meson8b-usb2: Use
|
||||
dev_err_probe()
|
||||
|
||||
Use the existing dev_err_probe() helper instead of open-coding the same
|
||||
operation.
|
||||
|
||||
Signed-off-by: Amjad Ouled-Ameur <aouledameur@baylibre.com>
|
||||
Reported-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
|
||||
---
|
||||
drivers/phy/amlogic/phy-meson8b-usb2.c | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/phy/amlogic/phy-meson8b-usb2.c b/drivers/phy/amlogic/phy-meson8b-usb2.c
|
||||
index cf10bed40528..77e7e9b1428c 100644
|
||||
--- a/drivers/phy/amlogic/phy-meson8b-usb2.c
|
||||
+++ b/drivers/phy/amlogic/phy-meson8b-usb2.c
|
||||
@@ -265,8 +265,9 @@ static int phy_meson8b_usb2_probe(struct platform_device *pdev)
|
||||
return PTR_ERR(priv->clk_usb);
|
||||
|
||||
priv->reset = devm_reset_control_get_optional_shared(&pdev->dev, NULL);
|
||||
- if (PTR_ERR(priv->reset) == -EPROBE_DEFER)
|
||||
- return PTR_ERR(priv->reset);
|
||||
+ if (IS_ERR(priv->reset))
|
||||
+ return dev_err_probe(&pdev->dev, PTR_ERR(priv->reset),
|
||||
+ "Failed to get the reset line");
|
||||
|
||||
priv->dr_mode = of_usb_get_dr_mode_by_phy(pdev->dev.of_node, -1);
|
||||
if (priv->dr_mode == USB_DR_MODE_UNKNOWN) {
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,61 @@
|
||||
From 87c03be41fc904f550495d690fee72436a2fdf0a Mon Sep 17 00:00:00 2001
|
||||
From: Furkan Kardame <f.kardame@manjaro.org>
|
||||
Date: Sat, 14 May 2022 17:46:36 +0300
|
||||
Subject: [PATCH 35/75] FROMLIST(v2): arm64: dts: meson: add gpio-fan control
|
||||
to GS-King-X
|
||||
|
||||
GS-King-X has a single speed GPIO fan which is always-on by default. If
|
||||
we add controls for the fan and a trip point, the fan stays off most of
|
||||
the time, reducing background noise from the unit.
|
||||
|
||||
Signed-off-by: Furkan Kardame <f.kardame@manjaro.org>
|
||||
---
|
||||
.../boot/dts/amlogic/meson-g12b-gsking-x.dts | 25 +++++++++++++++++++
|
||||
1 file changed, 25 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-gsking-x.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-gsking-x.dts
|
||||
index 6c7bfacbad78..462382b8c54f 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-gsking-x.dts
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-gsking-x.dts
|
||||
@@ -20,6 +20,14 @@
|
||||
rtc1 = &vrtc;
|
||||
};
|
||||
|
||||
+ gpio_fan: gpio-fan {
|
||||
+ compatible = "gpio-fan";
|
||||
+ gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
|
||||
+ /* Using Dummy Speed */
|
||||
+ gpio-fan,speed-map = <0 0 1 1>;
|
||||
+ #cooling-cells = <2>;
|
||||
+ };
|
||||
+
|
||||
gpio-keys-polled {
|
||||
compatible = "gpio-keys-polled";
|
||||
#address-cells = <1>;
|
||||
@@ -96,6 +104,23 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&cpu_thermal {
|
||||
+ trips {
|
||||
+ cpu_active: cpu-active {
|
||||
+ temperature = <60000>; /* millicelsius */
|
||||
+ hysteresis = <2000>; /* millicelsius */
|
||||
+ type = "active";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ cooling-maps {
|
||||
+ map {
|
||||
+ trip = <&cpu_active>;
|
||||
+ cooling-device = <&gpio_fan 1 THERMAL_NO_LIMIT>;
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&frddr_a {
|
||||
status = "okay";
|
||||
};
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,60 +0,0 @@
|
||||
From eef11c571c63f09b64850e1c6994388822a869eb Mon Sep 17 00:00:00 2001
|
||||
From: Amjad Ouled-Ameur <aouledameur@baylibre.com>
|
||||
Date: Mon, 6 Dec 2021 04:27:13 +0000
|
||||
Subject: [PATCH 35/90] FROMLIST(v4): phy: amlogic: meson8b-usb2: fix shared
|
||||
reset control use
|
||||
|
||||
Use reset_control_rearm() call if an error occurs in case
|
||||
phy_meson8b_usb2_power_on() fails after reset() has been called, or in
|
||||
case phy_meson8b_usb2_power_off() is called i.e the resource is no longer
|
||||
used and the reset line may be triggered again by other devices.
|
||||
|
||||
reset_control_rearm() keeps use of triggered_count sane in the reset
|
||||
framework, use of reset_control_reset() on shared reset line should
|
||||
be balanced with reset_control_rearm().
|
||||
|
||||
Signed-off-by: Amjad Ouled-Ameur <aouledameur@baylibre.com>
|
||||
Reported-by: Jerome Brunet <jbrunet@baylibre.com>
|
||||
---
|
||||
drivers/phy/amlogic/phy-meson8b-usb2.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/drivers/phy/amlogic/phy-meson8b-usb2.c b/drivers/phy/amlogic/phy-meson8b-usb2.c
|
||||
index 77e7e9b1428c..dd96763911b8 100644
|
||||
--- a/drivers/phy/amlogic/phy-meson8b-usb2.c
|
||||
+++ b/drivers/phy/amlogic/phy-meson8b-usb2.c
|
||||
@@ -154,6 +154,7 @@ static int phy_meson8b_usb2_power_on(struct phy *phy)
|
||||
ret = clk_prepare_enable(priv->clk_usb_general);
|
||||
if (ret) {
|
||||
dev_err(&phy->dev, "Failed to enable USB general clock\n");
|
||||
+ reset_control_rearm(priv->reset);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -161,6 +162,7 @@ static int phy_meson8b_usb2_power_on(struct phy *phy)
|
||||
if (ret) {
|
||||
dev_err(&phy->dev, "Failed to enable USB DDR clock\n");
|
||||
clk_disable_unprepare(priv->clk_usb_general);
|
||||
+ reset_control_rearm(priv->reset);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -199,6 +201,7 @@ static int phy_meson8b_usb2_power_on(struct phy *phy)
|
||||
dev_warn(&phy->dev, "USB ID detect failed!\n");
|
||||
clk_disable_unprepare(priv->clk_usb);
|
||||
clk_disable_unprepare(priv->clk_usb_general);
|
||||
+ reset_control_rearm(priv->reset);
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
@@ -218,6 +221,7 @@ static int phy_meson8b_usb2_power_off(struct phy *phy)
|
||||
|
||||
clk_disable_unprepare(priv->clk_usb);
|
||||
clk_disable_unprepare(priv->clk_usb_general);
|
||||
+ reset_control_rearm(priv->reset);
|
||||
|
||||
/* power off the PHY by putting it into reset mode */
|
||||
regmap_update_bits(priv->regmap, REG_CTRL, REG_CTRL_POWER_ON_RESET,
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,127 +0,0 @@
|
||||
From c2a9afdc271f1dc8e145de930972d4e2a6d04b31 Mon Sep 17 00:00:00 2001
|
||||
From: Chen-Yu Tsai <wenst@chromium.org>
|
||||
Date: Wed, 15 Dec 2021 03:51:07 +0000
|
||||
Subject: [PATCH 36/90] FROMLIST(v2): media: v4l2-mem2mem: Apply
|
||||
DST_QUEUE_OFF_BASE on MMAP buffers across ioctls
|
||||
|
||||
DST_QUEUE_OFF_BASE is applied to offset/mem_offset on MMAP capture buffers
|
||||
only for the VIDIOC_QUERYBUF ioctl, while the userspace fields (including
|
||||
offset/mem_offset) are filled in for VIDIOC_{QUERY,PREPARE,Q,DQ}BUF
|
||||
ioctls. This leads to differences in the values presented to userspace.
|
||||
If userspace attempts to mmap the capture buffer directly using values
|
||||
from DQBUF, it will fail.
|
||||
|
||||
Move the code that applies the magic offset into a helper, and call
|
||||
that helper from all four ioctl entry points.
|
||||
|
||||
Fixes: 7f98639def42 ("V4L/DVB: add memory-to-memory device helper framework for videobuf")
|
||||
Fixes: 908a0d7c588e ("[media] v4l: mem2mem: port to videobuf2")
|
||||
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
|
||||
---
|
||||
drivers/media/v4l2-core/v4l2-mem2mem.c | 53 ++++++++++++++++++++------
|
||||
1 file changed, 41 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-core/v4l2-mem2mem.c
|
||||
index e2654b422334..3bac9e373502 100644
|
||||
--- a/drivers/media/v4l2-core/v4l2-mem2mem.c
|
||||
+++ b/drivers/media/v4l2-core/v4l2-mem2mem.c
|
||||
@@ -585,19 +585,14 @@ int v4l2_m2m_reqbufs(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(v4l2_m2m_reqbufs);
|
||||
|
||||
-int v4l2_m2m_querybuf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
|
||||
- struct v4l2_buffer *buf)
|
||||
+static void v4l2_m2m_adjust_mem_offset(struct vb2_queue *vq,
|
||||
+ struct v4l2_buffer *buf)
|
||||
{
|
||||
- struct vb2_queue *vq;
|
||||
- int ret = 0;
|
||||
- unsigned int i;
|
||||
-
|
||||
- vq = v4l2_m2m_get_vq(m2m_ctx, buf->type);
|
||||
- ret = vb2_querybuf(vq, buf);
|
||||
-
|
||||
/* Adjust MMAP memory offsets for the CAPTURE queue */
|
||||
if (buf->memory == V4L2_MEMORY_MMAP && V4L2_TYPE_IS_CAPTURE(vq->type)) {
|
||||
if (V4L2_TYPE_IS_MULTIPLANAR(vq->type)) {
|
||||
+ unsigned int i;
|
||||
+
|
||||
for (i = 0; i < buf->length; ++i)
|
||||
buf->m.planes[i].m.mem_offset
|
||||
+= DST_QUEUE_OFF_BASE;
|
||||
@@ -605,8 +600,23 @@ int v4l2_m2m_querybuf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
|
||||
buf->m.offset += DST_QUEUE_OFF_BASE;
|
||||
}
|
||||
}
|
||||
+}
|
||||
|
||||
- return ret;
|
||||
+int v4l2_m2m_querybuf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
|
||||
+ struct v4l2_buffer *buf)
|
||||
+{
|
||||
+ struct vb2_queue *vq;
|
||||
+ int ret = 0;
|
||||
+
|
||||
+ vq = v4l2_m2m_get_vq(m2m_ctx, buf->type);
|
||||
+ ret = vb2_querybuf(vq, buf);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ /* Adjust MMAP memory offsets for the CAPTURE queue */
|
||||
+ v4l2_m2m_adjust_mem_offset(vq, buf);
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(v4l2_m2m_querybuf);
|
||||
|
||||
@@ -763,6 +773,9 @@ int v4l2_m2m_qbuf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
+ /* Adjust MMAP memory offsets for the CAPTURE queue */
|
||||
+ v4l2_m2m_adjust_mem_offset(vq, buf);
|
||||
+
|
||||
/*
|
||||
* If the capture queue is streaming, but streaming hasn't started
|
||||
* on the device, but was asked to stop, mark the previously queued
|
||||
@@ -784,9 +797,17 @@ int v4l2_m2m_dqbuf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
|
||||
struct v4l2_buffer *buf)
|
||||
{
|
||||
struct vb2_queue *vq;
|
||||
+ int ret;
|
||||
|
||||
vq = v4l2_m2m_get_vq(m2m_ctx, buf->type);
|
||||
- return vb2_dqbuf(vq, buf, file->f_flags & O_NONBLOCK);
|
||||
+ ret = vb2_dqbuf(vq, buf, file->f_flags & O_NONBLOCK);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ /* Adjust MMAP memory offsets for the CAPTURE queue */
|
||||
+ v4l2_m2m_adjust_mem_offset(vq, buf);
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(v4l2_m2m_dqbuf);
|
||||
|
||||
@@ -795,9 +816,17 @@ int v4l2_m2m_prepare_buf(struct file *file, struct v4l2_m2m_ctx *m2m_ctx,
|
||||
{
|
||||
struct video_device *vdev = video_devdata(file);
|
||||
struct vb2_queue *vq;
|
||||
+ int ret;
|
||||
|
||||
vq = v4l2_m2m_get_vq(m2m_ctx, buf->type);
|
||||
- return vb2_prepare_buf(vq, vdev->v4l2_dev->mdev, buf);
|
||||
+ ret = vb2_prepare_buf(vq, vdev->v4l2_dev->mdev, buf);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ /* Adjust MMAP memory offsets for the CAPTURE queue */
|
||||
+ v4l2_m2m_adjust_mem_offset(vq, buf);
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(v4l2_m2m_prepare_buf);
|
||||
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From dd29d3d05631c4afdab56fb696424565a4afefba Mon Sep 17 00:00:00 2001
|
||||
From b540e025c5ee02690acc402ea6a13db5a9d96568 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Karlman <jonas@kwiboo.se>
|
||||
Date: Sun, 23 Dec 2018 02:24:38 +0100
|
||||
Subject: [PATCH 53/90] WIP: ASoC: hdmi-codec: reorder channel allocation list
|
||||
Subject: [PATCH 36/75] WIP: ASoC: hdmi-codec: reorder channel allocation list
|
||||
|
||||
Wrong channel allocation is selected by hdmi_codec_get_ch_alloc_table_idx().
|
||||
|
||||
@ -24,7 +24,7 @@ Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
|
||||
1 file changed, 77 insertions(+), 63 deletions(-)
|
||||
|
||||
diff --git a/sound/soc/codecs/hdmi-codec.c b/sound/soc/codecs/hdmi-codec.c
|
||||
index b07607a9ecea..a12015471ea2 100644
|
||||
index bcb018ea690b..6d6acd932615 100644
|
||||
--- a/sound/soc/codecs/hdmi-codec.c
|
||||
+++ b/sound/soc/codecs/hdmi-codec.c
|
||||
@@ -188,84 +188,97 @@ static const struct snd_pcm_chmap_elem hdmi_codec_8ch_chmaps[] = {
|
@ -1,54 +0,0 @@
|
||||
From 185e327de6600377e45b601ec62082a6db7e3109 Mon Sep 17 00:00:00 2001
|
||||
From: Gary Bisson <gary.bisson@boundarydevices.com>
|
||||
Date: Mon, 3 Jan 2022 16:49:28 +0000
|
||||
Subject: [PATCH 37/90] FROMLIST(v1): pinctrl: meson-g12a: add more pwm_f
|
||||
options
|
||||
|
||||
Add missing PWM_F pin muxing for GPIOA_11 and GPIOZ_12.
|
||||
|
||||
Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
|
||||
---
|
||||
drivers/pinctrl/meson/pinctrl-meson-g12a.c | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/pinctrl/meson/pinctrl-meson-g12a.c b/drivers/pinctrl/meson/pinctrl-meson-g12a.c
|
||||
index cd9656b13836..d182a575981e 100644
|
||||
--- a/drivers/pinctrl/meson/pinctrl-meson-g12a.c
|
||||
+++ b/drivers/pinctrl/meson/pinctrl-meson-g12a.c
|
||||
@@ -283,6 +283,8 @@ static const unsigned int pwm_d_x6_pins[] = { GPIOX_6 };
|
||||
static const unsigned int pwm_e_pins[] = { GPIOX_16 };
|
||||
|
||||
/* pwm_f */
|
||||
+static const unsigned int pwm_f_z_pins[] = { GPIOZ_12 };
|
||||
+static const unsigned int pwm_f_a_pins[] = { GPIOA_11 };
|
||||
static const unsigned int pwm_f_x_pins[] = { GPIOX_7 };
|
||||
static const unsigned int pwm_f_h_pins[] = { GPIOH_5 };
|
||||
|
||||
@@ -618,6 +620,7 @@ static struct meson_pmx_group meson_g12a_periphs_groups[] = {
|
||||
GROUP(tdm_c_dout2_z, 4),
|
||||
GROUP(tdm_c_dout3_z, 4),
|
||||
GROUP(mclk1_z, 4),
|
||||
+ GROUP(pwm_f_z, 5),
|
||||
|
||||
/* bank GPIOX */
|
||||
GROUP(sdio_d0, 1),
|
||||
@@ -768,6 +771,7 @@ static struct meson_pmx_group meson_g12a_periphs_groups[] = {
|
||||
GROUP(tdm_c_dout3_a, 2),
|
||||
GROUP(mclk0_a, 1),
|
||||
GROUP(mclk1_a, 2),
|
||||
+ GROUP(pwm_f_a, 3),
|
||||
};
|
||||
|
||||
/* uart_ao_a */
|
||||
@@ -1069,7 +1073,7 @@ static const char * const pwm_e_groups[] = {
|
||||
};
|
||||
|
||||
static const char * const pwm_f_groups[] = {
|
||||
- "pwm_f_x", "pwm_f_h",
|
||||
+ "pwm_f_z", "pwm_f_a", "pwm_f_x", "pwm_f_h",
|
||||
};
|
||||
|
||||
static const char * const cec_ao_a_h_groups[] = {
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 5c5664545a97520bbce591add5a7dbbea143b999 Mon Sep 17 00:00:00 2001
|
||||
From d9bb7b1871d26e2c8d022d80c67e4adf718d53d3 Mon Sep 17 00:00:00 2001
|
||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
||||
Date: Thu, 14 Jan 2021 17:43:02 +0100
|
||||
Subject: [PATCH 54/90] WIP: mmc: meson-gx-mmc: set core clock phase to 270
|
||||
Subject: [PATCH 37/75] WIP: mmc: meson-gx-mmc: set core clock phase to 270
|
||||
degrees for AXG compatible controllers
|
||||
|
||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
||||
@ -10,7 +10,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c
|
||||
index 1a11a4bf4d4f..df60312a1765 100644
|
||||
index f2ff19ff8e9d..396fabce04ac 100644
|
||||
--- a/drivers/mmc/host/meson-gx-mmc.c
|
||||
+++ b/drivers/mmc/host/meson-gx-mmc.c
|
||||
@@ -38,6 +38,7 @@
|
||||
@ -38,7 +38,7 @@ index 1a11a4bf4d4f..df60312a1765 100644
|
||||
clk_reg |= FIELD_PREP(CLK_TX_PHASE_MASK, CLK_PHASE_0);
|
||||
clk_reg |= FIELD_PREP(CLK_RX_PHASE_MASK, CLK_PHASE_0);
|
||||
writel(clk_reg, host->regs + SD_EMMC_CLOCK);
|
||||
@@ -1337,6 +1339,7 @@ static const struct meson_mmc_data meson_gx_data = {
|
||||
@@ -1326,6 +1328,7 @@ static const struct meson_mmc_data meson_gx_data = {
|
||||
.rx_delay_mask = CLK_V2_RX_DELAY_MASK,
|
||||
.always_on = CLK_V2_ALWAYS_ON,
|
||||
.adjust = SD_EMMC_ADJUST,
|
||||
@ -46,7 +46,7 @@ index 1a11a4bf4d4f..df60312a1765 100644
|
||||
};
|
||||
|
||||
static const struct meson_mmc_data meson_axg_data = {
|
||||
@@ -1344,6 +1347,7 @@ static const struct meson_mmc_data meson_axg_data = {
|
||||
@@ -1333,6 +1336,7 @@ static const struct meson_mmc_data meson_axg_data = {
|
||||
.rx_delay_mask = CLK_V3_RX_DELAY_MASK,
|
||||
.always_on = CLK_V3_ALWAYS_ON,
|
||||
.adjust = SD_EMMC_V3_ADJUST,
|
@ -1,7 +1,7 @@
|
||||
From fa5498d499cc8aa5a59d7c9682e1d70e73dea144 Mon Sep 17 00:00:00 2001
|
||||
From 790e92f9e0abe0027d1d227a201f1e1c9c693648 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Thu, 13 Jan 2022 03:50:01 +0000
|
||||
Subject: [PATCH 55/90] WIP: arm64: dts: meson: add Broadcom WiFi to P212 dtsi
|
||||
Subject: [PATCH 38/75] WIP: arm64: dts: meson: add Broadcom WiFi to P212 dtsi
|
||||
|
||||
The P212 has a combined WiFi/BT module. The BT side is already enabled
|
||||
in the dtsi but the WiFi side is not. Let's enable the WiFi module.
|
@ -1,7 +1,7 @@
|
||||
From d1ecff8da5fd4818b465e2b004f4737ca0dfb6fb Mon Sep 17 00:00:00 2001
|
||||
From c889662109dc29b01bf86fa4b2479696e14a880d Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Thu, 13 Jan 2022 03:56:12 +0000
|
||||
Subject: [PATCH 56/90] WIP: arm64: dts: meson: move pwm_ef node in P212 dtsi
|
||||
Subject: [PATCH 39/75] WIP: arm64: dts: meson: move pwm_ef node in P212 dtsi
|
||||
|
||||
Cosmetic-only change to alpha-sort the pwm_ef node.
|
||||
|
@ -1,32 +0,0 @@
|
||||
From 1cee0a34ddbccebf5c09744b170803bb5946ca3d Mon Sep 17 00:00:00 2001
|
||||
From: Vyacheslav Bocharov <adeep@lexina.in>
|
||||
Date: Wed, 19 Jan 2022 06:30:48 +0000
|
||||
Subject: [PATCH 40/90] FROMLIST(v3): Bluetooth: hci_h5: Add power reset via
|
||||
gpio in h5_btrtl_open
|
||||
|
||||
Add power reset via enable-gpios in h5_btrtl_open function.
|
||||
|
||||
Signed-off-by: Vyacheslav Bocharov <adeep@lexina.in>
|
||||
---
|
||||
drivers/bluetooth/hci_h5.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/drivers/bluetooth/hci_h5.c b/drivers/bluetooth/hci_h5.c
|
||||
index 34286ffe0568..fdf504b0d265 100644
|
||||
--- a/drivers/bluetooth/hci_h5.c
|
||||
+++ b/drivers/bluetooth/hci_h5.c
|
||||
@@ -966,6 +966,11 @@ static void h5_btrtl_open(struct h5 *h5)
|
||||
pm_runtime_enable(&h5->hu->serdev->dev);
|
||||
}
|
||||
|
||||
+ /* The controller needs reset to startup */
|
||||
+ gpiod_set_value_cansleep(h5->enable_gpio, 0);
|
||||
+ gpiod_set_value_cansleep(h5->device_wake_gpio, 0);
|
||||
+ msleep(100);
|
||||
+
|
||||
/* The controller needs up to 500ms to wakeup */
|
||||
gpiod_set_value_cansleep(h5->enable_gpio, 1);
|
||||
gpiod_set_value_cansleep(h5->device_wake_gpio, 1);
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From dfb3b1a759cdb45cddf5cca6ef904c4765445f55 Mon Sep 17 00:00:00 2001
|
||||
From 4bc5816d27156d1e5ee32be72b1719d584821933 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Thu, 13 Jan 2022 03:58:58 +0000
|
||||
Subject: [PATCH 57/90] WIP: arm64: dts: meson: remove WiFi/BT nodes from
|
||||
Subject: [PATCH 40/75] WIP: arm64: dts: meson: remove WiFi/BT nodes from
|
||||
Khadas VIM1
|
||||
|
||||
The Broadcom WiFi/BT SDIO nodes are now inherited from the P212 common dtsi
|
@ -1,139 +0,0 @@
|
||||
From 65dd459b9384d6d1acc157d4ef563642693007c9 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Thu, 10 Feb 2022 09:53:37 +0000
|
||||
Subject: [PATCH 41/90] FROMLIST(v2): arm64: dts: meson: remove CPU opps below
|
||||
1GHz for G12B boards
|
||||
|
||||
Amlogic G12B devices experience CPU stalls and random board wedges when
|
||||
the system idles and CPU cores clock down to lower opp points. Recent
|
||||
vendor kernels include a change to remove 100-250MHz and other distro
|
||||
sources also remove the 500/667MHz points. Unless all 100-667Mhz opps
|
||||
are removed or the CPU governor forced to performance stalls are still
|
||||
observed, so let's remove them to improve stability and uptime.
|
||||
|
||||
Fixes: b96d4e92709b ("arm64: dts: meson-g12b: support a311d and s922x cpu operating points")
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
---
|
||||
.../boot/dts/amlogic/meson-g12b-a311d.dtsi | 40 -------------------
|
||||
.../boot/dts/amlogic/meson-g12b-s922x.dtsi | 40 -------------------
|
||||
2 files changed, 80 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-a311d.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-a311d.dtsi
|
||||
index d61f43052a34..8e9ad1e51d66 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-a311d.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-a311d.dtsi
|
||||
@@ -11,26 +11,6 @@
|
||||
compatible = "operating-points-v2";
|
||||
opp-shared;
|
||||
|
||||
- opp-100000000 {
|
||||
- opp-hz = /bits/ 64 <100000000>;
|
||||
- opp-microvolt = <731000>;
|
||||
- };
|
||||
-
|
||||
- opp-250000000 {
|
||||
- opp-hz = /bits/ 64 <250000000>;
|
||||
- opp-microvolt = <731000>;
|
||||
- };
|
||||
-
|
||||
- opp-500000000 {
|
||||
- opp-hz = /bits/ 64 <500000000>;
|
||||
- opp-microvolt = <731000>;
|
||||
- };
|
||||
-
|
||||
- opp-667000000 {
|
||||
- opp-hz = /bits/ 64 <667000000>;
|
||||
- opp-microvolt = <731000>;
|
||||
- };
|
||||
-
|
||||
opp-1000000000 {
|
||||
opp-hz = /bits/ 64 <1000000000>;
|
||||
opp-microvolt = <761000>;
|
||||
@@ -71,26 +51,6 @@
|
||||
compatible = "operating-points-v2";
|
||||
opp-shared;
|
||||
|
||||
- opp-100000000 {
|
||||
- opp-hz = /bits/ 64 <100000000>;
|
||||
- opp-microvolt = <731000>;
|
||||
- };
|
||||
-
|
||||
- opp-250000000 {
|
||||
- opp-hz = /bits/ 64 <250000000>;
|
||||
- opp-microvolt = <731000>;
|
||||
- };
|
||||
-
|
||||
- opp-500000000 {
|
||||
- opp-hz = /bits/ 64 <500000000>;
|
||||
- opp-microvolt = <731000>;
|
||||
- };
|
||||
-
|
||||
- opp-667000000 {
|
||||
- opp-hz = /bits/ 64 <667000000>;
|
||||
- opp-microvolt = <731000>;
|
||||
- };
|
||||
-
|
||||
opp-1000000000 {
|
||||
opp-hz = /bits/ 64 <1000000000>;
|
||||
opp-microvolt = <731000>;
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-s922x.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12b-s922x.dtsi
|
||||
index 1e5d0ee5d541..44c23c984034 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-s922x.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-s922x.dtsi
|
||||
@@ -11,26 +11,6 @@
|
||||
compatible = "operating-points-v2";
|
||||
opp-shared;
|
||||
|
||||
- opp-100000000 {
|
||||
- opp-hz = /bits/ 64 <100000000>;
|
||||
- opp-microvolt = <731000>;
|
||||
- };
|
||||
-
|
||||
- opp-250000000 {
|
||||
- opp-hz = /bits/ 64 <250000000>;
|
||||
- opp-microvolt = <731000>;
|
||||
- };
|
||||
-
|
||||
- opp-500000000 {
|
||||
- opp-hz = /bits/ 64 <500000000>;
|
||||
- opp-microvolt = <731000>;
|
||||
- };
|
||||
-
|
||||
- opp-667000000 {
|
||||
- opp-hz = /bits/ 64 <667000000>;
|
||||
- opp-microvolt = <731000>;
|
||||
- };
|
||||
-
|
||||
opp-1000000000 {
|
||||
opp-hz = /bits/ 64 <1000000000>;
|
||||
opp-microvolt = <731000>;
|
||||
@@ -76,26 +56,6 @@
|
||||
compatible = "operating-points-v2";
|
||||
opp-shared;
|
||||
|
||||
- opp-100000000 {
|
||||
- opp-hz = /bits/ 64 <100000000>;
|
||||
- opp-microvolt = <751000>;
|
||||
- };
|
||||
-
|
||||
- opp-250000000 {
|
||||
- opp-hz = /bits/ 64 <250000000>;
|
||||
- opp-microvolt = <751000>;
|
||||
- };
|
||||
-
|
||||
- opp-500000000 {
|
||||
- opp-hz = /bits/ 64 <500000000>;
|
||||
- opp-microvolt = <751000>;
|
||||
- };
|
||||
-
|
||||
- opp-667000000 {
|
||||
- opp-hz = /bits/ 64 <667000000>;
|
||||
- opp-microvolt = <751000>;
|
||||
- };
|
||||
-
|
||||
opp-1000000000 {
|
||||
opp-hz = /bits/ 64 <1000000000>;
|
||||
opp-microvolt = <771000>;
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From fd15d86035de9f5ddb76e2b33815169a0fc142dc Mon Sep 17 00:00:00 2001
|
||||
From 2af0b6b790691fdfc79d184f47d5b0a229d109f7 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Tue, 18 Jan 2022 15:09:12 +0000
|
||||
Subject: [PATCH 58/90] WIP: arm64: dts: meson: set p212/p23x/q20x SDIO to
|
||||
Subject: [PATCH 41/75] WIP: arm64: dts: meson: set p212/p23x/q20x SDIO to
|
||||
100MHz
|
||||
|
||||
Amlogic datasheets describe 50MHz max-frequency for SDIO on GXL/GXM but
|
@ -1,53 +0,0 @@
|
||||
From 5a7b646a062c993fb5a2f355a7568e020dcff3aa Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Thu, 10 Feb 2022 10:01:05 +0000
|
||||
Subject: [PATCH 42/90] FROMLIST(v2): arm64: dts: meson: remove CPU opps below
|
||||
1GHz for SM1 boards
|
||||
|
||||
Amlogic SM1 devices experience CPU stalls and random board wedges when
|
||||
the system idles and CPU cores clock down to lower opp points. Recent
|
||||
vendor kernels include a change to remove 100-250MHz and other distro
|
||||
sources also remove the 500/667MHz points. Unless all 100-667Mhz opps
|
||||
are removed or the CPU governor forced to performance stalls are still
|
||||
observed, so let's remove them to improve stability and uptime.
|
||||
|
||||
Fixes: 3d9e76483049 ("arm64: dts: meson-sm1-sei610: enable DVFS")
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/meson-sm1.dtsi | 20 --------------------
|
||||
1 file changed, 20 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi b/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi
|
||||
index 1e0adf259d61..a685dabde5d3 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-sm1.dtsi
|
||||
@@ -95,26 +95,6 @@
|
||||
compatible = "operating-points-v2";
|
||||
opp-shared;
|
||||
|
||||
- opp-100000000 {
|
||||
- opp-hz = /bits/ 64 <100000000>;
|
||||
- opp-microvolt = <730000>;
|
||||
- };
|
||||
-
|
||||
- opp-250000000 {
|
||||
- opp-hz = /bits/ 64 <250000000>;
|
||||
- opp-microvolt = <730000>;
|
||||
- };
|
||||
-
|
||||
- opp-500000000 {
|
||||
- opp-hz = /bits/ 64 <500000000>;
|
||||
- opp-microvolt = <730000>;
|
||||
- };
|
||||
-
|
||||
- opp-667000000 {
|
||||
- opp-hz = /bits/ 64 <666666666>;
|
||||
- opp-microvolt = <750000>;
|
||||
- };
|
||||
-
|
||||
opp-1000000000 {
|
||||
opp-hz = /bits/ 64 <1000000000>;
|
||||
opp-microvolt = <770000>;
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 40e9017aefcc38da1ba4ed9ba9f639f4699834cb Mon Sep 17 00:00:00 2001
|
||||
From 9b1098f064055ba606f70ebc8efe981c8a59ffbe Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 19 Jan 2022 06:45:06 +0000
|
||||
Subject: [PATCH 59/90] WIP: arm64: dts: meson: add UHS SDIO capabilities to
|
||||
Subject: [PATCH 42/75] WIP: arm64: dts: meson: add UHS SDIO capabilities to
|
||||
p212/p23x/q20x
|
||||
|
||||
Add UHS capabilities to the SDIO node to enable 100MHz speeds.
|
@ -1,42 +0,0 @@
|
||||
From fa0fc8498a811c85bace6138f60b7d09f07d18b8 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Thu, 25 Nov 2021 11:31:43 +0000
|
||||
Subject: [PATCH 43/90] FROMLIST(v1): drivers: meson: vdec: add VP9 support to
|
||||
GXM
|
||||
|
||||
VP9 support for GXM appears to have been missed from the original
|
||||
codec submission [0] but it works well, so let's add support.
|
||||
|
||||
[0] https://github.com/torvalds/linux/commit/00c43088aa680989407b6afbda295f67b3f123f1
|
||||
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
---
|
||||
drivers/staging/media/meson/vdec/vdec_platform.c | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/drivers/staging/media/meson/vdec/vdec_platform.c b/drivers/staging/media/meson/vdec/vdec_platform.c
|
||||
index eabbebab2da2..88c9d72e1c83 100644
|
||||
--- a/drivers/staging/media/meson/vdec/vdec_platform.c
|
||||
+++ b/drivers/staging/media/meson/vdec/vdec_platform.c
|
||||
@@ -103,6 +103,18 @@ static const struct amvdec_format vdec_formats_gxl[] = {
|
||||
|
||||
static const struct amvdec_format vdec_formats_gxm[] = {
|
||||
{
|
||||
+ .pixfmt = V4L2_PIX_FMT_VP9,
|
||||
+ .min_buffers = 16,
|
||||
+ .max_buffers = 24,
|
||||
+ .max_width = 3840,
|
||||
+ .max_height = 2160,
|
||||
+ .vdec_ops = &vdec_hevc_ops,
|
||||
+ .codec_ops = &codec_vp9_ops,
|
||||
+ .firmware_path = "meson/vdec/gxl_vp9.bin",
|
||||
+ .pixfmts_cap = { V4L2_PIX_FMT_NV12M, 0 },
|
||||
+ .flags = V4L2_FMT_FLAG_COMPRESSED |
|
||||
+ V4L2_FMT_FLAG_DYN_RESOLUTION,
|
||||
+ }, {
|
||||
.pixfmt = V4L2_PIX_FMT_H264,
|
||||
.min_buffers = 2,
|
||||
.max_buffers = 24,
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 8c3fedfdb05685886ef319ced3356b618d24fc86 Mon Sep 17 00:00:00 2001
|
||||
From 1ed843a2e25618d459e35e7daca8b849f9aa1a41 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Tue, 18 Jan 2022 15:18:32 +0000
|
||||
Subject: [PATCH 60/90] WIP: arm64: dts: meson: remove SDIO node from Khadas
|
||||
Subject: [PATCH 43/75] WIP: arm64: dts: meson: remove SDIO node from Khadas
|
||||
VIM1
|
||||
|
||||
Now that SDIO 100MHz max-frequency is inherited from the p212 dtsi we
|
@ -1,209 +0,0 @@
|
||||
From f46afa0e4a37894ee46e023c193f40179635ddca Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20F=C3=A4rber?= <afaerber@suse.de>
|
||||
Date: Sun, 20 Feb 2022 08:21:13 +0000
|
||||
Subject: [PATCH 44/90] FROMLIST(v2): spi: gpio: Implement LSB First bitbang
|
||||
support
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Add support for slave DT property spi-lsb-first, i.e., SPI_LSB_FIRST mode.
|
||||
Duplicate the inline helpers bitbang_txrx_be_cpha{0,1} as LE versions.
|
||||
Conditionally call them from all the spi-gpio txrx_word callbacks.
|
||||
|
||||
Some alternatives to this implementation approach were discussed back
|
||||
then [0], but eventually it was considered reasonable.
|
||||
|
||||
[0] https://lore.kernel.org/linux-arm-kernel/20191212033952.5967-8-afaerber@suse.de/
|
||||
|
||||
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
---
|
||||
drivers/spi/spi-bitbang-txrx.h | 66 ++++++++++++++++++++++++++++++++++
|
||||
drivers/spi/spi-gpio.c | 42 +++++++++++++++++-----
|
||||
2 files changed, 99 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/drivers/spi/spi-bitbang-txrx.h b/drivers/spi/spi-bitbang-txrx.h
|
||||
index ae61d72c7d28..267342dfa738 100644
|
||||
--- a/drivers/spi/spi-bitbang-txrx.h
|
||||
+++ b/drivers/spi/spi-bitbang-txrx.h
|
||||
@@ -41,6 +41,8 @@
|
||||
* chips need ... there may be several reasons you'd need to tweak timings
|
||||
* in these routines, not just to make it faster or slower to match a
|
||||
* particular CPU clock rate.
|
||||
+ *
|
||||
+ * ToDo: Maybe the bitrev macros can be used to improve the code?
|
||||
*/
|
||||
|
||||
static inline u32
|
||||
@@ -106,3 +108,67 @@ bitbang_txrx_be_cpha1(struct spi_device *spi,
|
||||
}
|
||||
return word;
|
||||
}
|
||||
+
|
||||
+static inline u32
|
||||
+bitbang_txrx_le_cpha0(struct spi_device *spi,
|
||||
+ unsigned int nsecs, unsigned int cpol, unsigned int flags,
|
||||
+ u32 word, u8 bits)
|
||||
+{
|
||||
+ /* if (cpol == 0) this is SPI_MODE_0; else this is SPI_MODE_2 */
|
||||
+
|
||||
+ u32 oldbit = !(word & 1);
|
||||
+ /* clock starts at inactive polarity */
|
||||
+ for (; likely(bits); bits--) {
|
||||
+
|
||||
+ /* setup LSB (to slave) on trailing edge */
|
||||
+ if ((flags & SPI_MASTER_NO_TX) == 0) {
|
||||
+ if ((word & 1) != oldbit) {
|
||||
+ setmosi(spi, word & 1);
|
||||
+ oldbit = word & 1;
|
||||
+ }
|
||||
+ }
|
||||
+ spidelay(nsecs); /* T(setup) */
|
||||
+
|
||||
+ setsck(spi, !cpol);
|
||||
+ spidelay(nsecs);
|
||||
+
|
||||
+ /* sample LSB (from slave) on leading edge */
|
||||
+ word >>= 1;
|
||||
+ if ((flags & SPI_MASTER_NO_RX) == 0)
|
||||
+ word |= getmiso(spi) << (bits - 1);
|
||||
+ setsck(spi, cpol);
|
||||
+ }
|
||||
+ return word;
|
||||
+}
|
||||
+
|
||||
+static inline u32
|
||||
+bitbang_txrx_le_cpha1(struct spi_device *spi,
|
||||
+ unsigned int nsecs, unsigned int cpol, unsigned int flags,
|
||||
+ u32 word, u8 bits)
|
||||
+{
|
||||
+ /* if (cpol == 0) this is SPI_MODE_1; else this is SPI_MODE_3 */
|
||||
+
|
||||
+ u32 oldbit = !(word & 1);
|
||||
+ /* clock starts at inactive polarity */
|
||||
+ for (; likely(bits); bits--) {
|
||||
+
|
||||
+ /* setup LSB (to slave) on leading edge */
|
||||
+ setsck(spi, !cpol);
|
||||
+ if ((flags & SPI_MASTER_NO_TX) == 0) {
|
||||
+ if ((word & 1) != oldbit) {
|
||||
+ setmosi(spi, word & 1);
|
||||
+ oldbit = word & 1;
|
||||
+ }
|
||||
+ }
|
||||
+ spidelay(nsecs); /* T(setup) */
|
||||
+
|
||||
+ setsck(spi, cpol);
|
||||
+ spidelay(nsecs);
|
||||
+
|
||||
+ /* sample LSB (from slave) on trailing edge */
|
||||
+ word >>= 1;
|
||||
+ if ((flags & SPI_MASTER_NO_RX) == 0)
|
||||
+ word |= getmiso(spi) << (bits - 1);
|
||||
+ }
|
||||
+ return word;
|
||||
+}
|
||||
diff --git a/drivers/spi/spi-gpio.c b/drivers/spi/spi-gpio.c
|
||||
index 0584f4d2fde2..4b12c4964a66 100644
|
||||
--- a/drivers/spi/spi-gpio.c
|
||||
+++ b/drivers/spi/spi-gpio.c
|
||||
@@ -135,25 +135,37 @@ static inline int getmiso(const struct spi_device *spi)
|
||||
static u32 spi_gpio_txrx_word_mode0(struct spi_device *spi,
|
||||
unsigned nsecs, u32 word, u8 bits, unsigned flags)
|
||||
{
|
||||
- return bitbang_txrx_be_cpha0(spi, nsecs, 0, flags, word, bits);
|
||||
+ if (unlikely(spi->mode & SPI_LSB_FIRST))
|
||||
+ return bitbang_txrx_le_cpha0(spi, nsecs, 0, flags, word, bits);
|
||||
+ else
|
||||
+ return bitbang_txrx_be_cpha0(spi, nsecs, 0, flags, word, bits);
|
||||
}
|
||||
|
||||
static u32 spi_gpio_txrx_word_mode1(struct spi_device *spi,
|
||||
unsigned nsecs, u32 word, u8 bits, unsigned flags)
|
||||
{
|
||||
- return bitbang_txrx_be_cpha1(spi, nsecs, 0, flags, word, bits);
|
||||
+ if (unlikely(spi->mode & SPI_LSB_FIRST))
|
||||
+ return bitbang_txrx_le_cpha1(spi, nsecs, 0, flags, word, bits);
|
||||
+ else
|
||||
+ return bitbang_txrx_be_cpha1(spi, nsecs, 0, flags, word, bits);
|
||||
}
|
||||
|
||||
static u32 spi_gpio_txrx_word_mode2(struct spi_device *spi,
|
||||
unsigned nsecs, u32 word, u8 bits, unsigned flags)
|
||||
{
|
||||
- return bitbang_txrx_be_cpha0(spi, nsecs, 1, flags, word, bits);
|
||||
+ if (unlikely(spi->mode & SPI_LSB_FIRST))
|
||||
+ return bitbang_txrx_le_cpha0(spi, nsecs, 1, flags, word, bits);
|
||||
+ else
|
||||
+ return bitbang_txrx_be_cpha0(spi, nsecs, 1, flags, word, bits);
|
||||
}
|
||||
|
||||
static u32 spi_gpio_txrx_word_mode3(struct spi_device *spi,
|
||||
unsigned nsecs, u32 word, u8 bits, unsigned flags)
|
||||
{
|
||||
- return bitbang_txrx_be_cpha1(spi, nsecs, 1, flags, word, bits);
|
||||
+ if (unlikely(spi->mode & SPI_LSB_FIRST))
|
||||
+ return bitbang_txrx_le_cpha1(spi, nsecs, 1, flags, word, bits);
|
||||
+ else
|
||||
+ return bitbang_txrx_be_cpha1(spi, nsecs, 1, flags, word, bits);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -170,28 +182,40 @@ static u32 spi_gpio_spec_txrx_word_mode0(struct spi_device *spi,
|
||||
unsigned nsecs, u32 word, u8 bits, unsigned flags)
|
||||
{
|
||||
flags = spi->master->flags;
|
||||
- return bitbang_txrx_be_cpha0(spi, nsecs, 0, flags, word, bits);
|
||||
+ if (unlikely(spi->mode & SPI_LSB_FIRST))
|
||||
+ return bitbang_txrx_le_cpha0(spi, nsecs, 0, flags, word, bits);
|
||||
+ else
|
||||
+ return bitbang_txrx_be_cpha0(spi, nsecs, 0, flags, word, bits);
|
||||
}
|
||||
|
||||
static u32 spi_gpio_spec_txrx_word_mode1(struct spi_device *spi,
|
||||
unsigned nsecs, u32 word, u8 bits, unsigned flags)
|
||||
{
|
||||
flags = spi->master->flags;
|
||||
- return bitbang_txrx_be_cpha1(spi, nsecs, 0, flags, word, bits);
|
||||
+ if (unlikely(spi->mode & SPI_LSB_FIRST))
|
||||
+ return bitbang_txrx_le_cpha1(spi, nsecs, 0, flags, word, bits);
|
||||
+ else
|
||||
+ return bitbang_txrx_be_cpha1(spi, nsecs, 0, flags, word, bits);
|
||||
}
|
||||
|
||||
static u32 spi_gpio_spec_txrx_word_mode2(struct spi_device *spi,
|
||||
unsigned nsecs, u32 word, u8 bits, unsigned flags)
|
||||
{
|
||||
flags = spi->master->flags;
|
||||
- return bitbang_txrx_be_cpha0(spi, nsecs, 1, flags, word, bits);
|
||||
+ if (unlikely(spi->mode & SPI_LSB_FIRST))
|
||||
+ return bitbang_txrx_le_cpha0(spi, nsecs, 1, flags, word, bits);
|
||||
+ else
|
||||
+ return bitbang_txrx_be_cpha0(spi, nsecs, 1, flags, word, bits);
|
||||
}
|
||||
|
||||
static u32 spi_gpio_spec_txrx_word_mode3(struct spi_device *spi,
|
||||
unsigned nsecs, u32 word, u8 bits, unsigned flags)
|
||||
{
|
||||
flags = spi->master->flags;
|
||||
- return bitbang_txrx_be_cpha1(spi, nsecs, 1, flags, word, bits);
|
||||
+ if (unlikely(spi->mode & SPI_LSB_FIRST))
|
||||
+ return bitbang_txrx_le_cpha1(spi, nsecs, 1, flags, word, bits);
|
||||
+ else
|
||||
+ return bitbang_txrx_be_cpha1(spi, nsecs, 1, flags, word, bits);
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
@@ -378,7 +402,7 @@ static int spi_gpio_probe(struct platform_device *pdev)
|
||||
|
||||
master->bits_per_word_mask = SPI_BPW_RANGE_MASK(1, 32);
|
||||
master->mode_bits = SPI_3WIRE | SPI_3WIRE_HIZ | SPI_CPHA | SPI_CPOL |
|
||||
- SPI_CS_HIGH;
|
||||
+ SPI_CS_HIGH | SPI_LSB_FIRST;
|
||||
if (!spi_gpio->mosi) {
|
||||
/* HW configuration without MOSI pin
|
||||
*
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From b4f1722a917026b6090c7fb3d6b575768ebf72f5 Mon Sep 17 00:00:00 2001
|
||||
From 7b9e792aa7cedcf369c691fcb887731078262d58 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Thu, 13 Jan 2022 04:30:44 +0000
|
||||
Subject: [PATCH 61/90] WIP: arm64: dts: meson: add audio playback to
|
||||
Subject: [PATCH 44/75] WIP: arm64: dts: meson: add audio playback to
|
||||
S905X-P212 dts
|
||||
|
||||
Add support for the HDMI and Analogue i2s audio outputs.
|
@ -1,7 +1,7 @@
|
||||
From 4aca1a59251338a9f98b58fc67e7749fae32b3be Mon Sep 17 00:00:00 2001
|
||||
From ddf238f977b1fa5893ff533ec9105505b326abfa Mon Sep 17 00:00:00 2001
|
||||
From: benjamin545 <benjamin545@gmail.com>
|
||||
Date: Thu, 15 Jul 2021 14:32:33 -0400
|
||||
Subject: [PATCH 62/90] WIP: drivers: meson: vdec: remove redundant if
|
||||
Subject: [PATCH 45/75] WIP: drivers: meson: vdec: remove redundant if
|
||||
statement
|
||||
|
||||
checking if sess->fmt_out->pixfmt is V4L2_PIX_FMT_VP9 was already done
|
||||
@ -11,7 +11,7 @@ as a condition to enter the if statement where this additional check is performe
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/staging/media/meson/vdec/esparser.c b/drivers/staging/media/meson/vdec/esparser.c
|
||||
index db7022707ff8..e18334e57fc0 100644
|
||||
index 86ccc8937afc..7b15fc54efe4 100644
|
||||
--- a/drivers/staging/media/meson/vdec/esparser.c
|
||||
+++ b/drivers/staging/media/meson/vdec/esparser.c
|
||||
@@ -314,8 +314,7 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf)
|
@ -1,7 +1,7 @@
|
||||
From df7d1adad3f60c8cb3f33235b6301093801b7b47 Mon Sep 17 00:00:00 2001
|
||||
From c9e328d0c4d4bb82e957243639a2657a6471df31 Mon Sep 17 00:00:00 2001
|
||||
From: benjamin545 <benjamin545@gmail.com>
|
||||
Date: Thu, 15 Jul 2021 16:32:39 -0400
|
||||
Subject: [PATCH 63/90] WIP: drivers: meson: vdec: improve mmu and fbc handling
|
||||
Subject: [PATCH 46/75] WIP: drivers: meson: vdec: improve mmu and fbc handling
|
||||
and add 10 bit handling
|
||||
|
||||
---
|
||||
@ -429,7 +429,7 @@ index 897f5d7a6aad..bfc312ec2a56 100644
|
||||
/* No frame is actually processed */
|
||||
vp9->cur_frame = NULL;
|
||||
diff --git a/drivers/staging/media/meson/vdec/esparser.c b/drivers/staging/media/meson/vdec/esparser.c
|
||||
index e18334e57fc0..610a92b9f6f2 100644
|
||||
index 7b15fc54efe4..5d2273d53d02 100644
|
||||
--- a/drivers/staging/media/meson/vdec/esparser.c
|
||||
+++ b/drivers/staging/media/meson/vdec/esparser.c
|
||||
@@ -319,6 +319,7 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf)
|
||||
@ -453,7 +453,7 @@ index 0906b8fb5cc6..a48170fe4cff 100644
|
||||
u8 quantization;
|
||||
u8 xfer_func;
|
||||
diff --git a/drivers/staging/media/meson/vdec/vdec_helpers.c b/drivers/staging/media/meson/vdec/vdec_helpers.c
|
||||
index 203d7afa085d..23a69c51c634 100644
|
||||
index 7d2a75653250..d684057509bf 100644
|
||||
--- a/drivers/staging/media/meson/vdec/vdec_helpers.c
|
||||
+++ b/drivers/staging/media/meson/vdec/vdec_helpers.c
|
||||
@@ -50,32 +50,40 @@ void amvdec_write_parser(struct amvdec_core *core, u32 reg, u32 val)
|
||||
@ -507,7 +507,7 @@ index 203d7afa085d..23a69c51c634 100644
|
||||
|
||||
static int canvas_alloc(struct amvdec_session *sess, u8 *canvas_id)
|
||||
{
|
||||
@@ -436,7 +444,7 @@ void amvdec_set_par_from_dar(struct amvdec_session *sess,
|
||||
@@ -440,7 +448,7 @@ void amvdec_set_par_from_dar(struct amvdec_session *sess,
|
||||
EXPORT_SYMBOL_GPL(amvdec_set_par_from_dar);
|
||||
|
||||
void amvdec_src_change(struct amvdec_session *sess, u32 width,
|
||||
@ -516,7 +516,7 @@ index 203d7afa085d..23a69c51c634 100644
|
||||
{
|
||||
static const struct v4l2_event ev = {
|
||||
.type = V4L2_EVENT_SOURCE_CHANGE,
|
||||
@@ -444,25 +452,27 @@ void amvdec_src_change(struct amvdec_session *sess, u32 width,
|
||||
@@ -448,25 +456,27 @@ void amvdec_src_change(struct amvdec_session *sess, u32 width,
|
||||
|
||||
v4l2_ctrl_s_ctrl(sess->ctrl_min_buf_capture, dpb_size);
|
||||
|
||||
@ -552,7 +552,7 @@ index 203d7afa085d..23a69c51c634 100644
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(amvdec_src_change);
|
||||
diff --git a/drivers/staging/media/meson/vdec/vdec_helpers.h b/drivers/staging/media/meson/vdec/vdec_helpers.h
|
||||
index 88137d15aa3a..fca4251f7599 100644
|
||||
index 4bf3e61d081b..1a711679d26a 100644
|
||||
--- a/drivers/staging/media/meson/vdec/vdec_helpers.h
|
||||
+++ b/drivers/staging/media/meson/vdec/vdec_helpers.h
|
||||
@@ -27,9 +27,10 @@ void amvdec_clear_dos_bits(struct amvdec_core *core, u32 reg, u32 val);
|
@ -1,7 +1,7 @@
|
||||
From 478ef90d4bb38e6c5ae11c4abd6142fc7336c746 Mon Sep 17 00:00:00 2001
|
||||
From 667ed5bb98335462c0ca6554c75c33923c6e3e01 Mon Sep 17 00:00:00 2001
|
||||
From: benjamin545 <benjamin545@gmail.com>
|
||||
Date: Thu, 15 Jul 2021 17:08:42 -0400
|
||||
Subject: [PATCH 64/90] WIP: drivers: meson: vdec: add HEVC decode codec
|
||||
Subject: [PATCH 47/75] WIP: drivers: meson: vdec: add HEVC decode codec
|
||||
|
||||
---
|
||||
drivers/staging/media/meson/vdec/Makefile | 2 +-
|
||||
@ -1492,7 +1492,7 @@ index 000000000000..f2f9b2464df1
|
||||
+
|
||||
+#endif
|
||||
diff --git a/drivers/staging/media/meson/vdec/esparser.c b/drivers/staging/media/meson/vdec/esparser.c
|
||||
index 610a92b9f6f2..9b6034936d32 100644
|
||||
index 5d2273d53d02..df5956c6141d 100644
|
||||
--- a/drivers/staging/media/meson/vdec/esparser.c
|
||||
+++ b/drivers/staging/media/meson/vdec/esparser.c
|
||||
@@ -309,7 +309,7 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf)
|
@ -1,7 +1,7 @@
|
||||
From a9f750c672c4c1238cccd1d8d76a138a5602d035 Mon Sep 17 00:00:00 2001
|
||||
From 58471a413d6a439726405ca14a37901fb9f582e9 Mon Sep 17 00:00:00 2001
|
||||
From: benjamin545 <benjamin545@gmail.com>
|
||||
Date: Mon, 2 Aug 2021 15:18:40 -0400
|
||||
Subject: [PATCH 65/90] WIP: drivers: meson: vdec: add handling to HEVC decoder
|
||||
Subject: [PATCH 48/75] WIP: drivers: meson: vdec: add handling to HEVC decoder
|
||||
to show frames when ready
|
||||
|
||||
..rather than when no longer referenced
|
@ -1,7 +1,7 @@
|
||||
From 975c23d02776b023a75e6090b521a839e67a8c42 Mon Sep 17 00:00:00 2001
|
||||
From e1b8ad5bd7344587395410b88068d3876c8997c4 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sun, 21 Nov 2021 19:12:07 +0000
|
||||
Subject: [PATCH 66/90] WIP: drivers: meson: vdec: add HEVC support to GXBB
|
||||
Subject: [PATCH 49/75] WIP: drivers: meson: vdec: add HEVC support to GXBB
|
||||
|
||||
It's not clear whether the GXL firmware is the same one used with GXBB
|
||||
but let's try it and see!
|
@ -1,54 +0,0 @@
|
||||
From 477a4f4816028d590f7b013e04b29319dbe66a24 Mon Sep 17 00:00:00 2001
|
||||
From: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
Date: Wed, 23 Feb 2022 02:21:19 +0000
|
||||
Subject: [PATCH 50/90] FROMLIST(v1): usb: core: improve handling of hubs with
|
||||
no ports
|
||||
|
||||
I get the "hub doesn't have any ports" error message on a system with
|
||||
Amlogic S905W SoC. Seems the SoC has internal USB 3.0 supports but
|
||||
is crippled with regard to USB 3.0 ports.
|
||||
Maybe we shouldn't consider this scenario an error. So let's change
|
||||
the message to info level, but otherwise keep the handling of the
|
||||
scenario as it is today. With the patch it looks like this on my
|
||||
system.
|
||||
|
||||
dwc2 c9100000.usb: supply vusb_d not found, using dummy regulator
|
||||
dwc2 c9100000.usb: supply vusb_a not found, using dummy regulator
|
||||
dwc2 c9100000.usb: EPs: 7, dedicated fifos, 712 entries in SPRAM
|
||||
xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
|
||||
xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
|
||||
xhci-hcd xhci-hcd.0.auto: hcc params 0x0228f664 hci version 0x100 quirks 0x0000000002010010
|
||||
xhci-hcd xhci-hcd.0.auto: irq 49, io mem 0xc9000000
|
||||
hub 1-0:1.0: USB hub found
|
||||
hub 1-0:1.0: 2 ports detected
|
||||
xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
|
||||
xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
|
||||
xhci-hcd xhci-hcd.0.auto: Host supports USB 3.0 SuperSpeed
|
||||
usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
|
||||
hub 2-0:1.0: USB hub found
|
||||
hub 2-0:1.0: hub has no ports, exiting
|
||||
|
||||
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
---
|
||||
drivers/usb/core/hub.c | 5 ++---
|
||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
|
||||
index 588f3ded89cd..4151b960915b 100644
|
||||
--- a/drivers/usb/core/hub.c
|
||||
+++ b/drivers/usb/core/hub.c
|
||||
@@ -1423,9 +1423,8 @@ static int hub_configure(struct usb_hub *hub,
|
||||
ret = -ENODEV;
|
||||
goto fail;
|
||||
} else if (hub->descriptor->bNbrPorts == 0) {
|
||||
- message = "hub doesn't have any ports!";
|
||||
- ret = -ENODEV;
|
||||
- goto fail;
|
||||
+ dev_info(hub_dev, "hub has no ports, exiting\n");
|
||||
+ return -ENODEV;
|
||||
}
|
||||
|
||||
/*
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From cb0c20e84a934c66961ace27f340cd7c98188dbe Mon Sep 17 00:00:00 2001
|
||||
From d072a2e0e20a14e7a11c6bbf2a70b0be0f5b25db Mon Sep 17 00:00:00 2001
|
||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
||||
Date: Mon, 22 Nov 2021 09:15:21 +0000
|
||||
Subject: [PATCH 67/90] WIP: drivers: meson: vdec: check if parser has really
|
||||
Subject: [PATCH 50/75] WIP: drivers: meson: vdec: check if parser has really
|
||||
parser before marking input buffer as error
|
||||
|
||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
||||
@ -10,7 +10,7 @@ Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
||||
1 file changed, 10 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/staging/media/meson/vdec/esparser.c b/drivers/staging/media/meson/vdec/esparser.c
|
||||
index 9b6034936d32..bb9480f0a70c 100644
|
||||
index df5956c6141d..06f627b141fb 100644
|
||||
--- a/drivers/staging/media/meson/vdec/esparser.c
|
||||
+++ b/drivers/staging/media/meson/vdec/esparser.c
|
||||
@@ -300,6 +300,7 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf)
|
||||
@ -21,7 +21,7 @@ index 9b6034936d32..bb9480f0a70c 100644
|
||||
|
||||
/*
|
||||
* When max ref frame is held by VP9, this should be -= 3 to prevent a
|
||||
@@ -349,15 +350,20 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf)
|
||||
@@ -354,15 +355,20 @@ esparser_queue(struct amvdec_session *sess, struct vb2_v4l2_buffer *vbuf)
|
||||
}
|
||||
|
||||
pad_size = esparser_pad_start_code(core, vb, payload_size);
|
@ -1,55 +0,0 @@
|
||||
From a3d32cc21b3d206d13f9cf4e475206e47d57f9c5 Mon Sep 17 00:00:00 2001
|
||||
From: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
Date: Thu, 10 Mar 2022 06:06:23 +0000
|
||||
Subject: [PATCH 51/90] FROMLIST(v2): ASoC: soc-core: add debugfs_prefix member
|
||||
to snd_soc_component_driver
|
||||
|
||||
Allow the component debugfs_prefix to be set from
|
||||
snd_soc_component_driver. First use case is avoiding a duplicate
|
||||
debugfs entry error in case a device has multiple components
|
||||
which have the same name therefore.
|
||||
|
||||
Note that we don't set component->debugfs_prefix if it's set already.
|
||||
That's needed because partially component->debugfs_prefix is set
|
||||
before calling snd_soc_component_initialize().
|
||||
|
||||
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
---
|
||||
include/sound/soc-component.h | 4 ++++
|
||||
sound/soc/soc-core.c | 5 +++++
|
||||
2 files changed, 9 insertions(+)
|
||||
|
||||
diff --git a/include/sound/soc-component.h b/include/sound/soc-component.h
|
||||
index a52080407b98..766dc6f009c0 100644
|
||||
--- a/include/sound/soc-component.h
|
||||
+++ b/include/sound/soc-component.h
|
||||
@@ -179,6 +179,10 @@ struct snd_soc_component_driver {
|
||||
struct snd_pcm_hw_params *params);
|
||||
bool use_dai_pcm_id; /* use DAI link PCM ID as PCM device number */
|
||||
int be_pcm_base; /* base device ID for all BE PCMs */
|
||||
+
|
||||
+#ifdef CONFIG_DEBUG_FS
|
||||
+ const char *debugfs_prefix;
|
||||
+#endif
|
||||
};
|
||||
|
||||
struct snd_soc_component {
|
||||
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
|
||||
index 434e61b46983..8ac0b32a018c 100644
|
||||
--- a/sound/soc/soc-core.c
|
||||
+++ b/sound/soc/soc-core.c
|
||||
@@ -2586,6 +2586,11 @@ int snd_soc_component_initialize(struct snd_soc_component *component,
|
||||
component->dev = dev;
|
||||
component->driver = driver;
|
||||
|
||||
+#ifdef CONFIG_DEBUG_FS
|
||||
+ if (!component->debugfs_prefix)
|
||||
+ component->debugfs_prefix = driver->debugfs_prefix;
|
||||
+#endif
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(snd_soc_component_initialize);
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 06fe0cdc82836f529cbc57f608aff95c032d85eb Mon Sep 17 00:00:00 2001
|
||||
From 51babedd158973b9b578fda731177705b453e339 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sun, 13 Feb 2022 08:53:39 +0000
|
||||
Subject: [PATCH 88/90] WIP: drm/meson/meson_vclk: fix VIC alternate timings
|
||||
Subject: [PATCH 51/75] WIP: drm/meson/meson_vclk: fix VIC alternate timings
|
||||
|
||||
4K VP9 media with 59.94 fractional refresh rate refuses to play with
|
||||
the screen going blank (no sync) and the following error reported in
|
@ -1,69 +0,0 @@
|
||||
From 7d9d88da9a294a6475d62a3857b7d2d5cc3d4fd5 Mon Sep 17 00:00:00 2001
|
||||
From: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
Date: Thu, 10 Mar 2022 06:07:27 +0000
|
||||
Subject: [PATCH 52/90] FROMLIST(v2): ASoC: meson: aiu: fix duplicate debugfs
|
||||
directory error
|
||||
|
||||
On a S905W-based system I get the following error:
|
||||
debugfs: Directory 'c1105400.audio-controller' with parent 'P230-Q200' already present!
|
||||
|
||||
Turned out that multiple components having the same name triggers this
|
||||
error in soc_init_component_debugfs(). With the patch the error is gone
|
||||
and that's the debugfs entries.
|
||||
|
||||
/sys/kernel/debug/asoc/P230-Q200/acodec:c1105400.audio-controller
|
||||
/sys/kernel/debug/asoc/P230-Q200/hdmi:c1105400.audio-controller
|
||||
/sys/kernel/debug/asoc/P230-Q200/cpu:c1105400.audio-controller
|
||||
|
||||
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
---
|
||||
sound/soc/meson/aiu-acodec-ctrl.c | 3 +++
|
||||
sound/soc/meson/aiu-codec-ctrl.c | 3 +++
|
||||
sound/soc/meson/aiu.c | 3 +++
|
||||
3 files changed, 9 insertions(+)
|
||||
|
||||
diff --git a/sound/soc/meson/aiu-acodec-ctrl.c b/sound/soc/meson/aiu-acodec-ctrl.c
|
||||
index 27a6d3259c50..22e181646bc3 100644
|
||||
--- a/sound/soc/meson/aiu-acodec-ctrl.c
|
||||
+++ b/sound/soc/meson/aiu-acodec-ctrl.c
|
||||
@@ -193,6 +193,9 @@ static const struct snd_soc_component_driver aiu_acodec_ctrl_component = {
|
||||
.of_xlate_dai_name = aiu_acodec_of_xlate_dai_name,
|
||||
.endianness = 1,
|
||||
.non_legacy_dai_naming = 1,
|
||||
+#ifdef CONFIG_DEBUG_FS
|
||||
+ .debugfs_prefix = "acodec",
|
||||
+#endif
|
||||
};
|
||||
|
||||
int aiu_acodec_ctrl_register_component(struct device *dev)
|
||||
diff --git a/sound/soc/meson/aiu-codec-ctrl.c b/sound/soc/meson/aiu-codec-ctrl.c
|
||||
index 2b8575491aeb..225b330b732c 100644
|
||||
--- a/sound/soc/meson/aiu-codec-ctrl.c
|
||||
+++ b/sound/soc/meson/aiu-codec-ctrl.c
|
||||
@@ -192,6 +192,9 @@ static const struct snd_soc_component_driver aiu_hdmi_ctrl_component = {
|
||||
.of_xlate_dai_name = aiu_hdmi_of_xlate_dai_name,
|
||||
.endianness = 1,
|
||||
.non_legacy_dai_naming = 1,
|
||||
+#ifdef CONFIG_DEBUG_FS
|
||||
+ .debugfs_prefix = "hdmi",
|
||||
+#endif
|
||||
};
|
||||
|
||||
int aiu_hdmi_ctrl_register_component(struct device *dev)
|
||||
diff --git a/sound/soc/meson/aiu.c b/sound/soc/meson/aiu.c
|
||||
index d299a70db7e5..88e611e64d14 100644
|
||||
--- a/sound/soc/meson/aiu.c
|
||||
+++ b/sound/soc/meson/aiu.c
|
||||
@@ -103,6 +103,9 @@ static const struct snd_soc_component_driver aiu_cpu_component = {
|
||||
.pointer = aiu_fifo_pointer,
|
||||
.probe = aiu_cpu_component_probe,
|
||||
.remove = aiu_cpu_component_remove,
|
||||
+#ifdef CONFIG_DEBUG_FS
|
||||
+ .debugfs_prefix = "cpu",
|
||||
+#endif
|
||||
};
|
||||
|
||||
static struct snd_soc_dai_driver aiu_cpu_dai_drv[] = {
|
||||
--
|
||||
2.17.1
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 795fad491189f7fd6034d6d639602119a4e60755 Mon Sep 17 00:00:00 2001
|
||||
From c0bb4618f0a7c54d8c0787486e3b86c51d99fe0b Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Tue, 17 Aug 2021 16:16:43 +0000
|
||||
Subject: [PATCH 68/90] WIP: arm64: dts: meson: radxa-zero: add support for the
|
||||
Subject: [PATCH 52/75] WIP: arm64: dts: meson: radxa-zero: add support for the
|
||||
usb type-c controller
|
||||
|
||||
Radxa Zero uses an FUSB302 type-c controller, so lets enable it.
|
@ -1,7 +1,7 @@
|
||||
From 9c2db9e795f4d73e78a02f6c8cb313e6bcf34f7e Mon Sep 17 00:00:00 2001
|
||||
From 950b0bf5323a1d098df793f5e0a167c52ce586c9 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 16 Feb 2022 07:27:07 +0000
|
||||
Subject: [PATCH 69/90] WIP: dt-bindings: arm: amlogic: add support for Radxa
|
||||
Subject: [PATCH 53/75] WIP: dt-bindings: arm: amlogic: add support for Radxa
|
||||
Zero2
|
||||
|
||||
The Radxa Zero2 is a small form-factor SBC using the Amlogic
|
||||
@ -13,7 +13,7 @@ Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
index 05365bb50b29..d069aecabeb3 100644
|
||||
index 61a6cabb375b..bf32821281b1 100644
|
||||
--- a/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
+++ b/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
@@ -152,6 +152,7 @@ properties:
|
@ -1,7 +1,7 @@
|
||||
From aadb6d12609309106f6ab7a56face84c19859796 Mon Sep 17 00:00:00 2001
|
||||
From 534da1209ca0fe47367b6180e1ec823fd26cdfe1 Mon Sep 17 00:00:00 2001
|
||||
From: Yuntian Zhang <yt@radxa.com>
|
||||
Date: Fri, 14 Jan 2022 15:50:02 +0000
|
||||
Subject: [PATCH 70/90] WIP: arm64: dts: meson: add support for Radxa Zero2
|
||||
Subject: [PATCH 54/75] WIP: arm64: dts: meson: add support for Radxa Zero2
|
||||
|
||||
Radxa Zero2 is a small form factor SBC based on the Amlogic A311D
|
||||
chipset that ships in a number of eMMC configurations:
|
||||
@ -26,17 +26,17 @@ Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
index 383e9fb49852..d606270f7db2 100644
|
||||
index 3e3c48f53b02..1afc3366c7ee 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/Makefile
|
||||
+++ b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
@@ -12,6 +12,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-khadas-vim3.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-s922x-khadas-vim3.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2.dtb
|
||||
@@ -12,6 +12,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking-pro.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2-plus.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-g12b-radxa-zero2.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-s922x-khadas-vim3.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-ugoos-am6.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-kii-pro.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nanopi-k2.dtb
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts
|
||||
new file mode 100644
|
||||
index 000000000000..fefa6f2b7abf
|
@ -1,7 +1,7 @@
|
||||
From 810b78077ca7574f999e2fa68753778c26dbcdf2 Mon Sep 17 00:00:00 2001
|
||||
From 33938c18450ada5caa78ff097df932049cb7fc96 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Fri, 15 May 2020 07:52:47 +0000
|
||||
Subject: [PATCH 71/90] WIP: arm64: dts: meson: add audio playback to p201
|
||||
Subject: [PATCH 55/75] WIP: arm64: dts: meson: add audio playback to p201
|
||||
|
||||
Add initial audio support limited to HDMI i2s.
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 9d33954e9242785f5baf611b45f2f5a4af43a446 Mon Sep 17 00:00:00 2001
|
||||
From 294deb40792a87e9d2f0881bb0ba5bb6b10ff05a Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Fri, 15 May 2020 07:56:15 +0000
|
||||
Subject: [PATCH 72/90] WIP: arm64: dts: meson: add audio playback to p200
|
||||
Subject: [PATCH 56/75] WIP: arm64: dts: meson: add audio playback to p200
|
||||
|
||||
Add initial support limited to HDMI i2s and SPDIF (LPCM).
|
||||
|
@ -1,7 +1,7 @@
|
||||
From cd4ccfa569b37714d3bb0da970018c7201480811 Mon Sep 17 00:00:00 2001
|
||||
From 7f6100e93b3fe6c2afb8086cbe5e09d897b5a6e5 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sun, 17 May 2020 05:00:55 +0000
|
||||
Subject: [PATCH 73/90] WIP: arm64: dts: meson: add audio playback to u200
|
||||
Subject: [PATCH 57/75] WIP: arm64: dts: meson: add audio playback to u200
|
||||
|
||||
Add initial support limited to HDMI i2s and SPDIF (LPCM).
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 91ffd9ae8a3465528cdd8ea37afd28537121159c Mon Sep 17 00:00:00 2001
|
||||
From 085a0ee83c3f23cc07c347925923ed479aa3b72c Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sat, 27 Nov 2021 13:50:06 +0000
|
||||
Subject: [PATCH 74/90] WIP: arm64: dts: meson: add Headphone output to Beelink
|
||||
Subject: [PATCH 58/75] WIP: arm64: dts: meson: add Headphone output to Beelink
|
||||
GT-King
|
||||
|
||||
Add support for the Headphone audio DAC built-in to the S922X chip.
|
@ -1,7 +1,7 @@
|
||||
From 530878a80414883138169088a12f002d30d5b0c1 Mon Sep 17 00:00:00 2001
|
||||
From 4b6f1b8abba54458afcb681d10af83de55d27914 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sat, 29 Feb 2020 15:13:02 +0000
|
||||
Subject: [PATCH 75/90] WIP: dt-bindings: arm: amlogic: add support for the
|
||||
Subject: [PATCH 59/75] WIP: dt-bindings: arm: amlogic: add support for the
|
||||
Tanix TX5 Max
|
||||
|
||||
The Oranth (Tanix) TX5 Max is based on the Amlogic U200 reference
|
||||
@ -13,7 +13,7 @@ Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
index d069aecabeb3..56fe7d25b892 100644
|
||||
index bf32821281b1..549715524184 100644
|
||||
--- a/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
+++ b/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
@@ -144,6 +144,7 @@ properties:
|
@ -1,7 +1,7 @@
|
||||
From ee948717cbc1d5adbe2e056d06a50761f46fba0d Mon Sep 17 00:00:00 2001
|
||||
From e5377c6a08722bb2fc4e782615ca5b4b0a58ff40 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sun, 20 Oct 2019 04:06:59 +0000
|
||||
Subject: [PATCH 76/90] WIP: arm64: dts: meson: add support for the Tanix TX5
|
||||
Subject: [PATCH 60/75] WIP: arm64: dts: meson: add support for the Tanix TX5
|
||||
Max
|
||||
|
||||
The Tanix TX5 Max is based on the Amlogic U200 reference design
|
||||
@ -26,17 +26,17 @@ Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
create mode 100644 arch/arm64/boot/dts/amlogic/meson-g12a-tanix-tx5max.dts
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
index d606270f7db2..0bc5a6d1374e 100644
|
||||
index 1afc3366c7ee..17016f4fd4ef 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/Makefile
|
||||
+++ b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
@@ -3,6 +3,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-axg-s400.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j100.dtb
|
||||
@@ -4,6 +4,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j100.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-axg-s400.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12a-radxa-zero.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12a-sei510.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-g12a-tanix-tx5max.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12a-u200.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12a-x96-max.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gsking-x.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-khadas-vim3.dtb
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-tanix-tx5max.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-tanix-tx5max.dts
|
||||
new file mode 100644
|
||||
index 000000000000..0e55427ca398
|
@ -1,7 +1,7 @@
|
||||
From 5c0f2fc10f7b82453281aacdbb8f750384829b10 Mon Sep 17 00:00:00 2001
|
||||
From d0d0132c7c50539b69621b512c2266d3d1f27f5f Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Mon, 21 Oct 2019 03:58:06 +0000
|
||||
Subject: [PATCH 77/90] WIP: arm64: dts: meson: add multiple MeCool device
|
||||
Subject: [PATCH 61/75] WIP: arm64: dts: meson: add multiple MeCool device
|
||||
trees
|
||||
|
||||
This adds initial device trees for a range of MeCool devices based on various
|
||||
@ -11,13 +11,13 @@ prepares for the addition of DVB support in the future.
|
||||
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/Makefile | 5 +++
|
||||
arch/arm64/boot/dts/amlogic/Makefile | 11 ++++++
|
||||
.../dts/amlogic/meson-gxbb-mecool-ki-plus.dts | 34 +++++++++++++++++++
|
||||
.../dts/amlogic/meson-gxbb-mecool-kii-pro.dts | 34 +++++++++++++++++++
|
||||
.../meson-gxl-s905d-mecool-ki-plus.dts | 21 ++++++++++++
|
||||
.../amlogic/meson-gxl-s905d-mecool-ki-pro.dts | 16 +++++++++
|
||||
.../meson-gxl-s905d-mecool-m8s-plus.dts | 16 +++++++++
|
||||
6 files changed, 126 insertions(+)
|
||||
6 files changed, 132 insertions(+)
|
||||
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxbb-mecool-ki-plus.dts
|
||||
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxbb-mecool-kii-pro.dts
|
||||
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s905d-mecool-ki-plus.dts
|
||||
@ -25,11 +25,11 @@ Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxl-s905d-mecool-m8s-plus.dts
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
index 0bc5a6d1374e..8607056c8a60 100644
|
||||
index 17016f4fd4ef..ae5130fd4a7a 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/Makefile
|
||||
+++ b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
@@ -16,6 +16,8 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2-plus.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-radxa-zero2.dtb
|
||||
@@ -17,6 +17,8 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12b-radxa-zero2.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-s922x-khadas-vim3.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-ugoos-am6.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-kii-pro.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-mecool-ki-plus.dtb
|
||||
@ -37,10 +37,10 @@ index 0bc5a6d1374e..8607056c8a60 100644
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nanopi-k2.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nexbox-a95x.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-odroidc2.dtb
|
||||
@@ -33,7 +35,10 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc-v2.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb
|
||||
@@ -30,12 +32,21 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-wetek-play2.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s805x-libretech-ac.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s805x-p241.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-libretech-pc.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-mecool-ki-plus.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-mecool-ki-pro.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-mecool-kii-pro.dtb
|
||||
@ -48,6 +48,17 @@ index 0bc5a6d1374e..8607056c8a60 100644
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p230.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p231.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-phicomm-n1.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-sml5442tw.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-vero4k-plus.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-hwacom-amazetv.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-khadas-vim.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc-v2.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-jethome-jethub-j80.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-p281.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-tx3-mini.dtb
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-mecool-ki-plus.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-mecool-ki-plus.dts
|
||||
new file mode 100644
|
||||
index 000000000000..cb422633a8f9
|
@ -1,7 +1,7 @@
|
||||
From be308e6dcb61298b822da615cdcd239efe74cbb7 Mon Sep 17 00:00:00 2001
|
||||
From 37d76038f757c93ca0d7d92412c093fc719ebf7e Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sun, 11 Apr 2021 05:50:13 +0000
|
||||
Subject: [PATCH 78/90] WIP: dt-bindings: arm: amlogic: add support for Minix
|
||||
Subject: [PATCH 62/75] WIP: dt-bindings: arm: amlogic: add support for Minix
|
||||
NEO-U1
|
||||
|
||||
The Minix NEO-U1 is an Android STB based on the Amlogic P200 (GXBB)
|
||||
@ -13,7 +13,7 @@ Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
index 56fe7d25b892..5ae242fd767b 100644
|
||||
index 549715524184..4a9334f626f9 100644
|
||||
--- a/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
+++ b/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
@@ -58,6 +58,7 @@ properties:
|
@ -1,7 +1,7 @@
|
||||
From 09b79df08522547ca9bf79dde6b45abfc39a9b2c Mon Sep 17 00:00:00 2001
|
||||
From 2af0a5558530c91e8c8fed11467da976f06f67ec Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sun, 11 Apr 2021 05:52:14 +0000
|
||||
Subject: [PATCH 79/90] WIP: arm64: dts: meson: add initial device-tree for
|
||||
Subject: [PATCH 63/75] WIP: arm64: dts: meson: add initial device-tree for
|
||||
Minix NEO-U1
|
||||
|
||||
The Minix NEO-U1 is an Android STB based on the Amlogic P200 (GXBB)
|
||||
@ -30,10 +30,10 @@ Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxbb-minix-neo-u1.dts
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
index 8607056c8a60..4d6bb615d8e3 100644
|
||||
index ae5130fd4a7a..aefd3fb784d8 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/Makefile
|
||||
+++ b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
@@ -18,6 +18,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12b-ugoos-am6.dtb
|
||||
@@ -19,6 +19,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12b-ugoos-am6.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-kii-pro.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-mecool-ki-plus.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-mecool-kii-pro.dtb
|
@ -1,7 +1,7 @@
|
||||
From 2ca5320afed93f431117fb490a2eabde8cbc2574 Mon Sep 17 00:00:00 2001
|
||||
From 318ae4d2828571247e5b49676d0a01ad42c42494 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 8 Dec 2021 15:33:47 +0000
|
||||
Subject: [PATCH 80/90] WIP: media: rc: add keymap for Beelink Mini MXIII
|
||||
Subject: [PATCH 64/75] WIP: media: rc: add keymap for Beelink Mini MXIII
|
||||
remote
|
||||
|
||||
Add a keymap and bindings for the simple IR (NEC) remote used with
|
||||
@ -29,16 +29,16 @@ index d4c541c4b164..ab28159a1768 100644
|
||||
- rc-behold-columbus
|
||||
- rc-budget-ci-old
|
||||
diff --git a/drivers/media/rc/keymaps/Makefile b/drivers/media/rc/keymaps/Makefile
|
||||
index 5fe5c9e1a46d..5dc7e2c0e62a 100644
|
||||
index f513ff5caf4e..f3bf9878d72c 100644
|
||||
--- a/drivers/media/rc/keymaps/Makefile
|
||||
+++ b/drivers/media/rc/keymaps/Makefile
|
||||
@@ -18,6 +18,7 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \
|
||||
@@ -22,6 +22,7 @@ obj-$(CONFIG_RC_MAP) += \
|
||||
rc-avertv-303.o \
|
||||
rc-azurewave-ad-tu700.o \
|
||||
rc-beelink-gs1.o \
|
||||
+ rc-beelink-mxiii.o \
|
||||
rc-behold.o \
|
||||
rc-behold-columbus.o \
|
||||
rc-behold.o \
|
||||
rc-budget-ci-old.o \
|
||||
diff --git a/drivers/media/rc/keymaps/rc-beelink-mxiii.c b/drivers/media/rc/keymaps/rc-beelink-mxiii.c
|
||||
new file mode 100644
|
@ -1,7 +1,7 @@
|
||||
From 44518805812a8e8d1fec4699c102359d4684eeb7 Mon Sep 17 00:00:00 2001
|
||||
From 0a079e9c7149766df7cfa6cbd94d2d26c2d5a0cf Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 8 Dec 2021 15:28:50 +0000
|
||||
Subject: [PATCH 81/90] WIP: dt-bindings: arm: amlogic: add support for Beelink
|
||||
Subject: [PATCH 65/75] WIP: dt-bindings: arm: amlogic: add support for Beelink
|
||||
Mini MXIII
|
||||
|
||||
The Beelink Mini MXIII is an Android STB based on the Amlogic P200
|
||||
@ -13,7 +13,7 @@ Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/arm/amlogic.yaml b/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
index 5ae242fd767b..7bf98a03a999 100644
|
||||
index 4a9334f626f9..eb360bf4789a 100644
|
||||
--- a/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
+++ b/Documentation/devicetree/bindings/arm/amlogic.yaml
|
||||
@@ -56,6 +56,7 @@ properties:
|
@ -1,7 +1,7 @@
|
||||
From ebeac16a213b495bb6a522a49d8de6626b6792d0 Mon Sep 17 00:00:00 2001
|
||||
From 573b07e5fd5d0f97666594496a20528f8c838bb4 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 8 Dec 2021 15:26:00 +0000
|
||||
Subject: [PATCH 82/90] WIP: arm64: dts: meson: add support for Beelink Mini
|
||||
Subject: [PATCH 66/75] WIP: arm64: dts: meson: add support for Beelink Mini
|
||||
MXIII
|
||||
|
||||
This is a GXBB board that ships in two variants, one with
|
||||
@ -15,11 +15,11 @@ Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
create mode 100644 arch/arm64/boot/dts/amlogic/meson-gxbb-beelink-mini-mxiii.dts
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
index 4d6bb615d8e3..8014a6a43ba7 100644
|
||||
index aefd3fb784d8..bb21e1eb187d 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/Makefile
|
||||
+++ b/arch/arm64/boot/dts/amlogic/Makefile
|
||||
@@ -16,6 +16,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2-plus.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-radxa-zero2.dtb
|
||||
@@ -17,6 +17,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-g12b-radxa-zero2.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-s922x-khadas-vim3.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-ugoos-am6.dtb
|
||||
dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-kii-pro.dtb
|
||||
+dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-beelink-mini-mxiii.dtb
|
@ -1,7 +1,7 @@
|
||||
From c917ffe10b62477459db1348925324e82710aa33 Mon Sep 17 00:00:00 2001
|
||||
From 55cc90964032d3d15748ea218be70bd36c124478 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sun, 16 Jan 2022 08:48:02 +0000
|
||||
Subject: [PATCH 83/90] WIP: media: rc: add keymap for MeCool M8S Pro W remote
|
||||
Subject: [PATCH 67/75] WIP: media: rc: add keymap for MeCool M8S Pro W remote
|
||||
|
||||
Add a keymap and bindings for the simple IR (NEC) remote used with
|
||||
the MeCool M8S Pro W Android STB device.
|
||||
@ -9,10 +9,10 @@ the MeCool M8S Pro W Android STB device.
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
---
|
||||
.../devicetree/bindings/media/rc.yaml | 1 +
|
||||
drivers/media/rc/keymaps/Makefile | 1 +
|
||||
drivers/media/rc/keymaps/Makefile | 2 +
|
||||
.../media/rc/keymaps/rc-mecool-m8s-pro-w.c | 75 +++++++++++++++++++
|
||||
include/media/rc-map.h | 1 +
|
||||
4 files changed, 78 insertions(+)
|
||||
4 files changed, 79 insertions(+)
|
||||
create mode 100644 drivers/media/rc/keymaps/rc-mecool-m8s-pro-w.c
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/media/rc.yaml b/Documentation/devicetree/bindings/media/rc.yaml
|
||||
@ -28,16 +28,17 @@ index ab28159a1768..4bad220cb645 100644
|
||||
- rc-medion-x10-digitainer
|
||||
- rc-medion-x10-or2x
|
||||
diff --git a/drivers/media/rc/keymaps/Makefile b/drivers/media/rc/keymaps/Makefile
|
||||
index 5dc7e2c0e62a..65be4a05d2f9 100644
|
||||
index f3bf9878d72c..ef48a6bbeca4 100644
|
||||
--- a/drivers/media/rc/keymaps/Makefile
|
||||
+++ b/drivers/media/rc/keymaps/Makefile
|
||||
@@ -70,6 +70,7 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \
|
||||
@@ -75,6 +75,8 @@ obj-$(CONFIG_RC_MAP) += \
|
||||
rc-manli.o \
|
||||
rc-mecool-kii-pro.o \
|
||||
rc-mecool-kiii-pro.o \
|
||||
rc-mecool-kii-pro.o \
|
||||
+ rc-mecool-m8s-pro-w.o \
|
||||
rc-medion-x10.o \
|
||||
+ rc-medion-x10.o \
|
||||
rc-medion-x10-digitainer.o \
|
||||
rc-medion-x10.o \
|
||||
rc-medion-x10-or2x.o \
|
||||
diff --git a/drivers/media/rc/keymaps/rc-mecool-m8s-pro-w.c b/drivers/media/rc/keymaps/rc-mecool-m8s-pro-w.c
|
||||
new file mode 100644
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user