Skip to content

Commit 3b6bf5b

Browse files
committed
Merge tag 'spi-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
Pull spi updates from Mark Brown: "There's been quite a lot of generic activity here, but more administrative than featuers. We also have a bunch of new drivers, including one that's part of a MFD so we pulled in the core parts of that: - Lots of work from both Yang Yingliang and Andy Shevchenko on moving to host/device/controller based terminology for devices. - QuadSPI SPI support for Allwinner sun6i. - New device support Cirrus Logic CS43L43, Longsoon, Qualcomm GENI QuPv3 and StarFive JH7110 QSPI" * tag 'spi-v6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (151 commits) spi: at91-usart: Use PTR_ERR_OR_ZERO() to simplify code spi: spi-sn-f-ospi: switch to use modern name spi: sifive: switch to use modern name spi: sh: switch to use modern name spi: sh-sci: switch to use modern name spi: sh-msiof: switch to use modern name spi: sh-hspi: switch to use modern name spi: sc18is602: switch to use modern name spi: s3c64xx: switch to use modern name spi: rzv2m-csi: switch to use devm_spi_alloc_host() spi: rspi: switch to use spi_alloc_host() spi: rockchip: switch to use modern name spi: rockchip-sfc: switch to use modern name spi: realtek-rtl: switch to use devm_spi_alloc_host() spi: rb4xx: switch to use modern name spi: qup: switch to use modern name spi: spi-qcom-qspi: switch to use modern name spi: pxa2xx: switch to use modern name spi: ppc4xx: switch to use modern name spi: spl022: switch to use modern name ...
2 parents 65234f9 + 60ea3db commit 3b6bf5b

File tree

153 files changed

+7500
-2582
lines changed

Some content is hidden

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

153 files changed

