pxa300-raumfeld-speaker-one.dts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. // SPDX-License-Identifier: GPL-2.0
  2. /dts-v1/;
  3. #include "pxa300-raumfeld-common.dtsi"
  4. / {
  5. model = "Raumfeld Speaker One (PXA3xx)";
  6. compatible = "raumfeld,raumfeld-speaker-one-pxa303", "marvell,pxa300";
  7. wm8782: wm8782 {
  8. compatible = "wm8782";
  9. #sound-dai-cells = <0>;
  10. Vdd-supply = <&reg_3v3>;
  11. Vdda-supply = <&reg_va_5v0>;
  12. };
  13. xo_11mhz: oscillator-11mhz {
  14. compatible = "fixed-clock";
  15. #clock-cells = <0>;
  16. clock-frequency = <11289600>;
  17. clock-accuracy = <100>;
  18. };
  19. xo_audio: clock-gate {
  20. compatible = "gpio-gate-clock";
  21. pinctrlnames = "default";
  22. pinctrl-0 = <&xo_audio_pins>;
  23. clocks = <&xo_11mhz>;
  24. #clock-cells = <0>;
  25. enable-gpios = <&gpio 111 GPIO_ACTIVE_HIGH>;
  26. };
  27. reg_va_30v0: regulator-va-30v0 {
  28. compatible = "regulator-fixed";
  29. regulator-name = "va-30v0-fixed-supply";
  30. regulator-min-microvolt = <30000000>;
  31. regulator-max-microvolt = <30000000>;
  32. };
  33. sound {
  34. compatible = "simple-audio-card";
  35. simple-audio-card,name = "Raumfeld Speaker";
  36. #address-cells = <1>;
  37. #size-cells = <0>;
  38. simple-audio-card,dai-link@0 {
  39. reg = <0>;
  40. format = "i2s";
  41. bitclock-master = <&dailink_master_analog_out>;
  42. frame-master = <&dailink_master_analog_out>;
  43. mclk-fs = <256>;
  44. dailink_master_analog_out: cpu {
  45. sound-dai = <&ssp_dai0>;
  46. };
  47. codec {
  48. sound-dai = <&sta320>;
  49. };
  50. };
  51. simple-audio-card,dai-link@1 {
  52. reg = <1>;
  53. format = "i2s";
  54. bitclock-master = <&dailink_master_analog_in>;
  55. frame-master = <&dailink_master_analog_in>;
  56. mclk-fs = <256>;
  57. dailink_master_analog_in: cpu {
  58. sound-dai = <&ssp_dai0>;
  59. };
  60. codec {
  61. sound-dai = <&wm8782>;
  62. };
  63. };
  64. };
  65. };
  66. &ssp_dai0 {
  67. clocks = <&xo_audio>;
  68. };
  69. &spi {
  70. dac@2 {
  71. compatible = "ti,dac7512";
  72. reg = <2>;
  73. spi-max-frequency = <1000000>;
  74. vcc-supply = <&reg_3v3>;
  75. };
  76. };
  77. &rotary {
  78. status = "okay";
  79. };
  80. &pxai2c1 {
  81. sta320: codec@1a {
  82. compatible = "st,sta32x";
  83. reg = <0x1a>;
  84. pinctrl-names = "default";
  85. pinctrl-0 = <&sta320_pins>;
  86. clocks = <&xo_audio>;
  87. clock-names = "xti";
  88. reset-gpios = <&gpio 120 GPIO_ACTIVE_HIGH>;
  89. Vdda-supply = <&reg_3v3>;
  90. Vdd3-supply = <&reg_3v3>;
  91. Vcc-supply = <&reg_va_30v0>;
  92. #sound-dai-cells = <0>;
  93. st,thermal-warning-adjustment;
  94. st,thermal-warning-recovery;
  95. st,fault-detect-recovery;
  96. st,drop-compensation-ns = <80>;
  97. st,max-power-use-mpcc;
  98. st,invalid-input-detect-mute;
  99. /* 2 (half-bridge) and 1 (full-bridge) on-board power */
  100. st,output-conf = /bits/ 8 <0x1>;
  101. st,ch1-output-mapping = /bits/ 8 <0>;
  102. st,ch2-output-mapping = /bits/ 8 <1>;
  103. st,ch3-output-mapping = /bits/ 8 <2>;
  104. st,needs_esd_watchdog;
  105. };
  106. };
  107. &pinctrl {
  108. xo_audio_pins: xo-audio-pins {
  109. pinctrl-single,pins = <
  110. MFP_PIN_PXA300(111) MFP_AF0 /* ENABLE */
  111. >;
  112. pinctrl-single,low-power-mode = MFP_LPM(MFP_LPM_PULL_LOW);
  113. };
  114. sta320_pins: sta320-pins {
  115. pinctrl-single,pins = <
  116. MFP_PIN_PXA300(120) MFP_AF0 /* CODEC_RESET */
  117. >;
  118. pinctrl-single,low-power-mode = MFP_LPM(MFP_LPM_FLOAT);
  119. };
  120. };