c4c112dcaf
See upstream - https://github.com/raspberrypi/documentation/issues/1671 https://github.com/raspberrypi/documentation/pull/1673 Quoted here: * Only Device Tree nodes at the top level of the tree and children of a bus node will be probed. For nodes added at run-time there is the further limitation that the bus must register for notifications of the addition and removal of children. However, there are exceptions that break this rule and cause confusion: the kernel explicitly scans the entire tree for some device types - clocks and interrupt controller being the two main ones - in order to (for clocks) initialise them early and/or (for interrupt controllers) in a particular order. This search mechanism only happens during booting and so doesn't work for nodes added by an overlay at run-time. It is therefore recommended for overlays to place fixed-clock nodes in the root of the tree unless it is guaranteed that the overlay will not be used at run-time.
75 lines
1.4 KiB
Text
75 lines
1.4 KiB
Text
/dts-v1/;
|
|
/plugin/;
|
|
|
|
/ {
|
|
compatible = "brcm,bcm2708";
|
|
|
|
fragment@0 {
|
|
target = <&i2s>;
|
|
__overlay__ {
|
|
#sound-dai-cells = <0>;
|
|
status = "okay";
|
|
};
|
|
};
|
|
|
|
fragment@1 {
|
|
target-path = "/";
|
|
__overlay__ {
|
|
ac108_mclk: codec-mclk {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
clock-frequency = <24000000>;
|
|
};
|
|
};
|
|
};
|
|
|
|
fragment@2 {
|
|
target = <&i2c1>;
|
|
__overlay__ {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "okay";
|
|
|
|
ac108_a: ac108@3b{
|
|
compatible = "x-power,ac108_0";
|
|
reg = <0x3b>;
|
|
#sound-dai-cells = <0>;
|
|
data-protocol = <0>;
|
|
};
|
|
};
|
|
};
|
|
|
|
|
|
fragment@3 {
|
|
target = <&sound>;
|
|
|
|
sound_overlay: __overlay__ {
|
|
compatible = "seeed-voicecard";
|
|
seeed-voice-card,format = "dsp_a";
|
|
seeed-voice-card,name = "seeed-4mic-voicecard";
|
|
status = "okay";
|
|
|
|
seeed-voice-card,bitclock-master = <&codec_dai>;
|
|
seeed-voice-card,frame-master = <&codec_dai>;
|
|
seeed-voice-card,channels-playback-override = <4>;
|
|
seeed-voice-card,channels-capture-override = <4>;
|
|
|
|
cpu_dai: seeed-voice-card,cpu {
|
|
sound-dai = <&i2s>;
|
|
dai-tdm-slot-num = <2>;
|
|
dai-tdm-slot-width = <32>;
|
|
dai-tdm-slot-tx-mask = <1 1 0 0>;
|
|
dai-tdm-slot-rx-mask = <1 1 0 0>;
|
|
};
|
|
codec_dai: seeed-voice-card,codec {
|
|
sound-dai = <&ac108_a>;
|
|
clocks = <&ac108_mclk>;
|
|
};
|
|
};
|
|
};
|
|
|
|
__overrides__ {
|
|
card-name = <&sound_overlay>,"seeed-voice-card,name";
|
|
};
|
|
};
|
|
|