/dts-v1/; /plugin/; / { compatible = "brcm,bcm2835"; /* Fragment 0: Define power regulators FIRST */ fragment@0 { target-path = "/"; __overlay__ { /* 3.3V regulator for analog/digital IO */ vdd_3v3_reg: regulator_3v3 { compatible = "regulator-fixed"; regulator-name = "vdd-3v3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; regulator-boot-on; }; /* 1.8V regulator for digital core - CRITICAL */ vdd_1v8_reg: regulator_1v8 { compatible = "regulator-fixed"; regulator-name = "vdd-1v8"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; regulator-boot-on; }; }; }; fragment@1 { target = <&i2s>; __overlay__ { status = "okay"; }; }; // fragment@1 { // target = <&gpio>; //"/soc/gpio@7e200000"; //<&gpio>; // __overlay__ { // gpclk0_pins: gpclk0_pins { // brcm,pins = <4>; // GPIO4 is GPCLK0 // brcm,function = <4>; // ALT0 function // brcm,pull = <0>; // No pull-up/down // }; // }; // }; // fragment@2 { // target = <&clocks>; //"/soc/clock@7ef00000"; //<&clocks>; // __overlay__ { // gpclk0: gpclk0 { // compatible = "fixed-clock"; // #clock-cells = <0>; // clock-frequency = <11289600>; // 11.2896 MHz // clock-output-names = "gpclk0"; // }; // }; // }; fragment@2 { target = <&i2c1>; //"/soc/i2c@7e804000"; //<&i2c1>; __overlay__ { #address-cells = <1>; #size-cells = <0>; tlv320: tlv320aic3120@18 { compatible = "ti,tlv320aic3120"; reg = <0x18>; #sound-dai-cells = <0>; clocks = <&dummy_clock>; //<&gpclk0>; //<&dummy_clock>; clock-names = "mclk"; /* Power supply rails - CORRECT voltages */ /* All 3.3V rails */ HPVDD-supply = <&vdd_3v3_reg>; /* Headphone driver power */ SPLVDD-supply = <&vdd_3v3_reg>; /* Speaker driver power */ SPRVDD-supply = <&vdd_3v3_reg>; AVDD-supply = <&vdd_3v3_reg>; /* Analog power */ IOVDD-supply = <&vdd_3v3_reg>; /* Digital IO power */ /* 1.8V rail - CRITICAL */ DVDD-supply = <&vdd_1v8_reg>; /* Digital core power */ /* Optional: Reset GPIO */ reset-gpios = <&gpio 17 0>; /* GPIO17, active low */ /* MICBIAS configuration */ ai31xx-micbias-vg = <2>; /* 0=2.0V, 1=2.5V, 2=AVDD */ }; }; }; fragment@3 { target-path = "/"; __overlay__ { dummy_clock: dummy_clock { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <11289600>; // 12.288 MHz clock-output-names = "dummy-mclk"; }; sound { compatible = "simple-audio-card"; simple-audio-card,name = "TLV320AIC3120"; simple-audio-card,format = "i2s"; simple-audio-card,bitclock-master = <&cpu_dai>; simple-audio-card,frame-master = <&cpu_dai>; simple-audio-card,channels-min = <2>; simple-audio-card,channels-max = <2>; cpu_dai: simple-audio-card,cpu { sound-dai = <&i2s>; }; codec_dai: simple-audio-card,codec { sound-dai = <&tlv320>; }; }; }; }; };