18c2ecf20Sopenharmony_ciNVIDIA Tegra30 AHUB (Audio Hub)
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciRequired properties:
48c2ecf20Sopenharmony_ci- compatible : For Tegra30, must contain "nvidia,tegra30-ahub".  For Tegra114,
58c2ecf20Sopenharmony_ci  must contain "nvidia,tegra114-ahub".  For Tegra124, must contain
68c2ecf20Sopenharmony_ci  "nvidia,tegra124-ahub".  Otherwise, must contain "nvidia,<chip>-ahub",
78c2ecf20Sopenharmony_ci  plus at least one of the above, where <chip> is tegra132.
88c2ecf20Sopenharmony_ci- reg : Should contain the register physical address and length for each of
98c2ecf20Sopenharmony_ci  the AHUB's register blocks.
108c2ecf20Sopenharmony_ci  - Tegra30 requires 2 entries, for the APBIF and AHUB/AUDIO register blocks.
118c2ecf20Sopenharmony_ci  - Tegra114 requires an additional entry, for the APBIF2 register block.
128c2ecf20Sopenharmony_ci- interrupts : Should contain AHUB interrupt
138c2ecf20Sopenharmony_ci- clocks : Must contain an entry for each entry in clock-names.
148c2ecf20Sopenharmony_ci  See ../clocks/clock-bindings.txt for details.
158c2ecf20Sopenharmony_ci- clock-names : Must include the following entries:
168c2ecf20Sopenharmony_ci  - d_audio
178c2ecf20Sopenharmony_ci  - apbif
188c2ecf20Sopenharmony_ci- resets : Must contain an entry for each entry in reset-names.
198c2ecf20Sopenharmony_ci  See ../reset/reset.txt for details.
208c2ecf20Sopenharmony_ci- reset-names : Must include the following entries:
218c2ecf20Sopenharmony_ci  Tegra30 and later:
228c2ecf20Sopenharmony_ci  - d_audio
238c2ecf20Sopenharmony_ci  - apbif
248c2ecf20Sopenharmony_ci  - i2s0
258c2ecf20Sopenharmony_ci  - i2s1
268c2ecf20Sopenharmony_ci  - i2s2
278c2ecf20Sopenharmony_ci  - i2s3
288c2ecf20Sopenharmony_ci  - i2s4
298c2ecf20Sopenharmony_ci  - dam0
308c2ecf20Sopenharmony_ci  - dam1
318c2ecf20Sopenharmony_ci  - dam2
328c2ecf20Sopenharmony_ci  - spdif
338c2ecf20Sopenharmony_ci  Tegra114 and later additionally require:
348c2ecf20Sopenharmony_ci  - amx
358c2ecf20Sopenharmony_ci  - adx
368c2ecf20Sopenharmony_ci  Tegra124 and later additionally require:
378c2ecf20Sopenharmony_ci  - amx1
388c2ecf20Sopenharmony_ci  - adx1
398c2ecf20Sopenharmony_ci  - afc0
408c2ecf20Sopenharmony_ci  - afc1
418c2ecf20Sopenharmony_ci  - afc2
428c2ecf20Sopenharmony_ci  - afc3
438c2ecf20Sopenharmony_ci  - afc4
448c2ecf20Sopenharmony_ci  - afc5
458c2ecf20Sopenharmony_ci- ranges : The bus address mapping for the configlink register bus.
468c2ecf20Sopenharmony_ci  Can be empty since the mapping is 1:1.
478c2ecf20Sopenharmony_ci- dmas : Must contain an entry for each entry in clock-names.
488c2ecf20Sopenharmony_ci  See ../dma/dma.txt for details.
498c2ecf20Sopenharmony_ci- dma-names : Must include the following entries:
508c2ecf20Sopenharmony_ci  - rx0 .. rx<n>
518c2ecf20Sopenharmony_ci  - tx0 .. tx<n>
528c2ecf20Sopenharmony_ci  ... where n is:
538c2ecf20Sopenharmony_ci  Tegra30: 3
548c2ecf20Sopenharmony_ci  Tegra114, Tegra124: 9
558c2ecf20Sopenharmony_ci- #address-cells : For the configlink bus. Should be <1>;
568c2ecf20Sopenharmony_ci- #size-cells : For the configlink bus. Should be <1>.
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ciAHUB client modules need to specify the IDs of their CIFs (Client InterFaces).
598c2ecf20Sopenharmony_ciFor RX CIFs, the numbers indicate the register number within AHUB routing
608c2ecf20Sopenharmony_ciregister space (APBIF 0..3 RX, I2S 0..5 RX, DAM 0..2 RX 0..1, SPDIF RX 0..1).
618c2ecf20Sopenharmony_ciFor TX CIFs, the numbers indicate the bit position within the AHUB routing
628c2ecf20Sopenharmony_ciregisters (APBIF 0..3 TX, I2S 0..5 TX, DAM 0..2 TX, SPDIF TX 0..1).
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ciExample:
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ciahub@70080000 {
678c2ecf20Sopenharmony_ci	compatible = "nvidia,tegra30-ahub";
688c2ecf20Sopenharmony_ci	reg = <0x70080000 0x200 0x70080200 0x100>;
698c2ecf20Sopenharmony_ci	interrupts = < 0 103 0x04 >;
708c2ecf20Sopenharmony_ci	nvidia,dma-request-selector = <&apbdma 1>;
718c2ecf20Sopenharmony_ci	clocks = <&tegra_car 106>, <&tegra_car 107>;
728c2ecf20Sopenharmony_ci	clock-names = "d_audio", "apbif";
738c2ecf20Sopenharmony_ci	resets = <&tegra_car 106>, <&tegra_car 107>, <&tegra_car 30>,
748c2ecf20Sopenharmony_ci		<&tegra_car 11>, <&tegra_car 18>, <&tegra_car 101>,
758c2ecf20Sopenharmony_ci		<&tegra_car 102>, <&tegra_car 108>, <&tegra_car 109>,
768c2ecf20Sopenharmony_ci		<&tegra_car 110>, <&tegra_car 10>;
778c2ecf20Sopenharmony_ci	reset-names = "d_audio", "apbif", "i2s0", "i2s1", "i2s2",
788c2ecf20Sopenharmony_ci		"i2s3", "i2s4", "dam0", "dam1", "dam2",
798c2ecf20Sopenharmony_ci		"spdif";
808c2ecf20Sopenharmony_ci	dmas = <&apbdma 1>, <&apbdma 1>;
818c2ecf20Sopenharmony_ci	       <&apbdma 2>, <&apbdma 2>;
828c2ecf20Sopenharmony_ci	       <&apbdma 3>, <&apbdma 3>;
838c2ecf20Sopenharmony_ci	       <&apbdma 4>, <&apbdma 4>;
848c2ecf20Sopenharmony_ci	dma-names = "rx0", "tx0", "rx1", "tx1", "rx2", "tx2", "rx3", "tx3";
858c2ecf20Sopenharmony_ci	ranges;
868c2ecf20Sopenharmony_ci	#address-cells = <1>;
878c2ecf20Sopenharmony_ci	#size-cells = <1>;
888c2ecf20Sopenharmony_ci};
89