+7500
-2582
lines changed
Lines changed: 313 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,313 @@
1+
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/sound/cirrus,cs42l43.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Cirrus Logic CS42L43 Audio CODEC
8+
9+
maintainers:
10+
- patches@opensource.cirrus.com
11+
12+
description: |
13+
The CS42L43 is an audio CODEC with integrated MIPI SoundWire interface
14+
(Version 1.2.1 compliant), I2C, SPI, and I2S/TDM interfaces designed
15+
for portable applications. It provides a high dynamic range, stereo
16+
DAC for headphone output, two integrated Class D amplifiers for
17+
loudspeakers, and two ADCs for wired headset microphone input or
18+
stereo line input. PDM inputs are provided for digital microphones.
19+
20+
allOf:
21+
- $ref: dai-common.yaml#
22+
23+
properties:
24+
compatible:
25+
enum:
26+
- cirrus,cs42l43
27+
28+
reg:
29+
maxItems: 1
30+
31+
vdd-p-supply:
32+
description:
33+
Power supply for the high voltage interface.
34+
35+
vdd-a-supply:
36+
description:
37+
Power supply for internal analog circuits.
38+
39+
vdd-d-supply:
40+
description:
41+
Power supply for internal digital circuits. Can be internally supplied.
42+
43+
vdd-io-supply:
44+
description:
45+
Power supply for external interface and internal digital logic.
46+
47+
vdd-cp-supply:
48+
description:
49+
Power supply for the amplifier 3 and 4 charge pump.
50+
51+
vdd-amp-supply:
52+
description:
53+
Power supply for amplifier 1 and 2.
54+
55+
reset-gpios:
56+
maxItems: 1
57+
58+
interrupt-controller: true
59+
60+
"#interrupt-cells":
61+
const: 2
62+
63+
interrupts:
64+
maxItems: 1
65+
66+
"#sound-dai-cells":
67+
const: 1
68+
69+
clocks:
70+
items:
71+
- description: Synchronous audio clock provided on mclk_in.
72+
73+
clock-names:
74+
const: mclk
75+
76+
cirrus,bias-low:
77+
type: boolean
78+
description:
79+
Select a 1.8V headset micbias rather than 2.8V.
80+
81+
cirrus,bias-sense-microamp:
82+
description:
83+
Current at which the headset micbias sense clamp will engage, 0 to
84+
disable.
85+
enum: [ 0, 14, 23, 41, 50, 60, 68, 86, 95 ]
86+
default: 0
87+
88+
cirrus,bias-ramp-ms:
89+
description:
90+
Time in milliseconds the hardware allows for the headset micbias to
91+
ramp up.
92+
enum: [ 10, 40, 90, 170 ]
93+
default: 170
94+
95+
cirrus,detect-us:
96+
description:
97+
Time in microseconds the type detection will run for. Long values will
98+
cause more audible effects, but give more accurate detection.
99+
enum: [ 20, 100, 1000, 10000, 50000, 75000, 100000, 200000 ]
100+
default: 10000
101+
102+
cirrus,button-automute:
103+
type: boolean
104+
description:
105+
Enable the hardware automuting of decimator 1 when a headset button is
106+
pressed.
107+
108+
cirrus,buttons-ohms:
109+
description:
110+
Impedance in Ohms for each headset button, these should be listed in
111+
ascending order.
112+
minItems: 1
113+
maxItems: 6
114+
115+
cirrus,tip-debounce-ms:
116+
description:
117+
Software debounce on tip sense triggering in milliseconds.
118+
default: 0
119+
120+
cirrus,tip-invert:
121+
type: boolean
122+
description:
123+
Indicates tip detect polarity, inverted implies open-circuit whilst the
124+
jack is inserted.
125+
126+
cirrus,tip-disable-pullup:
127+
type: boolean
128+
description:
129+
Indicates if the internal pullup on the tip detect should be disabled.
130+
131+
cirrus,tip-fall-db-ms:
132+
description:
133+
Time in milliseconds a falling edge on the tip detect should be hardware
134+
debounced for. Note the falling edge is considered after the invert.
135+
enum: [ 0, 125, 250, 500, 750, 1000, 1250, 1500 ]
136+
default: 500
137+
138+
cirrus,tip-rise-db-ms:
139+
description:
140+
Time in milliseconds a rising edge on the tip detect should be hardware
141+
debounced for. Note the rising edge is considered after the invert.
142+
enum: [ 0, 125, 250, 500, 750, 1000, 1250, 1500 ]
143+
default: 500
144+
145+
cirrus,use-ring-sense:
146+
type: boolean
147+
description:
148+
Indicates if the ring sense should be used.
149+
150+
cirrus,ring-invert:
151+
type: boolean
152+
description:
153+
Indicates ring detect polarity, inverted implies open-circuit whilst the
154+
jack is inserted.
155+
156+
cirrus,ring-disable-pullup:
157+
type: boolean
158+
description:
159+
Indicates if the internal pullup on the ring detect should be disabled.
160+
161+
cirrus,ring-fall-db-ms:
162+
description:
163+
Time in milliseconds a falling edge on the ring detect should be hardware
164+
debounced for. Note the falling edge is considered after the invert.
165+
enum: [ 0, 125, 250, 500, 750, 1000, 1250, 1500 ]
166+
default: 500
167+
168+
cirrus,ring-rise-db-ms:
169+
description:
170+
Time in milliseconds a rising edge on the ring detect should be hardware
171+
debounced for. Note the rising edge is considered after the invert.
172+
enum: [ 0, 125, 250, 500, 750, 1000, 1250, 1500 ]
173+
default: 500
174+
175+
pinctrl:
176+
type: object
177+
$ref: /schemas/pinctrl/pinctrl.yaml#
178+
additionalProperties: false
179+
180+
properties:
181+
gpio-controller: true
182+
183+
"#gpio-cells":
184+
const: 2
185+
186+
gpio-ranges:
187+
items:
188+
- description: A phandle to the CODEC pinctrl node
189+
minimum: 0
190+
- const: 0
191+
- const: 0
192+
- const: 3
193+
194+
patternProperties:
195+
"-state$":
196+
oneOf:
197+
- $ref: "#/$defs/cirrus-cs42l43-state"
198+
- patternProperties:
199+
"-pins$":
200+
$ref: "#/$defs/cirrus-cs42l43-state"
201+
additionalProperties: false
202+
203+
spi:
204+
type: object
205+
$ref: /schemas/spi/spi-controller.yaml#
206+
unevaluatedProperties: false
207+
208+
$defs:
209+
cirrus-cs42l43-state:
210+
type: object
211+
212+
allOf:
213+
- $ref: /schemas/pinctrl/pincfg-node.yaml#
214+
- $ref: /schemas/pinctrl/pinmux-node.yaml#
215+
216+
oneOf:
217+
- required: [ groups ]
218+
- required: [ pins ]
219+
220+
additionalProperties: false
221+
222+
properties:
223+
groups:
224+
enum: [ gpio1, gpio2, gpio3, asp, pdmout2, pdmout1, i2c, spi ]
225+
226+
pins:
227+
enum: [ gpio1, gpio2, gpio3,
228+
asp_dout, asp_fsync, asp_bclk,
229+
pdmout2_clk, pdmout2_data, pdmout1_clk, pdmout1_data,
230+
i2c_sda, i2c_scl,
231+
spi_miso, spi_sck, spi_ssb ]
232+
233+
function:
234+
enum: [ gpio, spdif, irq, mic-shutter, spk-shutter ]
235+
236+
drive-strength:
237+
description: Set drive strength in mA
238+
enum: [ 1, 2, 4, 8, 9, 10, 12, 16 ]
239+
240+
input-debounce:
241+
description: Set input debounce in uS
242+
enum: [ 0, 85 ]
243+
244+
required:
245+
- compatible
246+
- reg
247+
- vdd-p-supply
248+
- vdd-a-supply
249+
- vdd-io-supply
250+
- vdd-cp-supply
251+
252+
additionalProperties: false
253+
254+
examples:
255+
- |
256+
#include <dt-bindings/interrupt-controller/irq.h>
257+
258+
i2c {
259+
#address-cells = <1>;
260+
#size-cells = <0>;
261+
262+
cs42l43: codec@1a {
263+
compatible = "cirrus,cs42l43";
264+
reg = <0x1a>;
265+
266+
vdd-p-supply = <&vdd5v0>;
267+
vdd-a-supply = <&vdd1v8>;
268+
vdd-io-supply = <&vdd1v8>;
269+
vdd-cp-supply = <&vdd1v8>;
270+
vdd-amp-supply = <&vdd5v0>;
271+
272+
reset-gpios = <&gpio 0>;
273+
274+
interrupt-controller;
275+
#interrupt-cells = <2>;
276+
interrupt-parent = <&gpio>;
277+
interrupts = <56 IRQ_TYPE_LEVEL_LOW>;
278+
279+
#sound-dai-cells = <1>;
280+
281+
clocks = <&clks 0>;
282+
clock-names = "mclk";
283+
284+
cs42l43_pins: pinctrl {
285+
gpio-controller;
286+
#gpio-cells = <2>;
287+
gpio-ranges = <&cs42l43_pins 0 0 3>;
288+
289+
pinctrl-names = "default";
290+
pinctrl-0 = <&pinsettings>;
291+
292+
pinsettings: default-state {
293+
shutter-pins {
294+
groups = "gpio3";
295+
function = "mic-shutter";
296+
};
297+
};
298+
};
299+
300+
spi {
301+
#address-cells = <1>;
302+
#size-cells = <0>;
303+
304+
cs-gpios = <&cs42l43_pins 1 0>;
305+
306+
sensor@0 {
307+
compatible = "bosch,bme680";
308+
reg = <0>;
309+
spi-max-frequency = <1400000>;
310+
};
311+
};
312+
};
313+
};
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/spi/brcm,bcm63xx-spi.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Broadcom BCM6348/BCM6358 SPI controller
8+
9+
maintainers:
10+
- Jonas Gorski <jonas.gorski@gmail.com>
11+
12+
description: |
13+
Broadcom "Low Speed" SPI controller found in many older MIPS based Broadband
14+
SoCs.
15+
16+
This controller has a limitation that can not keep the chip select line active
17+
between the SPI transfers within the same SPI message. This can terminate the
18+
transaction to some SPI devices prematurely. The issue can be worked around by
19+
the controller's prepend mode.
20+
21+
allOf:
22+
- $ref: spi-controller.yaml#
23+
24+
properties:
25+
compatible:
26+
oneOf:
27+
- items:
28+
- enum:
29+
- brcm,bcm6368-spi
30+
- brcm,bcm6362-spi
31+
- brcm,bcm63268-spi
32+
- const: brcm,bcm6358-spi
33+
- enum:
34+
- brcm,bcm6348-spi
35+
- brcm,bcm6358-spi
36+
37+
reg:
38+
maxItems: 1
39+
40+
clocks:
41+
items:
42+
- description: SPI master reference clock
43+
44+
clock-names:
45+
items:
46+
- const: spi
47+
48+
interrupts:
49+
maxItems: 1
50+
51+
required:
52+
- compatible
53+
- reg
54+
- clocks
55+
- clock-names
56+
- interrupts
57+
58+
unevaluatedProperties: false
59+
60+
examples:
61+
- |
62+
spi@10000800 {
63+
compatible = "brcm,bcm6368-spi", "brcm,bcm6358-spi";
64+
reg = <0x10000800 0x70c>;
65+
interrupts = <1>;
66+
clocks = <&clkctl 9>;
67+
clock-names = "spi";
68+
num-cs = <5>;
69+
#address-cells = <1>;
70+
#size-cells = <0>;
71+
};

0 commit comments

Comments
 (0)