Skip to content

Commit db34128

Browse files
authored
Merge pull request #3637 from plbossart/merge/sound-upstream-20220509
Merge/sound upstream 20220509
2 parents 9598f4e + 3b2cbb5 commit db34128

Some content is hidden

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

46 files changed

+3679
-1338
lines changed
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/dsp/mediatek,mt8195-dsp.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Mediatek mt8195 DSP core
8+
9+
maintainers:
10+
- YC Hung <yc.hung@mediatek.com>
11+
12+
description: |
13+
Some boards from mt8195 contain a DSP core used for
14+
advanced pre- and post- audio processing.
15+
16+
properties:
17+
compatible:
18+
const: mediatek,mt8195-dsp
19+
20+
reg:
21+
items:
22+
- description: Address and size of the DSP Cfg registers
23+
- description: Address and size of the DSP SRAM
24+
25+
reg-names:
26+
items:
27+
- const: cfg
28+
- const: sram
29+
30+
clocks:
31+
items:
32+
- description: mux for audio dsp clock
33+
- description: 26M clock
34+
- description: mux for audio dsp local bus
35+
- description: default audio dsp local bus clock source
36+
- description: clock gate for audio dsp clock
37+
- description: mux for audio dsp access external bus
38+
39+
clock-names:
40+
items:
41+
- const: adsp_sel
42+
- const: clk26m_ck
43+
- const: audio_local_bus
44+
- const: mainpll_d7_d2
45+
- const: scp_adsp_audiodsp
46+
- const: audio_h
47+
48+
power-domains:
49+
maxItems: 1
50+
51+
mboxes:
52+
items:
53+
- description: ipc reply between host and audio DSP.
54+
- description: ipc request between host and audio DSP.
55+
56+
mbox-names:
57+
items:
58+
- const: mbox0
59+
- const: mbox1
60+
61+
memory-region:
62+
items:
63+
- description: dma buffer between host and DSP.
64+
- description: DSP system memory.
65+
66+
required:
67+
- compatible
68+
- reg
69+
- reg-names
70+
- clocks
71+
- clock-names
72+
- memory-region
73+
- power-domains
74+
- mbox-names
75+
- mboxes
76+
77+
additionalProperties: false
78+
79+
examples:
80+
- |
81+
#include <dt-bindings/interrupt-controller/arm-gic.h>
82+
#include <dt-bindings/interrupt-controller/irq.h>
83+
dsp@10803000 {
84+
compatible = "mediatek,mt8195-dsp";
85+
reg = <0x10803000 0x1000>,
86+
<0x10840000 0x40000>;
87+
reg-names = "cfg", "sram";
88+
clocks = <&topckgen 10>, //CLK_TOP_ADSP
89+
<&clk26m>,
90+
<&topckgen 107>, //CLK_TOP_AUDIO_LOCAL_BUS
91+
<&topckgen 136>, //CLK_TOP_MAINPLL_D7_D2
92+
<&scp_adsp 0>, //CLK_SCP_ADSP_AUDIODSP
93+
<&topckgen 34>; //CLK_TOP_AUDIO_H
94+
clock-names = "adsp_sel",
95+
"clk26m_ck",
96+
"audio_local_bus",
97+
"mainpll_d7_d2",
98+
"scp_adsp_audiodsp",
99+
"audio_h";
100+
memory-region = <&adsp_dma_mem_reserved>,
101+
<&adsp_mem_reserved>;
102+
power-domains = <&spm 6>; //MT8195_POWER_DOMAIN_ADSP
103+
mbox-names = "mbox0", "mbox1";
104+
mboxes = <&adsp_mailbox0>, <&adsp_mailbox1>;
105+
};
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/sound/adi,max98396.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Analog Devices MAX98396 Speaker Amplifier Device Tree Bindings
8+
9+
maintainers:
10+
- Ryan Lee <ryans.lee@analog.com>
11+
12+
description:
13+
The MAX98396 is a mono Class-DG speaker amplifier with I/V sense.
14+
The device provides a PCM interface for audio data and a standard
15+
I2C interface for control data communication.
16+
The MAX98397 is a variant of MAX98396 with wide input supply range.
17+
18+
properties:
19+
compatible:
20+
enum:
21+
- adi,max98396
22+
- adi,max98397
23+
reg:
24+
maxItems: 1
25+
description: I2C address of the device.
26+
27+
adi,vmon-slot-no:
28+
description: slot number of the voltage sense monitor
29+
$ref: "/schemas/types.yaml#/definitions/uint32"
30+
minimum: 0
31+
maximum: 15
32+
default: 0
33+
34+
adi,imon-slot-no:
35+
description: slot number of the current sense monitor
36+
$ref: "/schemas/types.yaml#/definitions/uint32"
37+
minimum: 0
38+
maximum: 15
39+
default: 0
40+
41+
adi,spkfb-slot-no:
42+
description: slot number of speaker DSP monitor
43+
$ref: "/schemas/types.yaml#/definitions/uint32"
44+
minimum: 0
45+
maximum: 15
46+
default: 0
47+
48+
adi,interleave-mode:
49+
description:
50+
For cases where a single combined channel for the I/V sense data
51+
is not sufficient, the device can also be configured to share
52+
a single data output channel on alternating frames.
53+
In this configuration, the current and voltage data will be frame
54+
interleaved on a single output channel.
55+
type: boolean
56+
57+
reset-gpios:
58+
maxItems: 1
59+
60+
required:
61+
- compatible
62+
- reg
63+
64+
additionalProperties: false
65+
66+
examples:
67+
- |
68+
#include <dt-bindings/gpio/gpio.h>
69+
i2c {
70+
#address-cells = <1>;
71+
#size-cells = <0>;
72+
max98396: amplifier@39 {
73+
compatible = "adi,max98396";
74+
reg = <0x39>;
75+
adi,vmon-slot-no = <0>;
76+
adi,imon-slot-no = <1>;
77+
reset-gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
78+
};
79+
};

drivers/base/regmap/internal.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,10 @@ struct regmap {
110110
int (*reg_write)(void *context, unsigned int reg, unsigned int val);
111111
int (*reg_update_bits)(void *context, unsigned int reg,
112112
unsigned int mask, unsigned int val);
113+
/* Bulk read/write */
114+
int (*read)(void *context, const void *reg_buf, size_t reg_size,
115+
void *val_buf, size_t val_size);
116+
int (*write)(void *context, const void *data, size_t count);
113117

114118
bool defer_caching;
115119

0 commit comments

Comments
 (0)