Skip to content

Commit dd4eb86

Browse files
committed
ASoC: codecs: add support for ES8389
Merge series from Zhang Yi <zhangyi@everest-semi.com>: The driver is for codec ES8389 of everest-semi.
2 parents 723059e + c8e7d52 commit dd4eb86

File tree

309 files changed

+4246
-1533
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

309 files changed

+4246
-1533
lines changed

.clippy.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ check-private-items = true
77
disallowed-macros = [
88
# The `clippy::dbg_macro` lint only works with `std::dbg!`, thus we simulate
99
# it here, see: https://github.com/rust-lang/rust-clippy/issues/11303.
10-
{ path = "kernel::dbg", reason = "the `dbg!` macro is intended as a debugging tool" },
10+
{ path = "kernel::dbg", reason = "the `dbg!` macro is intended as a debugging tool", allow-invalid = true },
1111
]

.mailmap

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -447,6 +447,8 @@ Luca Ceresoli <luca.ceresoli@bootlin.com> <luca@lucaceresoli.net>
447447
Luca Weiss <luca@lucaweiss.eu> <luca@z3ntu.xyz>
448448
Lukasz Luba <lukasz.luba@arm.com> <l.luba@partner.samsung.com>
449449
Luo Jie <quic_luoj@quicinc.com> <luoj@codeaurora.org>
450+
Lance Yang <lance.yang@linux.dev> <ioworker0@gmail.com>
451+
Lance Yang <lance.yang@linux.dev> <mingzhe.yang@ly.com>
450452
Maciej W. Rozycki <macro@mips.com> <macro@imgtec.com>
451453
Maciej W. Rozycki <macro@orcam.me.uk> <macro@linux-mips.org>
452454
Maharaja Kennadyrajan <quic_mkenna@quicinc.com> <mkenna@codeaurora.org>
@@ -483,6 +485,7 @@ Matthias Fuchs <socketcan@esd.eu> <matthias.fuchs@esd.eu>
483485
Matthieu Baerts <matttbe@kernel.org> <matthieu.baerts@tessares.net>
484486
Matthieu CASTET <castet.matthieu@free.fr>
485487
Matti Vaittinen <mazziesaccount@gmail.com> <matti.vaittinen@fi.rohmeurope.com>
488+
Mattijs Korpershoek <mkorpershoek@kernel.org> <mkorpershoek@baylibre.com>
486489
Matt Ranostay <matt@ranostay.sg> <matt.ranostay@konsulko.com>
487490
Matt Ranostay <matt@ranostay.sg> <matt@ranostay.consulting>
488491
Matt Ranostay <matt@ranostay.sg> Matthew Ranostay <mranostay@embeddedalley.com>
@@ -749,6 +752,7 @@ Tvrtko Ursulin <tursulin@ursulin.net> <tvrtko@ursulin.net>
749752
Tycho Andersen <tycho@tycho.pizza> <tycho@tycho.ws>
750753
Tzung-Bi Shih <tzungbi@kernel.org> <tzungbi@google.com>
751754
Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
755+
Uwe Kleine-König <u.kleine-koenig@baylibre.com> <ukleinek@baylibre.com>
752756
Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
753757
Uwe Kleine-König <ukleinek@strlen.de>
754758
Uwe Kleine-König <ukl@pengutronix.de>

Documentation/devicetree/bindings/input/mediatek,mt6779-keypad.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
77
title: Mediatek's Keypad Controller
88

99
maintainers:
10-
- Mattijs Korpershoek <mkorpershoek@baylibre.com>
10+
- Mattijs Korpershoek <mkorpershoek@kernel.org>
1111

1212
allOf:
1313
- $ref: /schemas/input/matrix-keymap.yaml#

Documentation/devicetree/bindings/net/ethernet-controller.yaml

Lines changed: 90 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -74,19 +74,17 @@ properties:
7474
- rev-rmii
7575
- moca
7676

77-
# RX and TX delays are added by the MAC when required
77+
# RX and TX delays are provided by the PCB. See below
7878
- rgmii
7979

80-
# RGMII with internal RX and TX delays provided by the PHY,
81-
# the MAC should not add the RX or TX delays in this case
80+
# RX and TX delays are not provided by the PCB. This is the most
81+
# frequent case. See below
8282
- rgmii-id
8383

84-
# RGMII with internal RX delay provided by the PHY, the MAC
85-
# should not add an RX delay in this case
84+
# TX delay is provided by the PCB. See below
8685
- rgmii-rxid
8786

88-
# RGMII with internal TX delay provided by the PHY, the MAC
89-
# should not add an TX delay in this case
87+
# RX delay is provided by the PCB. See below
9088
- rgmii-txid
9189
- rtbi
9290
- smii
@@ -286,4 +284,89 @@ allOf:
286284

