xref: /freebsd/sys/contrib/device-tree/Bindings/sound/nvidia,tegra30-ahub.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotNVIDIA Tegra30 AHUB (Audio Hub)
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotRequired properties:
4*c66ec88fSEmmanuel Vadot- compatible : For Tegra30, must contain "nvidia,tegra30-ahub".  For Tegra114,
5*c66ec88fSEmmanuel Vadot  must contain "nvidia,tegra114-ahub".  For Tegra124, must contain
6*c66ec88fSEmmanuel Vadot  "nvidia,tegra124-ahub".  Otherwise, must contain "nvidia,<chip>-ahub",
7*c66ec88fSEmmanuel Vadot  plus at least one of the above, where <chip> is tegra132.
8*c66ec88fSEmmanuel Vadot- reg : Should contain the register physical address and length for each of
9*c66ec88fSEmmanuel Vadot  the AHUB's register blocks.
10*c66ec88fSEmmanuel Vadot  - Tegra30 requires 2 entries, for the APBIF and AHUB/AUDIO register blocks.
11*c66ec88fSEmmanuel Vadot  - Tegra114 requires an additional entry, for the APBIF2 register block.
12*c66ec88fSEmmanuel Vadot- interrupts : Should contain AHUB interrupt
13*c66ec88fSEmmanuel Vadot- clocks : Must contain an entry for each entry in clock-names.
14*c66ec88fSEmmanuel Vadot  See ../clocks/clock-bindings.txt for details.
15*c66ec88fSEmmanuel Vadot- clock-names : Must include the following entries:
16*c66ec88fSEmmanuel Vadot  - d_audio
17*c66ec88fSEmmanuel Vadot  - apbif
18*c66ec88fSEmmanuel Vadot- resets : Must contain an entry for each entry in reset-names.
19*c66ec88fSEmmanuel Vadot  See ../reset/reset.txt for details.
20*c66ec88fSEmmanuel Vadot- reset-names : Must include the following entries:
21*c66ec88fSEmmanuel Vadot  Tegra30 and later:
22*c66ec88fSEmmanuel Vadot  - d_audio
23*c66ec88fSEmmanuel Vadot  - apbif
24*c66ec88fSEmmanuel Vadot  - i2s0
25*c66ec88fSEmmanuel Vadot  - i2s1
26*c66ec88fSEmmanuel Vadot  - i2s2
27*c66ec88fSEmmanuel Vadot  - i2s3
28*c66ec88fSEmmanuel Vadot  - i2s4
29*c66ec88fSEmmanuel Vadot  - dam0
30*c66ec88fSEmmanuel Vadot  - dam1
31*c66ec88fSEmmanuel Vadot  - dam2
32*c66ec88fSEmmanuel Vadot  - spdif
33*c66ec88fSEmmanuel Vadot  Tegra114 and later additionally require:
34*c66ec88fSEmmanuel Vadot  - amx
35*c66ec88fSEmmanuel Vadot  - adx
36*c66ec88fSEmmanuel Vadot  Tegra124 and later additionally require:
37*c66ec88fSEmmanuel Vadot  - amx1
38*c66ec88fSEmmanuel Vadot  - adx1
39*c66ec88fSEmmanuel Vadot  - afc0
40*c66ec88fSEmmanuel Vadot  - afc1
41*c66ec88fSEmmanuel Vadot  - afc2
42*c66ec88fSEmmanuel Vadot  - afc3
43*c66ec88fSEmmanuel Vadot  - afc4
44*c66ec88fSEmmanuel Vadot  - afc5
45*c66ec88fSEmmanuel Vadot- ranges : The bus address mapping for the configlink register bus.
46*c66ec88fSEmmanuel Vadot  Can be empty since the mapping is 1:1.
47*c66ec88fSEmmanuel Vadot- dmas : Must contain an entry for each entry in clock-names.
48*c66ec88fSEmmanuel Vadot  See ../dma/dma.txt for details.
49*c66ec88fSEmmanuel Vadot- dma-names : Must include the following entries:
50*c66ec88fSEmmanuel Vadot  - rx0 .. rx<n>
51*c66ec88fSEmmanuel Vadot  - tx0 .. tx<n>
52*c66ec88fSEmmanuel Vadot  ... where n is:
53*c66ec88fSEmmanuel Vadot  Tegra30: 3
54*c66ec88fSEmmanuel Vadot  Tegra114, Tegra124: 9
55*c66ec88fSEmmanuel Vadot- #address-cells : For the configlink bus. Should be <1>;
56*c66ec88fSEmmanuel Vadot- #size-cells : For the configlink bus. Should be <1>.
57*c66ec88fSEmmanuel Vadot
58*c66ec88fSEmmanuel VadotAHUB client modules need to specify the IDs of their CIFs (Client InterFaces).
59*c66ec88fSEmmanuel VadotFor RX CIFs, the numbers indicate the register number within AHUB routing
60*c66ec88fSEmmanuel Vadotregister space (APBIF 0..3 RX, I2S 0..5 RX, DAM 0..2 RX 0..1, SPDIF RX 0..1).
61*c66ec88fSEmmanuel VadotFor TX CIFs, the numbers indicate the bit position within the AHUB routing
62*c66ec88fSEmmanuel Vadotregisters (APBIF 0..3 TX, I2S 0..5 TX, DAM 0..2 TX, SPDIF TX 0..1).
63*c66ec88fSEmmanuel Vadot
64*c66ec88fSEmmanuel VadotExample:
65*c66ec88fSEmmanuel Vadot
66*c66ec88fSEmmanuel Vadotahub@70080000 {
67*c66ec88fSEmmanuel Vadot	compatible = "nvidia,tegra30-ahub";
68*c66ec88fSEmmanuel Vadot	reg = <0x70080000 0x200 0x70080200 0x100>;
69*c66ec88fSEmmanuel Vadot	interrupts = < 0 103 0x04 >;
70*c66ec88fSEmmanuel Vadot	nvidia,dma-request-selector = <&apbdma 1>;
71*c66ec88fSEmmanuel Vadot	clocks = <&tegra_car 106>, <&tegra_car 107>;
72*c66ec88fSEmmanuel Vadot	clock-names = "d_audio", "apbif";
73*c66ec88fSEmmanuel Vadot	resets = <&tegra_car 106>, <&tegra_car 107>, <&tegra_car 30>,
74*c66ec88fSEmmanuel Vadot		<&tegra_car 11>, <&tegra_car 18>, <&tegra_car 101>,
75*c66ec88fSEmmanuel Vadot		<&tegra_car 102>, <&tegra_car 108>, <&tegra_car 109>,
76*c66ec88fSEmmanuel Vadot		<&tegra_car 110>, <&tegra_car 10>;
77*c66ec88fSEmmanuel Vadot	reset-names = "d_audio", "apbif", "i2s0", "i2s1", "i2s2",
78*c66ec88fSEmmanuel Vadot		"i2s3", "i2s4", "dam0", "dam1", "dam2",
79*c66ec88fSEmmanuel Vadot		"spdif";
80*c66ec88fSEmmanuel Vadot	dmas = <&apbdma 1>, <&apbdma 1>;
81*c66ec88fSEmmanuel Vadot	       <&apbdma 2>, <&apbdma 2>;
82*c66ec88fSEmmanuel Vadot	       <&apbdma 3>, <&apbdma 3>;
83*c66ec88fSEmmanuel Vadot	       <&apbdma 4>, <&apbdma 4>;
84*c66ec88fSEmmanuel Vadot	dma-names = "rx0", "tx0", "rx1", "tx1", "rx2", "tx2", "rx3", "tx3";
85*c66ec88fSEmmanuel Vadot	ranges;
86*c66ec88fSEmmanuel Vadot	#address-cells = <1>;
87*c66ec88fSEmmanuel Vadot	#size-cells = <1>;
88*c66ec88fSEmmanuel Vadot};
89