mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
linux: update Amlogic Linux 5.17.y patches
This commit is contained in:
parent
9390f49b64
commit
83f349a48b
@ -16,8 +16,8 @@ PKG_PATCH_DIRS="${LINUX}"
|
||||
|
||||
case "${LINUX}" in
|
||||
amlogic)
|
||||
PKG_VERSION="754e0b0e35608ed5206d6a67a791563c631cec07" # 5.17-rc4
|
||||
PKG_SHA256="5ac1f1703702e2ca3134d5fb8b2f082da221be17b5487ca441f0d1f0ffcdb775"
|
||||
PKG_VERSION="f443e374ae131c168a065ea1748feac6b2e76613" # 5.17.0
|
||||
PKG_SHA256="23baf1a7569ca1b828965ce8af07a412f2497a1530ad8307311edf01346d89b7"
|
||||
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 4290b6bedb5220144768bb5c695d236eb885483b Mon Sep 17 00:00:00 2001
|
||||
From 4b6096bb3fd5bdc139a45e022e4a2380ea919dea 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/79] HACK: set meson-gx cma pool to 896MB
|
||||
Subject: [PATCH 01/90] 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 82c334be5f5406c347711369167b2459f2d911d3 Mon Sep 17 00:00:00 2001
|
||||
From 18586e3d94827f63903c4cd596a0a06134261c00 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/79] HACK: set meson-g12 cma pool to 896MB
|
||||
Subject: [PATCH 02/90] HACK: set meson-g12 cma pool to 896MB
|
||||
|
||||
This change sets the CMA pool to a larger 896MB! value for vdec use
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From cdfa35a1f50bd5d68dafa26ae2782d9f6bf9da5d Mon Sep 17 00:00:00 2001
|
||||
From 5c9793b46115c2fd774678de7ff5efd7d6ae8d72 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/79] HACK: arm64: fix Kodi sysinfo CPU information
|
||||
Subject: [PATCH 03/90] HACK: arm64: fix Kodi sysinfo CPU information
|
||||
|
||||
This allows the CPU information to show in the Kodi sysinfo screen, e.g.
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 497f3f78dca6ccc974eb98e959f38b778ff76ebd Mon Sep 17 00:00:00 2001
|
||||
From 33f05e843b3afe9c0effb91eae76ab42c114ad88 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/79] HACK: arm64: dts: meson: add LibreELEC device-tree
|
||||
Subject: [PATCH 04/90] HACK: arm64: dts: meson: add LibreELEC device-tree
|
||||
overlays for Amlogic
|
||||
|
||||
This commit implements a series of device-tree overlays used with LibreELEC
|
||||
|
@ -1,7 +1,7 @@
|
||||
From e1296fa0cb4e30e9e14edfc99005fc1d2af9109d Mon Sep 17 00:00:00 2001
|
||||
From e0252efa9190de31a2fc98eed28b273428a3fe36 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/79] HACK: arm64: meson: add Amlogic Meson GX PM Suspend
|
||||
Subject: [PATCH 05/90] 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 7e7c283e3315df28a9176b48752d390520519b05 Mon Sep 17 00:00:00 2001
|
||||
From 9c2b8d82e36bf5ce932e6561d13adf5c7c5d367f 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/79] HACK: arm64: dts: meson: add support for GX PM and
|
||||
Subject: [PATCH 06/90] 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 da9fa4dff3dd9f2cee14ce7151e9ff33bf874343 Mon Sep 17 00:00:00 2001
|
||||
From 5ff8dfecb282089107d1bd3da6b612c5294fe0cb 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/79] HACK: arm64: dts: meson: add rtc/vrtc aliases to Khadas
|
||||
Subject: [PATCH 07/90] 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 97bf74fe2a0008384d6c6bf6c7d39f86b641330d Mon Sep 17 00:00:00 2001
|
||||
From 293a4281d04100f1a0ab8ced46a45fc557f6e130 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/79] HACK: arm64: dts: meson: add rtc/vrtc aliases to Khadas
|
||||
Subject: [PATCH 08/90] 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 fb0163661c5f464ef15cdc975bb0b17a0cc2013b Mon Sep 17 00:00:00 2001
|
||||
From 2d353b2a41bc5f7848c9b57ccd62e13ffe36d1db 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/79] HACK: arm64: dts: meson: add rtc/vrtc aliases to Minix
|
||||
Subject: [PATCH 09/90] HACK: arm64: dts: meson: add rtc/vrtc aliases to Minix
|
||||
NEO U9-H
|
||||
|
||||
Add node aliases to prevent meson-vrtc from claiming /dev/rtc0
|
||||
|
@ -1,7 +1,7 @@
|
||||
From ea43b475999dd27ee0d6d3dfe4a93a110564ad9e Mon Sep 17 00:00:00 2001
|
||||
From 790f6b3e8f35b76bb45f011046b680108f6cae87 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/79] HACK: usb: hub: disable autosuspend for Genesys Logic
|
||||
Subject: [PATCH 10/90] HACK: usb: hub: disable autosuspend for Genesys Logic
|
||||
Hubs
|
||||
|
||||
Disable autosuspend in Genesys Logic hubs to allow USB devices on the
|
||||
|
@ -1,7 +1,7 @@
|
||||
From a7e8bcc7ad1dabbb9ecb888ccd35b6f8805817f0 Mon Sep 17 00:00:00 2001
|
||||
From 4d11a956070513a173dd9fd0d6e981918a6331e4 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/79] HACK: of: partial revert of fdt.c changes
|
||||
Subject: [PATCH 11/90] 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:
|
||||
@ -14,7 +14,7 @@ Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
1 file changed, 9 deletions(-)
|
||||
|
||||
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
|
||||
index ad85ff6474ff..6af91acf0892 100644
|
||||
index ec315b060cd5..15e9c0c2a2c6 100644
|
||||
--- a/drivers/of/fdt.c
|
||||
+++ b/drivers/of/fdt.c
|
||||
@@ -481,15 +481,6 @@ static int __init early_init_dt_reserve_memory_arch(phys_addr_t base,
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 3d6a62db16253f725f40a78d948a79c8c6348ddd Mon Sep 17 00:00:00 2001
|
||||
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/79] FROMGIT(5.18): arm64: dts: meson: add common SM1 ac2xx
|
||||
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
|
||||
|
@ -1,7 +1,7 @@
|
||||
From bc1a7ffff53ede718e540daf4c7a5fc7d9e4f33a Mon Sep 17 00:00:00 2001
|
||||
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/79] FROMGIT(5.18): dt-bindings: arm: amlogic: add X96-AIR
|
||||
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
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 153f02ce3bc582ce848aace67e312a091c40a101 Mon Sep 17 00:00:00 2001
|
||||
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/79] FROMGIT(5.18): arm64: dts: meson: add initial
|
||||
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
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 49fb9e342c99911bef56d0770aedab7a0a7bfaac Mon Sep 17 00:00:00 2001
|
||||
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/79] FROMGIT(5.18): dt-bindings: vendor-prefixes: add cyx
|
||||
Subject: [PATCH 15/90] FROMGIT(5.18): dt-bindings: vendor-prefixes: add cyx
|
||||
prefix
|
||||
|
||||
Shenzhen CYX Industrial Co., Ltd are a manufacturer of Android
|
||||
|
@ -1,7 +1,7 @@
|
||||
From e9cdf2e81781158023f065f4a83a28ac2f7a1d47 Mon Sep 17 00:00:00 2001
|
||||
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/79] FROMGIT(5.18): dt-bindings: arm: amlogic: add
|
||||
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
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 1c140988f539c40738320b11b54b8a1542025fb1 Mon Sep 17 00:00:00 2001
|
||||
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/79] FROMGIT(5.18): arm64: dts: meson: add initial
|
||||
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
|
||||
|
@ -1,7 +1,7 @@
|
||||
From ecf2e316cd2ee056bfec79a4bee60e4bff2c4b37 Mon Sep 17 00:00:00 2001
|
||||
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/79] FROMGIT(5.18): dt-bindings: vendor-prefixes: add
|
||||
Subject: [PATCH 18/90] FROMGIT(5.18): dt-bindings: vendor-prefixes: add
|
||||
haochuangyi prefix
|
||||
|
||||
Shenzhen Haochuangyi Technology Co.,Ltd are a manufacturer of Android
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 24420b9ed027ca126fee4983efab5d9524e26e00 Mon Sep 17 00:00:00 2001
|
||||
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/79] FROMGIT(5.18): dt-bindings: arm: amlogic: add H96-Max
|
||||
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.
|
||||
|
@ -1,7 +1,7 @@
|
||||
From b7f9a33840d2fe071c40ad5bcc76d08e9064f935 Mon Sep 17 00:00:00 2001
|
||||
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/79] FROMGIT(5.18): arm64: dts: meson: add initial
|
||||
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
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 252f42ad7f86eb216bd3210841ae19236391303e Mon Sep 17 00:00:00 2001
|
||||
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/79] FROMGIT(5.18): arm64: dts: meson-sm1: add spdifin
|
||||
Subject: [PATCH 21/90] FROMGIT(5.18): arm64: dts: meson-sm1: add spdifin
|
||||
spdifout nodes
|
||||
|
||||
Add spdifin spdifout nodes for Amlogic SM1 SoCs.
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 58311e9ff339cadb745aa8a0a247d70228e4c8a2 Mon Sep 17 00:00:00 2001
|
||||
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/79] FROMGIT(5.18): arm64: dts: meson-g12-common: add more
|
||||
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.
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 5ebb2c1be918277a5ae6fbc35a7f518622887b22 Mon Sep 17 00:00:00 2001
|
||||
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/79] FROMGIT(5.18): arm64: dts: meson-g12-common: add
|
||||
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
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 75b9c8828a1a9daa05876beb24b67b9098e22487 Mon Sep 17 00:00:00 2001
|
||||
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 41/79] FROMLIST(v2): dt-bindings: vendor-prefixes: add osmc
|
||||
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
|
@ -1,7 +1,7 @@
|
||||
From 9f243093662b21cd1f59c19744b2f546479f295c Mon Sep 17 00:00:00 2001
|
||||
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 42/79] FROMLIST(v2): dt-bindings: arm: amlogic: add Vero 4K+
|
||||
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
|
@ -1,7 +1,7 @@
|
||||
From 5ebb2556c99e6422301d613a0563aaa1a0842c47 Mon Sep 17 00:00:00 2001
|
||||
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 43/79] FROMLIST(v2): arm64: dts: meson: add support for OSMC
|
||||
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)
|
@ -1,44 +0,0 @@
|
||||
From 1d5cf3dc57fb3712bba9857eadb25633918fb816 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 26/79] 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
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 7b58e8e6c6527fcfbfcf66ad361d3c808d9c7dc3 Mon Sep 17 00:00:00 2001
|
||||
From 712edc341073c350a11658186609eafd292dbe8a 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 24/79] FROMLIST(v1): ASoC: meson: aiu: Fix HDMI codec control
|
||||
Subject: [PATCH 27/90] FROMLIST(v1): ASoC: meson: aiu: Fix HDMI codec control
|
||||
selection
|
||||
|
||||
The HDMI controllers on Amlogic Meson SoCs which use the AIU
|
@ -1,7 +1,7 @@
|
||||
From 506b0130f9ede05cfb613c8534579af29b78561d Mon Sep 17 00:00:00 2001
|
||||
From 4f925789d0713c48deb5067187c7e5acba397054 Mon Sep 17 00:00:00 2001
|
||||
From: David Heidelberg <david@ixit.cz>
|
||||
Date: Sat, 27 Nov 2021 07:23:35 +0000
|
||||
Subject: [PATCH 25/79] FROMLIST(v1): arm64: dts: meson: make dts use gpio-fan
|
||||
Subject: [PATCH 28/90] FROMLIST(v1): arm64: dts: meson: make dts use gpio-fan
|
||||
matrix instead of array
|
||||
|
||||
No functional changes.
|
@ -1,34 +1,44 @@
|
||||
From 11dd0d3370f79c6cc9c585093b2df672b20fdc23 Mon Sep 17 00:00:00 2001
|
||||
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:32:18 +0000
|
||||
Subject: [PATCH 29/79] FROMLIST(v1): pwm: meson: Drop always false check from
|
||||
.apply()
|
||||
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
|
||||
|
||||
The pwm core only calls the apply callback with a valid state pointer,
|
||||
so don't repeat this check already done in the core.
|
||||
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 | 3 ---
|
||||
1 file changed, 3 deletions(-)
|
||||
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 908e314c7c00..57112f438c6d 100644
|
||||
index 3cf3bcf5ddfc..be3c806b57e4 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;
|
||||
@@ -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;
|
||||
|
||||
- if (!state)
|
||||
- return -EINVAL;
|
||||
- channel = pwm_get_chip_data(pwm);
|
||||
- if (channel)
|
||||
- return 0;
|
||||
-
|
||||
if (!state->enabled) {
|
||||
if (state->polarity == PWM_POLARITY_INVERSED) {
|
||||
/*
|
||||
- channel = &meson->channels[pwm->hwpwm];
|
||||
-
|
||||
if (channel->clk_parent) {
|
||||
err = clk_set_parent(channel->clk, channel->clk_parent);
|
||||
if (err < 0) {
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From d2007d6bcc68b53a741eea6778a5eb2f6fdf9270 Mon Sep 17 00:00:00 2001
|
||||
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 27/79] FROMLIST(v1): pwm: meson: Drop useless check for
|
||||
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
|
@ -1,7 +1,7 @@
|
||||
From 84d35c23528d61ef3b3be3de535aa91880cb8485 Mon Sep 17 00:00:00 2001
|
||||
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 28/79] FROMLIST(v1): pwm: meson: Simplify duplicated
|
||||
Subject: [PATCH 31/90] FROMLIST(v1): pwm: meson: Simplify duplicated
|
||||
per-channel tracking
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
@ -0,0 +1,34 @@
|
||||
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
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 4131d0c32f37f848963477482ee32f28deefd06b Mon Sep 17 00:00:00 2001
|
||||
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 30/79] FROMLIST(v4): phy: amlogic: phy-meson-gxl-usb2: fix
|
||||
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
|
@ -1,7 +1,7 @@
|
||||
From e746227557414e6ca37c1379e4c4c8d1e0ebe06e Mon Sep 17 00:00:00 2001
|
||||
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 31/79] FROMLIST(v4): phy: amlogic: meson8b-usb2: Use
|
||||
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
|
@ -1,7 +1,7 @@
|
||||
From 51a05050b15b4985ecf9491eec1f6af7764d611b Mon Sep 17 00:00:00 2001
|
||||
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 32/79] FROMLIST(v4): phy: amlogic: meson8b-usb2: fix shared
|
||||
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
|
@ -1,7 +1,7 @@
|
||||
From 95e3fbc0849f895a43321954af29b77f1c38b33d Mon Sep 17 00:00:00 2001
|
||||
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 33/79] FROMLIST(v2): media: v4l2-mem2mem: Apply
|
||||
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
|
@ -1,7 +1,7 @@
|
||||
From 1a25371cdc291eb3beabac1af4537cbbd4ead9c6 Mon Sep 17 00:00:00 2001
|
||||
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 34/79] FROMLIST(v1): pinctrl: meson-g12a: add more pwm_f
|
||||
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.
|
@ -1,7 +1,7 @@
|
||||
From 64c232731c937df1e049c317ffccb416d90a8cc3 Mon Sep 17 00:00:00 2001
|
||||
From b83c8168c58ccb96f92a4b6ecf1b8b7483fcced3 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 35/79] FROMLIST(v1): mmc: meson-gx: fix deferred probing
|
||||
Subject: [PATCH 38/90] 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
|
||||
@ -16,10 +16,10 @@ Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c
|
||||
index 8f36536cb1b6..c765653ee4d0 100644
|
||||
index 58ab9d90bc8b..1a11a4bf4d4f 100644
|
||||
--- a/drivers/mmc/host/meson-gx-mmc.c
|
||||
+++ b/drivers/mmc/host/meson-gx-mmc.c
|
||||
@@ -1182,8 +1182,8 @@ static int meson_mmc_probe(struct platform_device *pdev)
|
||||
@@ -1183,8 +1183,8 @@ static int meson_mmc_probe(struct platform_device *pdev)
|
||||
}
|
||||
|
||||
host->irq = platform_get_irq(pdev, 0);
|
@ -1,7 +1,7 @@
|
||||
From 02cfd807efd2a9dee300070c9d1f0cf13b822682 Mon Sep 17 00:00:00 2001
|
||||
From 3484913b5b5322e81b543b53ee4f892941ae5137 Mon Sep 17 00:00:00 2001
|
||||
From: Vyacheslav Bocharov <adeep@lexina.in>
|
||||
Date: Sat, 15 Jan 2022 08:27:14 +0000
|
||||
Subject: [PATCH 36/79] FROMLIST(v3): Bluetooth: btrtl: Add support for
|
||||
Subject: [PATCH 39/90] FROMLIST(v3): Bluetooth: btrtl: Add support for
|
||||
RTL8822C hci_ver 0x08
|
||||
|
||||
Add detection of RTL8822CS controller with hci_ver = 0x08
|
@ -1,7 +1,7 @@
|
||||
From 2ca35b29a7b5bc5b70e19da8e83a2be1abc1ef27 Mon Sep 17 00:00:00 2001
|
||||
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 37/79] FROMLIST(v3): Bluetooth: hci_h5: Add power reset via
|
||||
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.
|
@ -1,7 +1,7 @@
|
||||
From e4893d4507c02d6f266a970d35b35345d320e6e3 Mon Sep 17 00:00:00 2001
|
||||
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 38/79] FROMLIST(v2): arm64: dts: meson: remove CPU opps below
|
||||
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
|
@ -1,7 +1,7 @@
|
||||
From 1556f3e8267a9453acb236832850ef9ab3e2d31c Mon Sep 17 00:00:00 2001
|
||||
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 39/79] FROMLIST(v2): arm64: dts: meson: remove CPU opps below
|
||||
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
|
@ -1,7 +1,7 @@
|
||||
From d6d99aaaf02294a9f07f8e480c12885cd8671f6c Mon Sep 17 00:00:00 2001
|
||||
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 40/79] FROMLIST(v1): drivers: meson: vdec: add VP9 support to
|
||||
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
|
@ -0,0 +1,209 @@
|
||||
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
|
||||
|
@ -0,0 +1,34 @@
|
||||
From 3082b84d01e67e9db1b2933d40657f68ce5ce220 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
|
||||
Micro Electronics
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Assign vendor prefix "titanmec", matching their domain name.
|
||||
|
||||
Acked-by: Rob Herring <robh@kernel.org>
|
||||
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
Signed-off-by: Heiner Kallweit <hkallweit1@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 c1fa95a505e9..c42803885092 100644
|
||||
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
|
||||
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
|
||||
@@ -1225,6 +1225,8 @@ patternProperties:
|
||||
description: Texas Instruments
|
||||
"^tianma,.*":
|
||||
description: Tianma Micro-electronics Co., Ltd.
|
||||
+ "^titanmec,.*":
|
||||
+ description: Shenzhen Titan Micro Electronics Co., Ltd.
|
||||
"^tlm,.*":
|
||||
description: Trusted Logic Mobility
|
||||
"^tmt,.*":
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,113 @@
|
||||
From 3a0ec72e1299b63d6a296bf659c4630ed5cdbe6e 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
|
||||
Electronics TM1628
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Add a YAML schema binding for TM1628 auxdisplay
|
||||
(7/11-segment LED) controller.
|
||||
|
||||
This patch is partially based on previous RFC work from
|
||||
Andreas Färber <afaerber@suse.de>.
|
||||
|
||||
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
---
|
||||
.../bindings/auxdisplay/titanmec,tm1628.yaml | 82 +++++++++++++++++++
|
||||
1 file changed, 82 insertions(+)
|
||||
create mode 100644 Documentation/devicetree/bindings/auxdisplay/titanmec,tm1628.yaml
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/auxdisplay/titanmec,tm1628.yaml b/Documentation/devicetree/bindings/auxdisplay/titanmec,tm1628.yaml
|
||||
new file mode 100644
|
||||
index 000000000000..d9cbbc950aab
|
||||
--- /dev/null
|
||||
+++ b/Documentation/devicetree/bindings/auxdisplay/titanmec,tm1628.yaml
|
||||
@@ -0,0 +1,82 @@
|
||||
+# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
|
||||
+%YAML 1.2
|
||||
+---
|
||||
+$id: http://devicetree.org/schemas/leds/titanmec,tm1628.yaml#
|
||||
+$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
+
|
||||
+title: Titan Micro Electronics TM1628 LED controller
|
||||
+
|
||||
+properties:
|
||||
+ compatible:
|
||||
+ enum:
|
||||
+ - titanmec,tm1628
|
||||
+
|
||||
+ reg:
|
||||
+ maxItems: 1
|
||||
+
|
||||
+ grid:
|
||||
+ description:
|
||||
+ Mapping of display digit position to grid number.
|
||||
+ This implicitly defines the display size.
|
||||
+ $ref: /schemas/types.yaml#/definitions/uint8-array
|
||||
+ minItems: 1
|
||||
+ maxItems: 7
|
||||
+
|
||||
+ segment-mapping:
|
||||
+ description:
|
||||
+ Mapping of 7 segment display segments A-G to bit numbers 1-12.
|
||||
+ $ref: /schemas/types.yaml#/definitions/uint8-array
|
||||
+ minItems: 7
|
||||
+ maxItems: 7
|
||||
+
|
||||
+ "#address-cells":
|
||||
+ const: 2
|
||||
+
|
||||
+ "#size-cells":
|
||||
+ const: 0
|
||||
+
|
||||
+required:
|
||||
+ - compatible
|
||||
+ - reg
|
||||
+
|
||||
+patternProperties:
|
||||
+ "^.*@[1-7],([1-9]|1[0-6])$":
|
||||
+ type: object
|
||||
+ description: |
|
||||
+ Properties for a single LED.
|
||||
+
|
||||
+ properties:
|
||||
+ reg:
|
||||
+ description: |
|
||||
+ 1-based grid number, followed by 1-based segment bit number.
|
||||
+ maxItems: 1
|
||||
+
|
||||
+ required:
|
||||
+ - reg
|
||||
+
|
||||
+examples:
|
||||
+ - |
|
||||
+ #include <dt-bindings/leds/common.h>
|
||||
+
|
||||
+ spi {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ led-controller@0 {
|
||||
+ compatible = "titanmec,tm1628";
|
||||
+ reg = <0>;
|
||||
+ spi-3-wire;
|
||||
+ spi-lsb-first;
|
||||
+ spi-max-frequency = <500000>;
|
||||
+ grid = /bits/ 8 <4 3 2 1>;
|
||||
+ segment-mapping = /bits/ 8 <4 5 6 1 2 3 7>;
|
||||
+ #address-cells = <2>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ alarmn@5,4 {
|
||||
+ reg = <5 4>;
|
||||
+ function = LED_FUNCTION_ALARM;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+...
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,31 @@
|
||||
From e255be5d8029a419bc2cc39c8eb84466e77a7f7c 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
|
||||
display-text
|
||||
|
||||
Document the attribute for reading / writing the text to be displayed on
|
||||
the 7 segment display.
|
||||
|
||||
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
---
|
||||
Documentation/ABI/testing/sysfs-devices-auxdisplay-tm1628 | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
create mode 100644 Documentation/ABI/testing/sysfs-devices-auxdisplay-tm1628
|
||||
|
||||
diff --git a/Documentation/ABI/testing/sysfs-devices-auxdisplay-tm1628 b/Documentation/ABI/testing/sysfs-devices-auxdisplay-tm1628
|
||||
new file mode 100644
|
||||
index 000000000000..382757e721af
|
||||
--- /dev/null
|
||||
+++ b/Documentation/ABI/testing/sysfs-devices-auxdisplay-tm1628
|
||||
@@ -0,0 +1,7 @@
|
||||
+What: /sys/devices/.../display-text
|
||||
+Date: February 2022
|
||||
+Contact: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
+Description:
|
||||
+ The text to be displayed on the 7 segment display.
|
||||
+ Any printable character is allowed as input, but some
|
||||
+ can not be displayed in a readable way with 7 segments.
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,459 @@
|
||||
From 64b6dc707ec8fa981c36c9855d9502a14c4a06ab 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
|
||||
TM1628 7 segment display controller
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This patch adds support for the Titanmec TM1628 7 segment display
|
||||
controller. It's based on previous RFC work from Andreas Färber.
|
||||
The RFC version placed the driver in the LED subsystem, but this was
|
||||
NAK'ed by the LED maintainer. Therefore I moved the driver to
|
||||
/drivers/auxdisplay what seems most reasonable to me.
|
||||
|
||||
Further changes to the RFC version:
|
||||
- Driver can be built also w/o LED class support, for displays that
|
||||
don't have any symbols to be exposed as LED's.
|
||||
- Simplified the code and rewrote a lot of it.
|
||||
- Driver is now kind of a MVP, but functionality should be sufficient
|
||||
for most use cases.
|
||||
- Use the existing 7 segment support in uapi/linux/map_to_7segment.h
|
||||
as suggested by Geert Uytterhoeven.
|
||||
|
||||
Note: There's a number of chips from other manufacturers that are
|
||||
almost identical, e.g. FD628, SM1628. Only difference I saw so
|
||||
far is that they partially support other display modes.
|
||||
TM1628: 6x12, 7x11
|
||||
SM1628C: 4x13, 5x12, 6x11, 7x10
|
||||
For typical displays on devices using these chips this
|
||||
difference shouldn't matter.
|
||||
|
||||
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>
|
||||
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
---
|
||||
drivers/auxdisplay/Kconfig | 10 +
|
||||
drivers/auxdisplay/Makefile | 1 +
|
||||
drivers/auxdisplay/tm1628.c | 375 ++++++++++++++++++++++++++++++++++++
|
||||
3 files changed, 386 insertions(+)
|
||||
create mode 100644 drivers/auxdisplay/tm1628.c
|
||||
|
||||
diff --git a/drivers/auxdisplay/Kconfig b/drivers/auxdisplay/Kconfig
|
||||
index 64012cda4d12..25ef2e452897 100644
|
||||
--- a/drivers/auxdisplay/Kconfig
|
||||
+++ b/drivers/auxdisplay/Kconfig
|
||||
@@ -203,6 +203,16 @@ config ARM_CHARLCD
|
||||
line and the Linux version on the second line, but that's
|
||||
still useful.
|
||||
|
||||
+config TM1628
|
||||
+ tristate "TM1628 driver for LED 7/11 segment displays"
|
||||
+ depends on SPI
|
||||
+ depends on OF || COMPILE_TEST
|
||||
+ 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.
|
||||
+
|
||||
menuconfig PARPORT_PANEL
|
||||
tristate "Parallel port LCD/Keypad Panel support"
|
||||
depends on PARPORT
|
||||
diff --git a/drivers/auxdisplay/Makefile b/drivers/auxdisplay/Makefile
|
||||
index 6968ed4d3f0a..7728e17e1c5a 100644
|
||||
--- a/drivers/auxdisplay/Makefile
|
||||
+++ b/drivers/auxdisplay/Makefile
|
||||
@@ -14,3 +14,4 @@ obj-$(CONFIG_HT16K33) += ht16k33.o
|
||||
obj-$(CONFIG_PARPORT_PANEL) += panel.o
|
||||
obj-$(CONFIG_LCD2S) += lcd2s.o
|
||||
obj-$(CONFIG_LINEDISP) += line-display.o
|
||||
+obj-$(CONFIG_TM1628) += tm1628.o
|
||||
diff --git a/drivers/auxdisplay/tm1628.c b/drivers/auxdisplay/tm1628.c
|
||||
new file mode 100644
|
||||
index 000000000000..072de8d47a59
|
||||
--- /dev/null
|
||||
+++ b/drivers/auxdisplay/tm1628.c
|
||||
@@ -0,0 +1,375 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
+/*
|
||||
+ * Titan Micro Electronics TM1628 LED controller
|
||||
+ *
|
||||
+ * Copyright (c) 2019 Andreas Färber
|
||||
+ */
|
||||
+
|
||||
+#include <linux/delay.h>
|
||||
+#include <linux/leds.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/property.h>
|
||||
+#include <linux/spi/spi.h>
|
||||
+#include <uapi/linux/map_to_7segment.h>
|
||||
+
|
||||
+#define TM1628_CMD_DISPLAY_MODE (0 << 6)
|
||||
+#define TM1628_DISPLAY_MODE_6_12 0x02
|
||||
+#define TM1628_DISPLAY_MODE_7_11 0x03
|
||||
+
|
||||
+#define TM1628_CMD_DATA (1 << 6)
|
||||
+#define TM1628_DATA_TEST_MODE BIT(3)
|
||||
+#define TM1628_DATA_FIXED_ADDR BIT(2)
|
||||
+#define TM1628_DATA_WRITE_DATA 0x00
|
||||
+#define TM1628_DATA_READ_DATA 0x02
|
||||
+
|
||||
+#define TM1628_CMD_DISPLAY_CTRL (2 << 6)
|
||||
+#define TM1628_DISPLAY_CTRL_DISPLAY_ON BIT(3)
|
||||
+
|
||||
+#define TM1628_CMD_SET_ADDRESS (3 << 6)
|
||||
+
|
||||
+#define TM1628_BRIGHTNESS_MAX 7
|
||||
+
|
||||
+/* Physical limits, depending on the mode the chip may support less */
|
||||
+#define MAX_GRID_SIZE 7
|
||||
+#define MAX_SEGMENT_NUM 16
|
||||
+
|
||||
+struct tm1628_led {
|
||||
+ struct led_classdev leddev;
|
||||
+ struct tm1628 *ctrl;
|
||||
+ u32 grid;
|
||||
+ u32 seg;
|
||||
+};
|
||||
+
|
||||
+struct tm1628 {
|
||||
+ struct spi_device *spi;
|
||||
+ __le16 data[MAX_GRID_SIZE];
|
||||
+ struct mutex disp_lock;
|
||||
+ char text[MAX_GRID_SIZE + 1];
|
||||
+ u8 segment_mapping[7];
|
||||
+ u8 grid[MAX_GRID_SIZE];
|
||||
+ int grid_size;
|
||||
+ struct tm1628_led leds[];
|
||||
+};
|
||||
+
|
||||
+/* 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;
|
||||
+
|
||||
+ return spi_write(spi, &cmd, 1);
|
||||
+}
|
||||
+
|
||||
+/* Command 3: Address Setting */
|
||||
+static int tm1628_set_address(struct spi_device *spi, u8 offset)
|
||||
+{
|
||||
+ u8 cmd = TM1628_CMD_SET_ADDRESS | (offset * sizeof(__le16));
|
||||
+
|
||||
+ return spi_write(spi, &cmd, 1);
|
||||
+}
|
||||
+
|
||||
+/* Command 2: Data Setting */
|
||||
+static int tm1628_write_data(struct spi_device *spi, unsigned int offset,
|
||||
+ unsigned int len)
|
||||
+{
|
||||
+ struct tm1628 *s = spi_get_drvdata(spi);
|
||||
+ u8 cmd = TM1628_CMD_DATA | TM1628_DATA_WRITE_DATA;
|
||||
+ struct spi_transfer xfers[] = {
|
||||
+ {
|
||||
+ .tx_buf = &cmd,
|
||||
+ .len = 1,
|
||||
+ },
|
||||
+ {
|
||||
+ .tx_buf = (__force void *)(s->data + offset),
|
||||
+ .len = len * sizeof(__le16),
|
||||
+ },
|
||||
+ };
|
||||
+
|
||||
+ if (offset + len > MAX_GRID_SIZE) {
|
||||
+ dev_err(&spi->dev, "Invalid data address offset %u len %u\n",
|
||||
+ offset, len);
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+
|
||||
+ tm1628_set_address(spi, offset);
|
||||
+
|
||||
+ return spi_sync_transfer(spi, xfers, ARRAY_SIZE(xfers));
|
||||
+}
|
||||
+
|
||||
+/* Command 4: Display Control */
|
||||
+static int tm1628_set_display_ctrl(struct spi_device *spi, bool on)
|
||||
+{
|
||||
+ u8 cmd = TM1628_CMD_DISPLAY_CTRL | TM1628_BRIGHTNESS_MAX;
|
||||
+
|
||||
+ if (on)
|
||||
+ cmd |= TM1628_DISPLAY_CTRL_DISPLAY_ON;
|
||||
+
|
||||
+ return spi_write(spi, &cmd, 1);
|
||||
+}
|
||||
+
|
||||
+static int tm1628_show_text(struct tm1628 *s)
|
||||
+{
|
||||
+ static SEG7_CONVERSION_MAP(map_seg7, MAP_ASCII7SEG_ALPHANUM);
|
||||
+ int i, ret;
|
||||
+
|
||||
+ int msg_len = strlen(s->text);
|
||||
+
|
||||
+ mutex_lock(&s->disp_lock);
|
||||
+
|
||||
+ for (i = 0; i < s->grid_size; i++) {
|
||||
+ int pos = s->grid[i] - 1;
|
||||
+
|
||||
+ 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 {
|
||||
+ s->data[pos] = 0;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ ret = tm1628_write_data(s->spi, 0, s->grid_size);
|
||||
+
|
||||
+ mutex_unlock(&s->disp_lock);
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static int tm1628_led_set_brightness(struct led_classdev *led_cdev,
|
||||
+ enum led_brightness brightness)
|
||||
+{
|
||||
+ 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));
|
||||
+
|
||||
+ mutex_lock(&s->disp_lock);
|
||||
+
|
||||
+ if (brightness == LED_OFF)
|
||||
+ s->data[offset] &= ~bit;
|
||||
+ else
|
||||
+ s->data[offset] |= bit;
|
||||
+
|
||||
+ ret = tm1628_write_data(s->spi, offset, 1);
|
||||
+
|
||||
+ mutex_unlock(&s->disp_lock);
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static enum led_brightness tm1628_led_get_brightness(struct led_classdev *led_cdev)
|
||||
+{
|
||||
+ struct tm1628_led *led = container_of(led_cdev, struct tm1628_led, leddev);
|
||||
+ struct tm1628 *s = led->ctrl;
|
||||
+ int offset;
|
||||
+ __le16 bit;
|
||||
+ 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);
|
||||
+
|
||||
+ return on ? LED_ON : LED_OFF;
|
||||
+}
|
||||
+
|
||||
+static int tm1628_register_led(struct tm1628 *s, struct fwnode_handle *node,
|
||||
+ u32 grid, u32 seg, struct tm1628_led *led)
|
||||
+{
|
||||
+ struct device *dev = &s->spi->dev;
|
||||
+ struct led_init_data init_data = { .fwnode = node };
|
||||
+
|
||||
+ led->ctrl = s;
|
||||
+ led->grid = grid;
|
||||
+ led->seg = seg;
|
||||
+ led->leddev.max_brightness = LED_ON;
|
||||
+ led->leddev.brightness_set_blocking = tm1628_led_set_brightness;
|
||||
+ led->leddev.brightness_get = tm1628_led_get_brightness;
|
||||
+
|
||||
+ return devm_led_classdev_register_ext(dev, &led->leddev, &init_data);
|
||||
+}
|
||||
+
|
||||
+static ssize_t display_text_show(struct device *dev, struct device_attribute *attr,
|
||||
+ char *buf)
|
||||
+{
|
||||
+ struct tm1628 *s = dev_get_drvdata(dev);
|
||||
+
|
||||
+ return sysfs_emit(buf, "%s\n", s->text);
|
||||
+}
|
||||
+
|
||||
+static ssize_t display_text_store(struct device *dev, struct device_attribute *attr,
|
||||
+ const char *buf, size_t count)
|
||||
+{
|
||||
+ 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++)
|
||||
+ s->text[i] = buf[i];
|
||||
+
|
||||
+ s->text[i] = '\0';
|
||||
+
|
||||
+ ret = tm1628_show_text(s);
|
||||
+ if (ret < 0)
|
||||
+ return ret;
|
||||
+
|
||||
+ return count;
|
||||
+}
|
||||
+
|
||||
+static const DEVICE_ATTR_RW(display_text);
|
||||
+
|
||||
+static int tm1628_spi_probe(struct spi_device *spi)
|
||||
+{
|
||||
+ struct fwnode_handle *child;
|
||||
+ unsigned int num_leds;
|
||||
+ struct tm1628 *s;
|
||||
+ int ret, i;
|
||||
+
|
||||
+ num_leds = device_get_child_node_count(&spi->dev);
|
||||
+
|
||||
+ s = devm_kzalloc(&spi->dev, struct_size(s, leds, num_leds), GFP_KERNEL);
|
||||
+ if (!s)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
+ s->spi = spi;
|
||||
+ spi_set_drvdata(spi, s);
|
||||
+
|
||||
+ mutex_init(&s->disp_lock);
|
||||
+
|
||||
+ msleep(200); /* according to TM1628 datasheet */
|
||||
+
|
||||
+ /* 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);
|
||||
+
|
||||
+ tm1628_set_display_ctrl(spi, true);
|
||||
+
|
||||
+ if (!IS_REACHABLE(CONFIG_LEDS_CLASS))
|
||||
+ goto no_leds;
|
||||
+
|
||||
+ num_leds = 0;
|
||||
+
|
||||
+ device_for_each_child_node(&spi->dev, child) {
|
||||
+ u32 reg[2];
|
||||
+
|
||||
+ ret = fwnode_property_read_u32_array(child, "reg", reg, 2);
|
||||
+ if (ret) {
|
||||
+ dev_err(&spi->dev, "Reading %s reg property failed (%d)\n",
|
||||
+ fwnode_get_name(child), ret);
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ if (reg[0] == 0 || reg[0] > MAX_GRID_SIZE) {
|
||||
+ dev_err(&spi->dev, "Invalid grid %u at %s\n",
|
||||
+ reg[0], fwnode_get_name(child));
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ if (reg[1] == 0 || reg[1] > MAX_SEGMENT_NUM) {
|
||||
+ dev_err(&spi->dev, "Invalid segment %u at %s\n",
|
||||
+ reg[1], fwnode_get_name(child));
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ ret = tm1628_register_led(s, child, reg[0], reg[1], s->leds + num_leds);
|
||||
+ if (ret) {
|
||||
+ dev_err(&spi->dev, "Failed to register LED %s (%d)\n",
|
||||
+ fwnode_get_name(child), ret);
|
||||
+ continue;
|
||||
+ }
|
||||
+ num_leds++;
|
||||
+ }
|
||||
+
|
||||
+no_leds:
|
||||
+ ret = device_property_count_u8(&spi->dev, "grid");
|
||||
+ if (ret < 1 || ret > MAX_GRID_SIZE) {
|
||||
+ dev_err(&spi->dev, "Invalid display length (%d)\n", ret);
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+
|
||||
+ s->grid_size = ret;
|
||||
+
|
||||
+ ret = device_property_read_u8_array(&spi->dev, "grid", s->grid, s->grid_size);
|
||||
+ if (ret < 0)
|
||||
+ return ret;
|
||||
+
|
||||
+ for (i = 0; i < s->grid_size; i++) {
|
||||
+ if (s->grid[i] < 1 || s->grid[i] > s->grid_size)
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+
|
||||
+ ret = device_property_read_u8_array(&spi->dev, "segment-mapping", s->segment_mapping, 7);
|
||||
+ if (ret < 0)
|
||||
+ return ret;
|
||||
+
|
||||
+ for (i = 0; i < 7; i++) {
|
||||
+ if (s->segment_mapping[i] < 1 || s->segment_mapping[i] > MAX_SEGMENT_NUM)
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+
|
||||
+ ret = device_create_file(&spi->dev, &dev_attr_display_text);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ dev_info(&spi->dev, "Configured display with %u digits and %u symbols\n",
|
||||
+ s->grid_size, num_leds);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static void tm1628_spi_remove(struct spi_device *spi)
|
||||
+{
|
||||
+ device_remove_file(&spi->dev, &dev_attr_display_text);
|
||||
+ tm1628_set_display_ctrl(spi, false);
|
||||
+}
|
||||
+
|
||||
+static void tm1628_spi_shutdown(struct spi_device *spi)
|
||||
+{
|
||||
+ tm1628_set_display_ctrl(spi, false);
|
||||
+}
|
||||
+
|
||||
+static const struct of_device_id tm1628_spi_of_matches[] = {
|
||||
+ { .compatible = "titanmec,tm1628" },
|
||||
+ {}
|
||||
+};
|
||||
+MODULE_DEVICE_TABLE(of, tm1628_spi_of_matches);
|
||||
+
|
||||
+static const struct spi_device_id tm1628_spi_id_table[] = {
|
||||
+ { "tm1628" },
|
||||
+ {},
|
||||
+};
|
||||
+MODULE_DEVICE_TABLE(spi, tm1628_spi_id_table);
|
||||
+
|
||||
+static struct spi_driver tm1628_spi_driver = {
|
||||
+ .probe = tm1628_spi_probe,
|
||||
+ .remove = tm1628_spi_remove,
|
||||
+ .shutdown = tm1628_spi_shutdown,
|
||||
+ .id_table = tm1628_spi_id_table,
|
||||
+
|
||||
+ .driver = {
|
||||
+ .name = "tm1628",
|
||||
+ .of_match_table = tm1628_spi_of_matches,
|
||||
+ },
|
||||
+};
|
||||
+module_spi_driver(tm1628_spi_driver);
|
||||
+
|
||||
+MODULE_DESCRIPTION("TM1628 LED controller driver");
|
||||
+MODULE_AUTHOR("Andreas Färber");
|
||||
+MODULE_LICENSE("GPL");
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,93 @@
|
||||
From 3abb1669bfb5e075daae0c0a928b2f31ded16e14 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
|
||||
support for the 7 segment display
|
||||
|
||||
This patch adds support for the 7 segment display of the device.
|
||||
|
||||
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
|
||||
---
|
||||
.../dts/amlogic/meson-gxl-s905w-tx3-mini.dts | 59 +++++++++++++++++++
|
||||
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
|
||||
--- 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 @@
|
||||
|
||||
#include "meson-gxl-s905x.dtsi"
|
||||
#include "meson-gx-p23x-q20x.dtsi"
|
||||
+#include <dt-bindings/leds/common.h>
|
||||
|
||||
/ {
|
||||
compatible = "oranth,tx3-mini", "amlogic,s905w", "amlogic,meson-gxl";
|
||||
@@ -19,6 +20,64 @@
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x0 0x0 0x40000000>; /* 1 GiB or 2 GiB */
|
||||
};
|
||||
+
|
||||
+ spi {
|
||||
+ compatible = "spi-gpio";
|
||||
+ sck-gpios = <&gpio GPIODV_27 GPIO_ACTIVE_HIGH>;
|
||||
+ mosi-gpios = <&gpio GPIODV_26 GPIO_ACTIVE_HIGH>;
|
||||
+ cs-gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>;
|
||||
+ num-chipselects = <1>;
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ tm1628: led-controller@0 {
|
||||
+ compatible = "titanmec,tm1628";
|
||||
+ reg = <0>;
|
||||
+ spi-3wire;
|
||||
+ spi-lsb-first;
|
||||
+ spi-rx-delay-us = <1>;
|
||||
+ spi-max-frequency = <500000>;
|
||||
+ #address-cells = <2>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ segment-mapping = /bits/ 8 <4 5 6 1 2 3 7>;
|
||||
+ grid = /bits/ 8 <4 3 2 1>;
|
||||
+
|
||||
+ alarm@5,1 {
|
||||
+ reg = <5 1>;
|
||||
+ function = LED_FUNCTION_ALARM;
|
||||
+ };
|
||||
+
|
||||
+ usb@5,2 {
|
||||
+ reg = <5 2>;
|
||||
+ function = LED_FUNCTION_USB;
|
||||
+ };
|
||||
+ play@5,3 {
|
||||
+ reg = <5 3>;
|
||||
+ function = "play";
|
||||
+ };
|
||||
+
|
||||
+ pause@5,4 {
|
||||
+ reg = <5 4>;
|
||||
+ function = "pause";
|
||||
+ };
|
||||
+
|
||||
+ colon@5,5 {
|
||||
+ reg = <5 5>;
|
||||
+ function = "colon";
|
||||
+ };
|
||||
+
|
||||
+ lan@5,6 {
|
||||
+ reg = <5 6>;
|
||||
+ function = LED_FUNCTION_LAN;
|
||||
+ };
|
||||
+
|
||||
+ wlan@5,7 {
|
||||
+ reg = <5 7>;
|
||||
+ function = LED_FUNCTION_WLAN;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
};
|
||||
|
||||
&ir {
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,54 @@
|
||||
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
|
||||
|
@ -0,0 +1,55 @@
|
||||
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
|
||||
|
@ -0,0 +1,69 @@
|
||||
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 bde321a49247ea8dfeec6e0fa08bcc520a554508 Mon Sep 17 00:00:00 2001
|
||||
From dd29d3d05631c4afdab56fb696424565a4afefba Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Karlman <jonas@kwiboo.se>
|
||||
Date: Sun, 23 Dec 2018 02:24:38 +0100
|
||||
Subject: [PATCH 44/79] WIP: ASoC: hdmi-codec: reorder channel allocation list
|
||||
Subject: [PATCH 53/90] WIP: ASoC: hdmi-codec: reorder channel allocation list
|
||||
|
||||
Wrong channel allocation is selected by hdmi_codec_get_ch_alloc_table_idx().
|
||||
|
@ -1,7 +1,7 @@
|
||||
From e8416e70af875bd08af88e4099e7484963ca0fbd Mon Sep 17 00:00:00 2001
|
||||
From 5c5664545a97520bbce591add5a7dbbea143b999 Mon Sep 17 00:00:00 2001
|
||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
||||
Date: Thu, 14 Jan 2021 17:43:02 +0100
|
||||
Subject: [PATCH 45/79] WIP: mmc: meson-gx-mmc: set core clock phase to 270
|
||||
Subject: [PATCH 54/90] 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 c765653ee4d0..b3ffde4ce348 100644
|
||||
index 1a11a4bf4d4f..df60312a1765 100644
|
||||
--- a/drivers/mmc/host/meson-gx-mmc.c
|
||||
+++ b/drivers/mmc/host/meson-gx-mmc.c
|
||||
@@ -38,6 +38,7 @@
|
||||
@ -29,7 +29,7 @@ index c765653ee4d0..b3ffde4ce348 100644
|
||||
};
|
||||
|
||||
struct sd_emmc_desc {
|
||||
@@ -426,7 +428,7 @@ static int meson_mmc_clk_init(struct meson_host *host)
|
||||
@@ -428,7 +430,7 @@ static int meson_mmc_clk_init(struct meson_host *host)
|
||||
/* init SD_EMMC_CLOCK to sane defaults w/min clock rate */
|
||||
clk_reg = CLK_ALWAYS_ON(host);
|
||||
clk_reg |= CLK_DIV_MASK;
|
||||
@ -38,7 +38,7 @@ index c765653ee4d0..b3ffde4ce348 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);
|
||||
@@ -1336,6 +1338,7 @@ static const struct meson_mmc_data meson_gx_data = {
|
||||
@@ -1337,6 +1339,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 c765653ee4d0..b3ffde4ce348 100644
|
||||
};
|
||||
|
||||
static const struct meson_mmc_data meson_axg_data = {
|
||||
@@ -1343,6 +1346,7 @@ static const struct meson_mmc_data meson_axg_data = {
|
||||
@@ -1344,6 +1347,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 eb982580576ff4df7dd72979622b1ac0ff99b6d4 Mon Sep 17 00:00:00 2001
|
||||
From fa5498d499cc8aa5a59d7c9682e1d70e73dea144 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Thu, 13 Jan 2022 03:50:01 +0000
|
||||
Subject: [PATCH 46/79] WIP: arm64: dts: meson: add Broadcom WiFi to P212 dtsi
|
||||
Subject: [PATCH 55/90] 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 3bd8ae1730a5096a81ec5bdadcc421eb343dda14 Mon Sep 17 00:00:00 2001
|
||||
From d1ecff8da5fd4818b465e2b004f4737ca0dfb6fb Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Thu, 13 Jan 2022 03:56:12 +0000
|
||||
Subject: [PATCH 47/79] WIP: arm64: dts: meson: move pwm_ef node in P212 dtsi
|
||||
Subject: [PATCH 56/90] WIP: arm64: dts: meson: move pwm_ef node in P212 dtsi
|
||||
|
||||
Cosmetic-only change to alpha-sort the pwm_ef node.
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 71b807b4965b1c751547d374becdf529baff04ed Mon Sep 17 00:00:00 2001
|
||||
From dfb3b1a759cdb45cddf5cca6ef904c4765445f55 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Thu, 13 Jan 2022 03:58:58 +0000
|
||||
Subject: [PATCH 48/79] WIP: arm64: dts: meson: remove WiFi/BT nodes from
|
||||
Subject: [PATCH 57/90] 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,7 +1,7 @@
|
||||
From 6d91b9daa664c69ecf484639711ad6a1adbafe04 Mon Sep 17 00:00:00 2001
|
||||
From fd15d86035de9f5ddb76e2b33815169a0fc142dc Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Tue, 18 Jan 2022 15:09:12 +0000
|
||||
Subject: [PATCH 49/79] WIP: arm64: dts: meson: set p212/p23x/q20x SDIO to
|
||||
Subject: [PATCH 58/90] WIP: arm64: dts: meson: set p212/p23x/q20x SDIO to
|
||||
100MHz
|
||||
|
||||
Amlogic datasheets describe 50MHz max-frequency for SDIO on GXL/GXM but
|
@ -1,7 +1,7 @@
|
||||
From 16e2fda15b650aaac9e3fd676c17a158086843b4 Mon Sep 17 00:00:00 2001
|
||||
From 40e9017aefcc38da1ba4ed9ba9f639f4699834cb Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 19 Jan 2022 06:45:06 +0000
|
||||
Subject: [PATCH 50/79] WIP: arm64: dts: meson: add UHS SDIO capabilities to
|
||||
Subject: [PATCH 59/90] WIP: arm64: dts: meson: add UHS SDIO capabilities to
|
||||
p212/p23x/q20x
|
||||
|
||||
Add UHS capabilities to the SDIO node to enable 100MHz speeds.
|
@ -1,7 +1,7 @@
|
||||
From f2153640f208ef41b04d083f6c1eee797e363472 Mon Sep 17 00:00:00 2001
|
||||
From 8c3fedfdb05685886ef319ced3356b618d24fc86 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Tue, 18 Jan 2022 15:18:32 +0000
|
||||
Subject: [PATCH 51/79] WIP: arm64: dts: meson: remove SDIO node from Khadas
|
||||
Subject: [PATCH 60/90] WIP: arm64: dts: meson: remove SDIO node from Khadas
|
||||
VIM1
|
||||
|
||||
Now that SDIO 100MHz max-frequency is inherited from the p212 dtsi we
|
@ -1,7 +1,7 @@
|
||||
From b359a93a0555da6362ca94d963430e70cd43c950 Mon Sep 17 00:00:00 2001
|
||||
From b4f1722a917026b6090c7fb3d6b575768ebf72f5 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Thu, 13 Jan 2022 04:30:44 +0000
|
||||
Subject: [PATCH 52/79] WIP: arm64: dts: meson: add audio playback to
|
||||
Subject: [PATCH 61/90] 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 341fc7a61cc42cb90b89ed2d5d645e3f248efd66 Mon Sep 17 00:00:00 2001
|
||||
From 4aca1a59251338a9f98b58fc67e7749fae32b3be Mon Sep 17 00:00:00 2001
|
||||
From: benjamin545 <benjamin545@gmail.com>
|
||||
Date: Thu, 15 Jul 2021 14:32:33 -0400
|
||||
Subject: [PATCH 53/79] WIP: drivers: meson: vdec: remove redundant if
|
||||
Subject: [PATCH 62/90] WIP: drivers: meson: vdec: remove redundant if
|
||||
statement
|
||||
|
||||
checking if sess->fmt_out->pixfmt is V4L2_PIX_FMT_VP9 was already done
|
@ -1,7 +1,7 @@
|
||||
From 68657bde0bbcd91a96515ccb7b7d933f60a11850 Mon Sep 17 00:00:00 2001
|
||||
From df7d1adad3f60c8cb3f33235b6301093801b7b47 Mon Sep 17 00:00:00 2001
|
||||
From: benjamin545 <benjamin545@gmail.com>
|
||||
Date: Thu, 15 Jul 2021 16:32:39 -0400
|
||||
Subject: [PATCH 54/79] WIP: drivers: meson: vdec: improve mmu and fbc handling
|
||||
Subject: [PATCH 63/90] WIP: drivers: meson: vdec: improve mmu and fbc handling
|
||||
and add 10 bit handling
|
||||
|
||||
---
|
@ -1,7 +1,7 @@
|
||||
From 9065ee07cc7930532b02be84cf4673a86c8a09ba Mon Sep 17 00:00:00 2001
|
||||
From 478ef90d4bb38e6c5ae11c4abd6142fc7336c746 Mon Sep 17 00:00:00 2001
|
||||
From: benjamin545 <benjamin545@gmail.com>
|
||||
Date: Thu, 15 Jul 2021 17:08:42 -0400
|
||||
Subject: [PATCH 55/79] WIP: drivers: meson: vdec: add HEVC decode codec
|
||||
Subject: [PATCH 64/90] WIP: drivers: meson: vdec: add HEVC decode codec
|
||||
|
||||
---
|
||||
drivers/staging/media/meson/vdec/Makefile | 2 +-
|
@ -1,7 +1,7 @@
|
||||
From e42db1763de291f740b189d82b7b7fb7199cd6d6 Mon Sep 17 00:00:00 2001
|
||||
From a9f750c672c4c1238cccd1d8d76a138a5602d035 Mon Sep 17 00:00:00 2001
|
||||
From: benjamin545 <benjamin545@gmail.com>
|
||||
Date: Mon, 2 Aug 2021 15:18:40 -0400
|
||||
Subject: [PATCH 56/79] WIP: drivers: meson: vdec: add handling to HEVC decoder
|
||||
Subject: [PATCH 65/90] 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 9c68e82ec9586c13708942d8a5a8931bb22eabbd Mon Sep 17 00:00:00 2001
|
||||
From 975c23d02776b023a75e6090b521a839e67a8c42 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sun, 21 Nov 2021 19:12:07 +0000
|
||||
Subject: [PATCH 57/79] WIP: drivers: meson: vdec: add HEVC support to GXBB
|
||||
Subject: [PATCH 66/90] 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,7 +1,7 @@
|
||||
From 881e27f6225767d6fbded545eac1db62647b0b35 Mon Sep 17 00:00:00 2001
|
||||
From cb0c20e84a934c66961ace27f340cd7c98188dbe Mon Sep 17 00:00:00 2001
|
||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
||||
Date: Mon, 22 Nov 2021 09:15:21 +0000
|
||||
Subject: [PATCH 58/79] WIP: drivers: meson: vdec: check if parser has really
|
||||
Subject: [PATCH 67/90] WIP: drivers: meson: vdec: check if parser has really
|
||||
parser before marking input buffer as error
|
||||
|
||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
@ -1,7 +1,7 @@
|
||||
From 61d5770b41a0de4dc781219e4fd53e9d011591c7 Mon Sep 17 00:00:00 2001
|
||||
From 795fad491189f7fd6034d6d639602119a4e60755 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Tue, 17 Aug 2021 16:16:43 +0000
|
||||
Subject: [PATCH 59/79] WIP: arm64: dts: meson: radxa-zero: add support for the
|
||||
Subject: [PATCH 68/90] 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 8534bf4f2f554594d0d0f4c1f77563635a8ecb14 Mon Sep 17 00:00:00 2001
|
||||
From 9c2db9e795f4d73e78a02f6c8cb313e6bcf34f7e Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 16 Feb 2022 07:27:07 +0000
|
||||
Subject: [PATCH 60/79] WIP: dt-bindings: arm: amlogic: add support for Radxa
|
||||
Subject: [PATCH 69/90] WIP: dt-bindings: arm: amlogic: add support for Radxa
|
||||
Zero2
|
||||
|
||||
The Radxa Zero2 is a small form-factor SBC using the Amlogic
|
@ -1,7 +1,7 @@
|
||||
From f34401cc59b8732e46bd42c3abedfa8f3da2cab5 Mon Sep 17 00:00:00 2001
|
||||
From aadb6d12609309106f6ab7a56face84c19859796 Mon Sep 17 00:00:00 2001
|
||||
From: Yuntian Zhang <yt@radxa.com>
|
||||
Date: Fri, 14 Jan 2022 15:50:02 +0000
|
||||
Subject: [PATCH 61/79] WIP: arm64: dts: meson: add support for Radxa Zero2
|
||||
Subject: [PATCH 70/90] 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:
|
@ -1,7 +1,7 @@
|
||||
From 6ceea9f0eca293dbc82f37ad587a3be4ba495e18 Mon Sep 17 00:00:00 2001
|
||||
From 810b78077ca7574f999e2fa68753778c26dbcdf2 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Fri, 15 May 2020 07:52:47 +0000
|
||||
Subject: [PATCH 62/79] WIP: arm64: dts: meson: add audio playback to p201
|
||||
Subject: [PATCH 71/90] WIP: arm64: dts: meson: add audio playback to p201
|
||||
|
||||
Add initial audio support limited to HDMI i2s.
|
||||
|
@ -1,7 +1,7 @@
|
||||
From aa3d13886183e5f31263b312a7b67f2f18ccb1a7 Mon Sep 17 00:00:00 2001
|
||||
From 9d33954e9242785f5baf611b45f2f5a4af43a446 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Fri, 15 May 2020 07:56:15 +0000
|
||||
Subject: [PATCH 63/79] WIP: arm64: dts: meson: add audio playback to p200
|
||||
Subject: [PATCH 72/90] WIP: arm64: dts: meson: add audio playback to p200
|
||||
|
||||
Add initial support limited to HDMI i2s and SPDIF (LPCM).
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 20174e83e65843e6fa0c84142b88c42be5d3220d Mon Sep 17 00:00:00 2001
|
||||
From cd4ccfa569b37714d3bb0da970018c7201480811 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sun, 17 May 2020 05:00:55 +0000
|
||||
Subject: [PATCH 64/79] WIP: arm64: dts: meson: add audio playback to u200
|
||||
Subject: [PATCH 73/90] WIP: arm64: dts: meson: add audio playback to u200
|
||||
|
||||
Add initial support limited to HDMI i2s and SPDIF (LPCM).
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 752067e2a76b0626fa63318da1894cb25026bb98 Mon Sep 17 00:00:00 2001
|
||||
From 91ffd9ae8a3465528cdd8ea37afd28537121159c Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sat, 27 Nov 2021 13:50:06 +0000
|
||||
Subject: [PATCH 65/79] WIP: arm64: dts: meson: add Headphone output to Beelink
|
||||
Subject: [PATCH 74/90] 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 ed8e2b9928374e9e9544f7726ae591f79422f52e Mon Sep 17 00:00:00 2001
|
||||
From 530878a80414883138169088a12f002d30d5b0c1 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sat, 29 Feb 2020 15:13:02 +0000
|
||||
Subject: [PATCH 66/79] WIP: dt-bindings: arm: amlogic: add support for the
|
||||
Subject: [PATCH 75/90] WIP: dt-bindings: arm: amlogic: add support for the
|
||||
Tanix TX5 Max
|
||||
|
||||
The Oranth (Tanix) TX5 Max is based on the Amlogic U200 reference
|
@ -1,7 +1,7 @@
|
||||
From 14e7663368e3c78aad21c8d0454150ce6fc1f057 Mon Sep 17 00:00:00 2001
|
||||
From ee948717cbc1d5adbe2e056d06a50761f46fba0d Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sun, 20 Oct 2019 04:06:59 +0000
|
||||
Subject: [PATCH 67/79] WIP: arm64: dts: meson: add support for the Tanix TX5
|
||||
Subject: [PATCH 76/90] WIP: arm64: dts: meson: add support for the Tanix TX5
|
||||
Max
|
||||
|
||||
The Tanix TX5 Max is based on the Amlogic U200 reference design
|
@ -1,7 +1,7 @@
|
||||
From cd88d073e0eb7bf93d027c7523261c2e56c3f688 Mon Sep 17 00:00:00 2001
|
||||
From 5c0f2fc10f7b82453281aacdbb8f750384829b10 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Mon, 21 Oct 2019 03:58:06 +0000
|
||||
Subject: [PATCH 68/79] WIP: arm64: dts: meson: add multiple MeCool device
|
||||
Subject: [PATCH 77/90] WIP: arm64: dts: meson: add multiple MeCool device
|
||||
trees
|
||||
|
||||
This adds initial device trees for a range of MeCool devices based on various
|
@ -1,7 +1,7 @@
|
||||
From 90c107c90da6a39c905209c937eb48008e43cb7b Mon Sep 17 00:00:00 2001
|
||||
From be308e6dcb61298b822da615cdcd239efe74cbb7 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sun, 11 Apr 2021 05:50:13 +0000
|
||||
Subject: [PATCH 69/79] WIP: dt-bindings: arm: amlogic: add support for Minix
|
||||
Subject: [PATCH 78/90] 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)
|
@ -1,7 +1,7 @@
|
||||
From d0534162a24d586afc07d25b0f25dcbbac5d75b4 Mon Sep 17 00:00:00 2001
|
||||
From 09b79df08522547ca9bf79dde6b45abfc39a9b2c Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sun, 11 Apr 2021 05:52:14 +0000
|
||||
Subject: [PATCH 70/79] WIP: arm64: dts: meson: add initial device-tree for
|
||||
Subject: [PATCH 79/90] 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)
|
@ -1,7 +1,7 @@
|
||||
From 48bc8c6b232f4d1df1527486e517a36e9d842e1c Mon Sep 17 00:00:00 2001
|
||||
From 2ca5320afed93f431117fb490a2eabde8cbc2574 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 8 Dec 2021 15:33:47 +0000
|
||||
Subject: [PATCH 71/79] WIP: media: rc: add keymap for Beelink Mini MXIII
|
||||
Subject: [PATCH 80/90] WIP: media: rc: add keymap for Beelink Mini MXIII
|
||||
remote
|
||||
|
||||
Add a keymap and bindings for the simple IR (NEC) remote used with
|
@ -1,7 +1,7 @@
|
||||
From cbc817cbcf361ffd2923f238a4f2c530e96986b0 Mon Sep 17 00:00:00 2001
|
||||
From 44518805812a8e8d1fec4699c102359d4684eeb7 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 8 Dec 2021 15:28:50 +0000
|
||||
Subject: [PATCH 72/79] WIP: dt-bindings: arm: amlogic: add support for Beelink
|
||||
Subject: [PATCH 81/90] WIP: dt-bindings: arm: amlogic: add support for Beelink
|
||||
Mini MXIII
|
||||
|
||||
The Beelink Mini MXIII is an Android STB based on the Amlogic P200
|
@ -1,7 +1,7 @@
|
||||
From 2ae16b2715b0a64e9f95933e0d93cb3a7529c094 Mon Sep 17 00:00:00 2001
|
||||
From ebeac16a213b495bb6a522a49d8de6626b6792d0 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 8 Dec 2021 15:26:00 +0000
|
||||
Subject: [PATCH 73/79] WIP: arm64: dts: meson: add support for Beelink Mini
|
||||
Subject: [PATCH 82/90] WIP: arm64: dts: meson: add support for Beelink Mini
|
||||
MXIII
|
||||
|
||||
This is a GXBB board that ships in two variants, one with
|
@ -1,7 +1,7 @@
|
||||
From 2b2bdca43febecfa1cb098e0cbb06a7d8e92f8ae Mon Sep 17 00:00:00 2001
|
||||
From c917ffe10b62477459db1348925324e82710aa33 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sun, 16 Jan 2022 08:48:02 +0000
|
||||
Subject: [PATCH 74/79] WIP: media: rc: add keymap for MeCool M8S Pro W remote
|
||||
Subject: [PATCH 83/90] 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.
|
@ -1,7 +1,7 @@
|
||||
From dc2460493f7333d566ea5948b30b0af908c5dff8 Mon Sep 17 00:00:00 2001
|
||||
From 2191b379bed5f7b7f7e56b29ece6011e49a55ae7 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sun, 16 Jan 2022 08:15:36 +0000
|
||||
Subject: [PATCH 75/79] WIP: dt-bindings: arm: amlogic: add support for MeCool
|
||||
Subject: [PATCH 84/90] WIP: dt-bindings: arm: amlogic: add support for MeCool
|
||||
M8S Pro W
|
||||
|
||||
The MeCool M8S Pro W is an Android STB based on the Amlogic P281
|
@ -1,7 +1,7 @@
|
||||
From 5458d1e8aae666d568246da403402996f8824dba Mon Sep 17 00:00:00 2001
|
||||
From 75d63879080f31874d4ab7199e2fb43ca6f05dc8 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sun, 16 Jan 2022 08:17:41 +0000
|
||||
Subject: [PATCH 76/79] WIP: arm64: dts: meson: add support for MeCool M8S Pro
|
||||
Subject: [PATCH 85/90] WIP: arm64: dts: meson: add support for MeCool M8S Pro
|
||||
W
|
||||
|
||||
MeCool M8S Pro W is an Android STB based on the Amlogic P281 (GXL)
|
@ -1,7 +1,7 @@
|
||||
From c2387bf8d3214160be9e188b2557fe022e1dceb9 Mon Sep 17 00:00:00 2001
|
||||
From dcbcb4b9640b59d4469c82752e5c1a922c6629f9 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 19 Jan 2022 02:40:20 +0000
|
||||
Subject: [PATCH 77/79] WIP: dt-bindings: arm: amlogic: add Vero 4K binding
|
||||
Subject: [PATCH 86/90] WIP: dt-bindings: arm: amlogic: add Vero 4K binding
|
||||
|
||||
Add the board binding for the OSMC Vero 4K STB device
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 2eb240af1317fc952ece8b38f0ecfc80dc00f423 Mon Sep 17 00:00:00 2001
|
||||
From b17886f74c7387d1b68b57aec973352cbafad9c7 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 19 Jan 2022 04:06:17 +0000
|
||||
Subject: [PATCH 78/79] WIP: arm64: dts: meson: add support for OSMC Vero 4K
|
||||
Subject: [PATCH 87/90] WIP: arm64: dts: meson: add support for OSMC Vero 4K
|
||||
|
||||
The OSMC Vero 4K device is based on the Amlogic S905X (P212) reference
|
||||
design with the following specifications:
|
@ -1,7 +1,7 @@
|
||||
From 4d4f68640020e59a85cf2fec0d3ae5f6d11e1861 Mon Sep 17 00:00:00 2001
|
||||
From 06fe0cdc82836f529cbc57f608aff95c032d85eb Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sun, 13 Feb 2022 08:53:39 +0000
|
||||
Subject: [PATCH 79/79] WIP: drm/meson/meson_vclk: fix VIC alternate timings
|
||||
Subject: [PATCH 88/90] 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
|
@ -0,0 +1,42 @@
|
||||
From bc95963582619cce9758cdbf38e3f1557d1a498f Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sun, 20 Feb 2022 09:14:07 +0000
|
||||
Subject: [PATCH 89/90] WIP: auxdisplay: fixup for TM1628 display controller
|
||||
driver
|
||||
|
||||
The remove callback return type has recently been changed to void in
|
||||
linux-next, but 5.17 sources use the previous approach.
|
||||
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
---
|
||||
drivers/auxdisplay/tm1628.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/auxdisplay/tm1628.c b/drivers/auxdisplay/tm1628.c
|
||||
index 072de8d47a59..0758c397ef4f 100644
|
||||
--- a/drivers/auxdisplay/tm1628.c
|
||||
+++ b/drivers/auxdisplay/tm1628.c
|
||||
@@ -5,6 +5,7 @@
|
||||
* Copyright (c) 2019 Andreas Färber
|
||||
*/
|
||||
|
||||
+#include <linux/ctype.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/leds.h>
|
||||
#include <linux/module.h>
|
||||
@@ -334,10 +335,11 @@ static int tm1628_spi_probe(struct spi_device *spi)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static void tm1628_spi_remove(struct spi_device *spi)
|
||||
+static int tm1628_spi_remove(struct spi_device *spi)
|
||||
{
|
||||
device_remove_file(&spi->dev, &dev_attr_display_text);
|
||||
tm1628_set_display_ctrl(spi, false);
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static void tm1628_spi_shutdown(struct spi_device *spi)
|
||||
--
|
||||
2.17.1
|
||||
|
@ -0,0 +1,95 @@
|
||||
From faeccc288aa426a219d4b29da43d433de10942e3 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sun, 20 Feb 2022 16:31:04 +0000
|
||||
Subject: [PATCH 90/90] WIP: arm64: dts: meson-g12a-x96-max: add support for
|
||||
the 7 segment display
|
||||
|
||||
First attempt at adding support for the 7 segment display of the device.
|
||||
|
||||
See https://github.com/arthur-liberman/vfd-configurations/blob/master/x96-max-1gbit-vfd.conf
|
||||
|
||||
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
---
|
||||
.../boot/dts/amlogic/meson-g12a-x96-max.dts | 59 +++++++++++++++++++
|
||||
1 file changed, 59 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
|
||||
index b4e86196e346..36ca9c6a1bdf 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-x96-max.dts
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "meson-g12a.dtsi"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/gpio/meson-g12a-gpio.h>
|
||||
+#include <dt-bindings/leds/common.h>
|
||||
#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
|
||||
|
||||
/ {
|
||||
@@ -228,6 +229,64 @@
|
||||
};
|
||||
};
|
||||
|
||||
+ spi {
|
||||
+ compatible = "spi-gpio";
|
||||
+ sck-gpios = <&gpio GPIOX_0 GPIO_ACTIVE_HIGH>;
|
||||
+ mosi-gpios = <&gpio GPIOA_15 GPIO_ACTIVE_HIGH>;
|
||||
+ cs-gpios = <&gpio_ao GPIOAO_10 GPIO_ACTIVE_LOW>;
|
||||
+ num-chipselects = <1>;
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ tm1628: led-controller@0 {
|
||||
+ compatible = "titanmec,tm1628";
|
||||
+ reg = <0>;
|
||||
+ spi-3wire;
|
||||
+ spi-lsb-first;
|
||||
+ spi-rx-delay-us = <1>;
|
||||
+ spi-max-frequency = <500000>;
|
||||
+ #address-cells = <2>;
|
||||
+ #size-cells = <0>;
|
||||
+
|
||||
+ segment-mapping = /bits/ 8 <4 5 6 1 2 3 7>;
|
||||
+ grid = /bits/ 8 <3 4 5 1>;
|
||||
+
|
||||
+ apps@2,1 {
|
||||
+ reg = <2 1>;
|
||||
+ function = "apps";
|
||||
+ };
|
||||
+
|
||||
+ usb@5,2 {
|
||||
+ reg = <2 2>;
|
||||
+ function = LED_FUNCTION_USB;
|
||||
+ };
|
||||
+ setup@2,3 {
|
||||
+ reg = <2 3>;
|
||||
+ function = "setup";
|
||||
+ };
|
||||
+
|
||||
+ card@2,4 {
|
||||
+ reg = <2 4>;
|
||||
+ function = LED_FUNCTION_SD;
|
||||
+ };
|
||||
+
|
||||
+ colon@2,5 {
|
||||
+ reg = <2 5>;
|
||||
+ function = "colon";
|
||||
+ };
|
||||
+
|
||||
+ hdmi@2,6 {
|
||||
+ reg = <2 6>;
|
||||
+ function = "hdmi";
|
||||
+ };
|
||||
+
|
||||
+ cvbs@2,7 {
|
||||
+ reg = < 7>;
|
||||
+ function = "cvbs";
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
wifi32k: wifi32k {
|
||||
compatible = "pwm-clock";
|
||||
#clock-cells = <0>;
|
||||
--
|
||||
2.17.1
|
||||
|
@ -2759,7 +2759,7 @@ CONFIG_SPI_MEM=y
|
||||
# CONFIG_SPI_CADENCE_XSPI is not set
|
||||
# CONFIG_SPI_DESIGNWARE is not set
|
||||
# CONFIG_SPI_NXP_FLEXSPI is not set
|
||||
# CONFIG_SPI_GPIO is not set
|
||||
CONFIG_SPI_GPIO=y
|
||||
# CONFIG_SPI_FSL_SPI is not set
|
||||
CONFIG_SPI_MESON_SPICC=y
|
||||
CONFIG_SPI_MESON_SPIFC=y
|
||||
@ -5299,7 +5299,15 @@ CONFIG_DMABUF_HEAPS_SYSTEM=y
|
||||
CONFIG_DMABUF_HEAPS_CMA=y
|
||||
# end of DMABUF options
|
||||
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
CONFIG_AUXDISPLAY=y
|
||||
# CONFIG_HD44780 is not set
|
||||
# CONFIG_IMG_ASCII_LCD is not set
|
||||
# CONFIG_HT16K33 is not set
|
||||
# CONFIG_LCD2S is not set
|
||||
CONFIG_TM1628=m
|
||||
# CONFIG_CHARLCD_BL_OFF is not set
|
||||
# CONFIG_CHARLCD_BL_ON is not set
|
||||
# CONFIG_CHARLCD_BL_FLASH is not set
|
||||
# CONFIG_UIO is not set
|
||||
# CONFIG_VFIO is not set
|
||||
# CONFIG_VIRT_DRIVERS is not set
|
||||
|
Loading…
x
Reference in New Issue
Block a user