mirror of
https://github.com/torvalds/linux.git
synced 2024-12-23 11:21:33 +00:00
fd23fb9f6b
The CS4271 requires its LRCLK and MCLK to be stable before its RESET line is de-asserted. That also means that clocks cannot be changed without putting the chip back into hardware reset, which also requires a complete re-initialization of all registers. One (undocumented) workaround is to assert and de-assert the PDN bit in the MODE2 register. This patch adds a new flag to both the DT bindings as well as to the platform data to enable that workaround. Signed-off-by: Daniel Mack <zonque@gmail.com> Acked-by: Alexander Sverdlin <subaparts@yandex.ru> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
51 lines
1.3 KiB
Plaintext
51 lines
1.3 KiB
Plaintext
Cirrus Logic CS4271 DT bindings
|
|
|
|
This driver supports both the I2C and the SPI bus.
|
|
|
|
Required properties:
|
|
|
|
- compatible: "cirrus,cs4271"
|
|
|
|
For required properties on SPI, please consult
|
|
Documentation/devicetree/bindings/spi/spi-bus.txt
|
|
|
|
Required properties on I2C:
|
|
|
|
- reg: the i2c address
|
|
|
|
|
|
Optional properties:
|
|
|
|
- reset-gpio: a GPIO spec to define which pin is connected to the chip's
|
|
!RESET pin
|
|
- cirrus,amuteb-eq-bmutec: When given, the Codec's AMUTEB=BMUTEC flag
|
|
is enabled.
|
|
- cirrus,enable-soft-reset:
|
|
The CS4271 requires its LRCLK and MCLK to be stable before its RESET
|
|
line is de-asserted. That also means that clocks cannot be changed
|
|
without putting the chip back into hardware reset, which also requires
|
|
a complete re-initialization of all registers.
|
|
|
|
One (undocumented) workaround is to assert and de-assert the PDN bit
|
|
in the MODE2 register. This workaround can be enabled with this DT
|
|
property.
|
|
|
|
Note that this is not needed in case the clocks are stable
|
|
throughout the entire runtime of the codec.
|
|
|
|
Examples:
|
|
|
|
codec_i2c: cs4271@10 {
|
|
compatible = "cirrus,cs4271";
|
|
reg = <0x10>;
|
|
reset-gpio = <&gpio 23 0>;
|
|
};
|
|
|
|
codec_spi: cs4271@0 {
|
|
compatible = "cirrus,cs4271";
|
|
reg = <0x0>;
|
|
reset-gpio = <&gpio 23 0>;
|
|
spi-max-frequency = <6000000>;
|
|
};
|
|
|