toes-image-builder/audio/toesaudio.dts
2026-05-13 20:23:09 +00:00

137 lines
4.2 KiB
Plaintext

/dts-v1/;
/plugin/;
/ {
compatible = "brcm,bcm2712";
fragment@0 {
target = <&i2s_clk_producer>;
__overlay__ {
status = "okay";
};
};
fragment@1 {
target-path = "/";
__overlay__ {
tlv320_dvdd: regulator-tlv320-dvdd {
compatible = "regulator-fixed";
regulator-name = "tlv320-dvdd-1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
tlv320_iovdd: regulator-tlv320-iovdd {
compatible = "regulator-fixed";
regulator-name = "tlv320-iovdd-3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
tlv320_avdd: regulator-tlv320-avdd {
compatible = "regulator-fixed";
regulator-name = "tlv320-avdd-3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
tlv320_hpvdd: regulator-tlv320-hpvdd {
compatible = "regulator-fixed";
regulator-name = "tlv320-hpvdd-3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
tlv320_spkvdd: regulator-tlv320-spkvdd {
compatible = "regulator-fixed";
regulator-name = "tlv320-spkvdd-5v0";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-always-on;
};
/*
* The T5848 is a control-less I2S microphone from Linux's point
* of view, so use the generic ICS43432 codec DAI as a simple
* capture endpoint and keep the speaker path unchanged.
*/
mic_codec: t5848-codec {
compatible = "invensense,ics43432";
#sound-dai-cells = <0>;
};
};
};
fragment@2 {
target = <&i2c_arm>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
dac_codec: tlv320dac3100@18 {
compatible = "ti,tlv320dac3100";
reg = <0x18>;
#sound-dai-cells = <0>;
AVDD-supply = <&tlv320_avdd>;
IOVDD-supply = <&tlv320_iovdd>;
DVDD-supply = <&tlv320_dvdd>;
HPVDD-supply = <&tlv320_hpvdd>;
SPLVDD-supply = <&tlv320_spkvdd>;
SPRVDD-supply = <&tlv320_spkvdd>;
reset-gpios = <&gpio 12 1>; /* GPIO_ACTIVE_LOW */
ti,pll-clkin-src = <1>;
status = "okay";
};
};
};
fragment@3 {
target-path = "/";
__overlay__ {
sound {
compatible = "simple-audio-card";
#address-cells = <1>;
#size-cells = <0>;
simple-audio-card,name = "toesaudio";
simple-audio-card,format = "i2s";
status = "okay";
simple-audio-card,dai-link@0 {
reg = <0>;
format = "i2s";
bitclock-master = <&cpu0>;
frame-master = <&cpu0>;
cpu0: cpu {
sound-dai = <&i2s_clk_producer>;
};
codec0: codec {
sound-dai = <&dac_codec>;
system-clock-frequency = <1536000>;
};
};
simple-audio-card,dai-link@1 {
reg = <1>;
format = "i2s";
bitclock-master = <&cpu1>;
frame-master = <&cpu1>;
cpu1: cpu {
sound-dai = <&i2s_clk_producer>;
};
codec1: codec {
sound-dai = <&mic_codec>;
};
};
};
};
};
};