287285
additionalProperties: true
288286

287+
# Informative
288+
# ===========
289+
#
290+
# 'phy-modes' & 'phy-connection-type' properties 'rgmii', 'rgmii-id',
291+
# 'rgmii-rxid', and 'rgmii-txid' are frequently used wrongly by
292+
# developers. This informative section clarifies their usage.
293+
#
294+
# The RGMII specification requires a 2ns delay between the data and
295+
# clock signals on the RGMII bus. How this delay is implemented is not
296+
# specified.
297+
#
298+
# One option is to make the clock traces on the PCB longer than the
299+
# data traces. A sufficiently difference in length can provide the 2ns
300+
# delay. If both the RX and TX delays are implemented in this manner,
301+
# 'rgmii' should be used, so indicating the PCB adds the delays.
302+
#
303+
# If the PCB does not add these delays via extra long traces,
304+
# 'rgmii-id' should be used. Here, 'id' refers to 'internal delay',
305+
# where either the MAC or PHY adds the delay.
306+
#
307+
# If only one of the two delays are implemented via extra long clock
308+
# lines, either 'rgmii-rxid' or 'rgmii-txid' should be used,
309+
# indicating the MAC or PHY should implement one of the delays
310+
# internally, while the PCB implements the other delay.
311+
#
312+
# Device Tree describes hardware, and in this case, it describes the
313+
# PCB between the MAC and the PHY, if the PCB implements delays or
314+
# not.
315+
#
316+
# In practice, very few PCBs make use of extra long clock lines. Hence
317+
# any RGMII phy mode other than 'rgmii-id' is probably wrong, and is
318+
# unlikely to be accepted during review without details provided in
319+
# the commit description and comments in the .dts file.
320+
#
321+
# When the PCB does not implement the delays, the MAC or PHY must. As
322+
# such, this is software configuration, and so not described in Device
323+
# Tree.
324+
#
325+
# The following describes how Linux implements the configuration of
326+
# the MAC and PHY to add these delays when the PCB does not. As stated
327+
# above, developers often get this wrong, and the aim of this section
328+
# is reduce the frequency of these errors by Linux developers. Other
329+
# users of the Device Tree may implement it differently, and still be
330+
# consistent with both the normative and informative description
331+
# above.
332+
#
333+
# By default in Linux, when using phylib/phylink, the MAC is expected
334+
# to read the 'phy-mode' from Device Tree, not implement any delays,
335+
# and pass the value to the PHY. The PHY will then implement delays as
336+
# specified by the 'phy-mode'. The PHY should always be reconfigured
337+
# to implement the needed delays, replacing any setting performed by
338+
# strapping or the bootloader, etc.
339+
#
340+
# Experience to date is that all PHYs which implement RGMII also
341+
# implement the ability to add or not add the needed delays. Hence
342+
# this default is expected to work in all cases. Ignoring this default
343+
# is likely to be questioned by Reviews, and require a strong argument
344+
# to be accepted.
345+
#
346+
# There are a small number of cases where the MAC has hard coded
347+
# delays which cannot be disabled. The 'phy-mode' only describes the
348+
# PCB. The inability to disable the delays in the MAC does not change
349+
# the meaning of 'phy-mode'. It does however mean that a 'phy-mode' of
350+
# 'rgmii' is now invalid, it cannot be supported, since both the PCB
351+
# and the MAC and PHY adding delays cannot result in a functional
352+
# link. Thus the MAC should report a fatal error for any modes which
353+
# cannot be supported. When the MAC implements the delay, it must
354+
# ensure that the PHY does not also implement the same delay. So it
355+
# must modify the phy-mode it passes to the PHY, removing the delay it
356+
# has added. Failure to remove the delay will result in a
357+
# non-functioning link.
358+
#
359+
# Sometimes there is a need to fine tune the delays. Often the MAC or
360+
# PHY can perform this fine tuning. In the MAC node, the Device Tree
361+
# properties 'rx-internal-delay-ps' and 'tx-internal-delay-ps' should
362+
# be used to indicate fine tuning performed by the MAC. The values
363+
# expected here are small. A value of 2000ps, i.e 2ns, and a phy-mode
364+
# of 'rgmii' will not be accepted by Reviewers.
365+
#
366+
# If the PHY is to perform fine tuning, the properties
367+
# 'rx-internal-delay-ps' and 'tx-internal-delay-ps' in the PHY node
368+
# should be used. When the PHY is implementing delays, e.g. 'rgmii-id'
369+
# these properties should have a value near to 2000ps. If the PCB is
370+
# implementing delays, e.g. 'rgmii', a small value can be used to fine
371+
# tune the delay added by the PCB.
289372
...
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/sound/everest,es8389.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Everest ES8389 audio CODEC
8+
9+
maintainers:
10+
- Michael Zhang <zhangyi@everest-semi.com>
11+
12+
allOf:
13+
- $ref: dai-common.yaml#
14+
15+
properties:
16+
compatible:
17+
const: everest,es8389
18+
19+
reg:
20+
maxItems: 1
21+
22+
clocks:
23+
items:
24+
- description: clock for master clock (MCLK)
25+
26+
clock-names:
27+
items:
28+
- const: mclk
29+
30+
"#sound-dai-cells":
31+
const: 0
32+
33+
required:
34+
- compatible
35+
- reg
36+
- "#sound-dai-cells"
37+
38+
additionalProperties: false
39+
40+
examples:
41+
- |
42+
i2c {
43+
#address-cells = <1>;
44+
#size-cells = <0>;
45+
es8389: codec@10 {
46+
compatible = "everest,es8389";
47+
reg = <0x10>;
48+
#sound-dai-cells = <0>;
49+
};
50+
};

