mirror of
https://github.com/torvalds/linux.git
synced 2024-12-26 12:52:30 +00:00
95d3607569
Tegra114's AHUB shares a design with Tegra30, with the followin changes: * Supports more (10 vs. 4) bi-directional FIFO channels into RAM. * Requires a separate block of registers to support the above. * Supports more attached clients, i.e. new audio multiplexing and de-multiplexing modules. * Is affected by more clocks due to the above. This change fully defines the device tree binding changes required to represent these changes, and minimally extends the driver to support the new hardware, without exposing any of the new FIFO channels. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
49 lines
2.2 KiB
Plaintext
49 lines
2.2 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
|
|
- nvidia,dma-request-selector : A list of the DMA channel specifiers. Each
|
|
entry contains the Tegra DMA controller's phandle and request selector.
|
|
If a single entry is present, the request selectors for the channels are
|
|
assumed to be contiguous, and increment from this value.
|
|
If multiple values are given, one value must be given per channel.
|
|
- clocks : Must contain an entry for each required entry in clock-names.
|
|
- clock-names : Must include the following entries:
|
|
- Tegra30: Requires d_audio, apbif, i2s0, i2s1, i2s2, i2s3, i2s4, dam0,
|
|
dam1, dam2, spdif_in.
|
|
- Tegra114: Additionally requires amx, adx.
|
|
- ranges : The bus address mapping for the configlink register bus.
|
|
Can be empty since the mapping is 1:1.
|
|
- #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>, <&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 162>;
|
|
clock-names = "d_audio", "apbif", "i2s0", "i2s1", "i2s2",
|
|
"i2s3", "i2s4", "dam0", "dam1", "dam2",
|
|
"spdif_in";
|
|
ranges;
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
};
|