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