MAINTAINERS

Lines changed: 65 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2519,6 +2519,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git
25192519
F: arch/arm/boot/dts/nxp/imx/
25202520
F: arch/arm/boot/dts/nxp/mxs/
25212521
F: arch/arm64/boot/dts/freescale/
2522+
X: Documentation/devicetree/bindings/media/i2c/
25222523
X: arch/arm64/boot/dts/freescale/fsl-*
25232524
X: arch/arm64/boot/dts/freescale/qoriq-*
25242525
X: drivers/media/i2c/
@@ -8726,6 +8727,7 @@ M: Chao Yu <chao@kernel.org>
87268727
R: Yue Hu <zbestahu@gmail.com>
87278728
R: Jeffle Xu <jefflexu@linux.alibaba.com>
87288729
R: Sandeep Dhavale <dhavale@google.com>
8730+
R: Hongbo Li <lihongbo22@huawei.com>
87298731
L: linux-erofs@lists.ozlabs.org
87308732
S: Maintained
87318733
W: https://erofs.docs.kernel.org
@@ -11235,7 +11237,6 @@ S: Maintained
1123511237
F: drivers/i2c/busses/i2c-cht-wc.c
1123611238

1123711239
I2C/SMBUS ISMT DRIVER
11238-
M: Seth Heasley <seth.heasley@intel.com>
1123911240
M: Neil Horman <nhorman@tuxdriver.com>
1124011241
L: linux-i2c@vger.kernel.org
1124111242
F: Documentation/i2c/busses/i2c-ismt.rst
@@ -15071,7 +15072,7 @@ F: Documentation/devicetree/bindings/media/mediatek-jpeg-*.yaml
1507115072
F: drivers/media/platform/mediatek/jpeg/
1507215073

1507315074
MEDIATEK KEYPAD DRIVER
15074-
M: Mattijs Korpershoek <mkorpershoek@baylibre.com>
15075+
M: Mattijs Korpershoek <mkorpershoek@kernel.org>
1507515076
S: Supported
1507615077
F: Documentation/devicetree/bindings/input/mediatek,mt6779-keypad.yaml
1507715078
F: drivers/input/keyboard/mt6779-keypad.c
@@ -15494,24 +15495,45 @@ F: Documentation/mm/
1549415495
F: include/linux/gfp.h
1549515496
F: include/linux/gfp_types.h
1549615497
F: include/linux/memfd.h
15497-
F: include/linux/memory.h
1549815498
F: include/linux/memory_hotplug.h
1549915499
F: include/linux/memory-tiers.h
1550015500
F: include/linux/mempolicy.h
1550115501
F: include/linux/mempool.h
1550215502
F: include/linux/memremap.h
15503-
F: include/linux/mm.h
15504-
F: include/linux/mm_*.h
1550515503
F: include/linux/mmzone.h
1550615504
F: include/linux/mmu_notifier.h
1550715505
F: include/linux/pagewalk.h
15508-
F: include/linux/rmap.h
1550915506
F: include/trace/events/ksm.h
1551015507
F: mm/
1551115508
F: tools/mm/
1551215509
F: tools/testing/selftests/mm/
1551315510
N: include/linux/page[-_]*
1551415511

