forked from Minki/linux
f1d6ff7939
Tegra124 adds a number of extra modules into the configlink bus, which must be taken out of reset before the bus is used. Update the AHUB driver to know about these extra modules (the AHUB HW module hosts the configlink bus). Based-on-work-by: Arun Shamanna Lakshmi <aruns@nvidia.com> Based-on-work-by: Songhee Baek <sbaek@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Mark Brown <broonie@linaro.org> --- This patch depends on "ASoC: tegra: use reset framework" to compile, which is ack'd and slated to go through a (large) topic branch in the Tegra tree. So, we can either: a) Merge that Tegra topic branch into the ASoC tree, then apply this. Note that I haven't created the topic branch yet, since I'm still waiting for DMA dependencies to be applied. b) Apply this change to the Tegra tree too. This change isn't directly related to the changes in the Tegra tree; it just makes use of the new reset controller feature that's introduced there.
86 lines
2.7 KiB
Plaintext
86 lines
2.7 KiB
Plaintext
NVIDIA Tegra30 AHUB (Audio Hub)
|
|
|
|
Required properties:
|
|
- compatible : "nvidia,tegra30-ahub", "nvidia,tegra114-ahub", etc.
|
|
- reg : Should contain the register physical address and length for each of
|
|
the AHUB's register blocks.
|
|
- Tegra30 requires 2 entries, for the APBIF and AHUB/AUDIO register blocks.
|
|
- Tegra114 requires an additional entry, for the APBIF2 register block.
|
|
- interrupts : Should contain AHUB interrupt
|
|
- clocks : Must contain an entry for each entry in clock-names.
|
|
See ../clocks/clock-bindings.txt for details.
|
|
- clock-names : Must include the following entries:
|
|
- d_audio
|
|
- apbif
|
|
- resets : Must contain an entry for each entry in reset-names.
|
|
See ../reset/reset.txt for details.
|
|
- reset-names : Must include the following entries:
|
|
Tegra30 and later:
|
|
- d_audio
|
|
- apbif
|
|
- i2s0
|
|
- i2s1
|
|
- i2s2
|
|
- i2s3
|
|
- i2s4
|
|
- dam0
|
|
- dam1
|
|
- dam2
|
|
- spdif
|
|
Tegra114 and later additionally require:
|
|
- amx
|
|
- adx
|
|
Tegra124 and later additionally require:
|
|
- amx1
|
|
- adx1
|
|
- afc0
|
|
- afc1
|
|
- afc2
|
|
- afc3
|
|
- afc4
|
|
- afc5
|
|
- ranges : The bus address mapping for the configlink register bus.
|
|
Can be empty since the mapping is 1:1.
|
|
- dmas : Must contain an entry for each entry in clock-names.
|
|
See ../dma/dma.txt for details.
|
|
- dma-names : Must include the following entries:
|
|
- rx0 .. rx<n>
|
|
- tx0 .. tx<n>
|
|
... where n is:
|
|
Tegra30: 3
|
|
Tegra114, Tegra124: 9
|
|
- #address-cells : For the configlink bus. Should be <1>;
|
|
- #size-cells : For the configlink bus. Should be <1>.
|
|
|
|
AHUB client modules need to specify the IDs of their CIFs (Client InterFaces).
|
|
For RX CIFs, the numbers indicate the register number within AHUB routing
|
|
register space (APBIF 0..3 RX, I2S 0..5 RX, DAM 0..2 RX 0..1, SPDIF RX 0..1).
|
|
For TX CIFs, the numbers indicate the bit position within the AHUB routing
|
|
registers (APBIF 0..3 TX, I2S 0..5 TX, DAM 0..2 TX, SPDIF TX 0..1).
|
|
|
|
Example:
|
|
|
|
ahub@70080000 {
|
|
compatible = "nvidia,tegra30-ahub";
|
|
reg = <0x70080000 0x200 0x70080200 0x100>;
|
|
interrupts = < 0 103 0x04 >;
|
|
nvidia,dma-request-selector = <&apbdma 1>;
|
|
clocks = <&tegra_car 106>, <&tegra_car 107>;
|
|
clock-names = "d_audio", "apbif";
|
|
resets = <&tegra_car 106>, <&tegra_car 107>, <&tegra_car 30>,
|
|
<&tegra_car 11>, <&tegra_car 18>, <&tegra_car 101>,
|
|
<&tegra_car 102>, <&tegra_car 108>, <&tegra_car 109>,
|
|
<&tegra_car 110>, <&tegra_car 10>;
|
|
reset-names = "d_audio", "apbif", "i2s0", "i2s1", "i2s2",
|
|
"i2s3", "i2s4", "dam0", "dam1", "dam2",
|
|
"spdif";
|
|
dmas = <&apbdma 1>, <&apbdma 1>;
|
|
<&apbdma 2>, <&apbdma 2>;
|
|
<&apbdma 3>, <&apbdma 3>;
|
|
<&apbdma 4>, <&apbdma 4>;
|
|
dma-names = "rx0", "tx0", "rx1", "tx1", "rx2", "tx2", "rx3", "tx3";
|
|
ranges;
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
};
|