diff --git a/systems/NObangers.nix b/systems/NObangers.nix index b026383..c30dd8a 100644 --- a/systems/NObangers.nix +++ b/systems/NObangers.nix @@ -46,16 +46,82 @@ deviceTree = { enable = true; filter = "*rpi-4-*.dtb"; - ] }; }; - hardware.deviceTree.overlays = [{ - name = hifiberry-dacplusadc"; - dtsText = '' - '' - } - ]; + hardware.deviceTree.overlays = [{ + name = "hifiberry-dacplusadc"; + dtsText = '' + // Definitions for HiFiBerry DAC+ + /dts-v1/; + /plugin/; + + / { + compatible = "brcm,bcm2711"; + + fragment@0 { + target-path = "/"; + __overlay__ { + dacpro_osc: dacpro_osc { + compatible = "hifiberry,dacpro-clk"; + #clock-cells = <0>; + }; + }; + }; + + frag1: fragment@1 { + target = <&i2s_clk_consumer>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@2 { + target = <&i2c1>; + __overlay__ { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + pcm5122@4d { + #sound-dai-cells = <0>; + compatible = "ti,pcm5122"; + reg = <0x4d>; + clocks = <&dacpro_osc>; + AVDD-supply = <&vdd_3v3_reg>; + DVDD-supply = <&vdd_3v3_reg>; + CPVDD-supply = <&vdd_3v3_reg>; + status = "okay"; + }; + hpamp: hpamp@60 { + compatible = "ti,tpa6130a2"; + reg = <0x60>; + status = "disabled"; + }; + }; + }; + + fragment@3 { + target = <&sound>; + hifiberry_dacplus: __overlay__ { + compatible = "hifiberry,hifiberry-dacplus"; + i2s-controller = <&i2s_clk_consumer>; + status = "okay"; + }; + }; + + __overrides__ { + 24db_digital_gain = + <&hifiberry_dacplus>,"hifiberry,24db_digital_gain?"; + slave = <&hifiberry_dacplus>,"hifiberry-dacplus,slave?", + <&frag1>,"target:0=",<&i2s_clk_producer>, + <&hifiberry_dacplus>,"i2s-controller:0=",<&i2s_clk_producer>; + + leds_off = <&hifiberry_dacplus>,"hifiberry-dacplus,leds_off?"; + }; + }; + ''; + }]; nixpkgs.hostPlatform = "aarch64-linux"; system.stateVersion = "23.11";