15512+
MEMORY MANAGEMENT - CORE
15513+
M: Andrew Morton <akpm@linux-foundation.org>
15514+
M: David Hildenbrand <david@redhat.com>
15515+
R: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
15516+
R: Liam R. Howlett <Liam.Howlett@oracle.com>
15517+
R: Vlastimil Babka <vbabka@suse.cz>
15518+
R: Mike Rapoport <rppt@kernel.org>
15519+
R: Suren Baghdasaryan <surenb@google.com>
15520+
R: Michal Hocko <mhocko@suse.com>
15521+
L: linux-mm@kvack.org
15522+
S: Maintained
15523+
W: http://www.linux-mm.org
15524+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
15525+
F: include/linux/memory.h
15526+
F: include/linux/mm.h
15527+
F: include/linux/mm_*.h
15528+
F: include/linux/mmdebug.h
15529+
F: include/linux/pagewalk.h
15530+
F: mm/Kconfig
15531+
F: mm/debug.c
15532+
F: mm/init-mm.c
15533+
F: mm/memory.c
15534+
F: mm/pagewalk.c
15535+
F: mm/util.c
15536+
1551515537
MEMORY MANAGEMENT - EXECMEM
1551615538
M: Andrew Morton <akpm@linux-foundation.org>
1551715539
M: Mike Rapoport <rppt@kernel.org>
@@ -15545,6 +15567,19 @@ F: mm/page_alloc.c
1554515567
F: include/linux/gfp.h
1554615568
F: include/linux/compaction.h
1554715569

15570+
MEMORY MANAGEMENT - RMAP (REVERSE MAPPING)
15571+
M: Andrew Morton <akpm@linux-foundation.org>
15572+
M: David Hildenbrand <david@redhat.com>
15573+
M: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
15574+
R: Rik van Riel <riel@surriel.com>
15575+
R: Liam R. Howlett <Liam.Howlett@oracle.com>
15576+
R: Vlastimil Babka <vbabka@suse.cz>
15577+
R: Harry Yoo <harry.yoo@oracle.com>
15578+
L: linux-mm@kvack.org
15579+
S: Maintained
15580+
F: include/linux/rmap.h
15581+
F: mm/rmap.c
15582+
1554815583
MEMORY MANAGEMENT - SECRETMEM
1554915584
M: Andrew Morton <akpm@linux-foundation.org>
1555015585
M: Mike Rapoport <rppt@kernel.org>
@@ -15553,6 +15588,30 @@ S: Maintained
1555315588
F: include/linux/secretmem.h
1555415589
F: mm/secretmem.c
1555515590

15591+
MEMORY MANAGEMENT - THP (TRANSPARENT HUGE PAGE)
15592+
M: Andrew Morton <akpm@linux-foundation.org>
15593+
M: David Hildenbrand <david@redhat.com>
15594+
R: Zi Yan <ziy@nvidia.com>
15595+
R: Baolin Wang <baolin.wang@linux.alibaba.com>
15596+
R: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
15597+
R: Liam R. Howlett <Liam.Howlett@oracle.com>
15598+
R: Nico Pache <npache@redhat.com>
15599+
R: Ryan Roberts <ryan.roberts@arm.com>
15600+
R: Dev Jain <dev.jain@arm.com>
15601+
L: linux-mm@kvack.org
15602+
S: Maintained
15603+
W: http://www.linux-mm.org
15604+
T: git git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
15605+
F: Documentation/admin-guide/mm/transhuge.rst
15606+
F: include/linux/huge_mm.h
15607+
F: include/linux/khugepaged.h
15608+
F: include/trace/events/huge_memory.h
15609+
F: mm/huge_memory.c
15610+
F: mm/khugepaged.c
15611+
F: tools/testing/selftests/mm/khugepaged.c
15612+
F: tools/testing/selftests/mm/split_huge_page_test.c
15613+
F: tools/testing/selftests/mm/transhuge-stress.c
15614+
1555615615
MEMORY MANAGEMENT - USERFAULTFD
1555715616
M: Andrew Morton <akpm@linux-foundation.org>
1555815617
R: Peter Xu <peterx@redhat.com>

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
VERSION = 6
33
PATCHLEVEL = 15
44
SUBLEVEL = 0
5-
EXTRAVERSION = -rc5
5+
EXTRAVERSION = -rc6
66
NAME = Baby Opossum Posse
77

88
# *DOCUMENTATION*

arch/arm/boot/dts/nxp/imx/imx6ul-imx6ull-opos6ul.dtsi

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@
4040
reg = <1>;
4141
interrupt-parent = <&gpio4>;
4242
interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
43+
micrel,led-mode = <1>;
44+
clocks = <&clks IMX6UL_CLK_ENET_REF>;
45+
clock-names = "rmii-ref";
4346
status = "okay";
4447
};
4548
};

0 commit comments

Comments
 (0)