/* SPDX-License-Identifier: GPL-2.0-only
* SPDX-FileCopyrightText: Copyright (c) 2022-2024 NVIDIA CORPORATION. All rights reserved.
* tegra186_asrc.h - Definitions for Tegra186 ASRC driver
*
*/
#ifndef __TEGRA186_ASRC_H__
#define __TEGRA186_ASRC_H__
/* ASRC stream related offset */
#define TEGRA186_ASRC_CFG 0 x0
#define TEGRA186_ASRC_RATIO_INT_PART 0 x4
#define TEGRA186_ASRC_RATIO_FRAC_PART 0 x8
#define TEGRA186_ASRC_RATIO_LOCK_STATUS 0 xc
#define TEGRA186_ASRC_MUTE_UNMUTE_DURATION 0 x10
#define TEGRA186_ASRC_TX_THRESHOLD 0 x14
#define TEGRA186_ASRC_RX_THRESHOLD 0 x18
#define TEGRA186_ASRC_RATIO_COMP 0 x1c
#define TEGRA186_ASRC_RX_STATUS 0 x20
#define TEGRA186_ASRC_RX_CIF_CTRL 0 x24
#define TEGRA186_ASRC_TX_STATUS 0 x2c
#define TEGRA186_ASRC_TX_CIF_CTRL 0 x30
#define TEGRA186_ASRC_ENABLE 0 x38
#define TEGRA186_ASRC_SOFT_RESET 0 x3c
#define TEGRA186_ASRC_STATUS 0 x4c
#define TEGRA186_ASRC_STATEBUF_ADDR 0 x5c
#define TEGRA186_ASRC_STATEBUF_CFG 0 x60
#define TEGRA186_ASRC_INSAMPLEBUF_ADDR 0 x64
#define TEGRA186_ASRC_INSAMPLEBUF_CFG 0 x68
#define TEGRA186_ASRC_OUTSAMPLEBUF_ADDR 0 x6c
#define TEGRA186_ASRC_OUTSAMPLEBUF_CFG 0 x70
/* ASRC Global registers offset */
#define TEGRA186_ASRC_GLOBAL_ENB 0 x2f4
#define TEGRA186_ASRC_GLOBAL_SOFT_RESET 0 x2f8
#define TEGRA186_ASRC_GLOBAL_CG 0 x2fc
#define TEGRA186_ASRC_GLOBAL_CFG 0 x300
#define TEGRA186_ASRC_GLOBAL_SCRATCH_ADDR 0 x304
#define TEGRA186_ASRC_GLOBAL_SCRATCH_CFG 0 x308
#define TEGRA186_ASRC_RATIO_UPD_RX_CIF_CTRL 0 x30c
#define TEGRA186_ASRC_RATIO_UPD_RX_STATUS 0 x310
#define TEGRA186_ASRC_GLOBAL_STATUS 0 x314
#define TEGRA186_ASRC_GLOBAL_STREAM_ENABLE_STATUS 0 x318
#define TEGRA186_ASRC_GLOBAL_INT_STATUS 0 x324
#define TEGRA186_ASRC_GLOBAL_INT_MASK 0 x328
#define TEGRA186_ASRC_GLOBAL_INT_SET 0 x32c
#define TEGRA186_ASRC_GLOBAL_INT_CLEAR 0 x330
#define TEGRA186_ASRC_GLOBAL_TRANSFER_ERROR_LOG 0 x334
#define TEGRA186_ASRC_GLOBAL_APR_CTRL 0 x1000
#define TEGRA186_ASRC_GLOBAL_APR_CTRL_ACCESS_CTRL 0 x1004
#define TEGRA186_ASRC_GLOBAL_DISARM_APR 0 x1008
#define TEGRA186_ASRC_GLOBAL_DISARM_APR_ACCESS_CTRL 0 x100c
#define TEGRA186_ASRC_GLOBAL_RATIO_WR_ACCESS 0 x1010
#define TEGRA186_ASRC_GLOBAL_RATIO_WR_ACCESS_CTRL 0 x1014
#define TEGRA186_ASRC_CYA 0 x1018
#define TEGRA186_ASRC_STREAM_DEFAULT_HW_COMP_BIAS_VALUE 0 xaaaa
#define TEGRA186_ASRC_STREAM_DEFAULT_INPUT_HW_COMP_THRESH_CFG 0 x00201002
#define TEGRA186_ASRC_STREAM_DEFAULT_OUTPUT_HW_COMP_THRESH_CFG 0 x00201002
#define TEGRA186_ASRC_GLOBAL_CFG_FRAC_28BIT_PRECISION 0
#define TEGRA186_ASRC_GLOBAL_CFG_FRAC_32BIT_PRECISION 1
#define TEGRA186_ASRC_STREAM_ENABLE_HW_RATIO_COMP_SHIFT 31
#define TEGRA186_ASRC_STREAM_ENABLE_HW_RATIO_COMP_MASK (1 << TEGRA186_ASRC_STREAM_ENABLE_HW_RATIO_COMP_SHIFT)
#define TEGRA186_ASRC_STREAM_ENABLE_HW_RATIO_COMP_ENABLE (1 << TEGRA186_ASRC_STREAM_ENABLE_HW_RATIO_COMP_SHIFT)
#define TEGRA186_ASRC_STREAM_ENABLE_HW_RATIO_COMP_DISABLE (0 << TEGRA186_ASRC_STREAM_ENABLE_HW_RATIO_COMP_SHIFT)
#define TEGRA186_ASRC_STREAM_RATIO_TYPE_SHIFT 0
#define TEGRA186_ASRC_STREAM_RATIO_TYPE_MASK (1 << TEGRA186_ASRC_STREAM_RATIO_TYPE_SHIFT)
#define TEGRA186_ASRC_STREAM_EN_SHIFT 0
#define TEGRA186_ASRC_STREAM_EN (1 << TEGRA186_ASRC_STREAM_EN_SHIFT)
#define TEGRA186_ASRC_GLOBAL_EN_SHIFT 0
#define TEGRA186_ASRC_GLOBAL_EN (1 << TEGRA186_ASRC_GLOBAL_EN_SHIFT)
#define TEGRA186_ASRC_STREAM_STATEBUF_CFG_SIZE_SHIFT 0
#define TEGRA186_ASRC_STREAM_STATEBUF_CFG_SIZE_MASK (0 xffff << TEGRA186_ASRC_STREAM_STATEBUF_CFG_SIZE_SHIFT)
#define TEGRA186_ASRC_STREAM_INSAMPLEBUF_CFG_SIZE_SHIFT 0
#define TEGRA186_ASRC_STREAM_INSAMPLEBUF_CFG_SIZE_MASK (0 xffff << TEGRA186_ASRC_STREAM_INSAMPLEBUF_CFG_SIZE_SHIFT)
#define TEGRA186_ASRC_STREAM_OUTSAMPLEBUF_CFG_SIZE_SHIFT 0
#define TEGRA186_ASRC_STREAM_OUTSAMPLEBUF_CFG_SIZE_MASK (0 xffff << TEGRA186_ASRC_STREAM_OUTSAMPLEBUF_CFG_SIZE_SHIFT)
#define TEGRA186_ASRC_STREAM_RATIO_INT_PART_MASK 0 x1f
#define TEGRA186_ASRC_STREAM_RATIO_FRAC_PART_MASK 0 xffffffff
#define TEGRA186_ASRC_STREAM_STRIDE 0 x80
#define TEGRA186_ASRC_STREAM_MAX 0 x6
#define TEGRA186_ASRC_STREAM_LIMIT 0 x2f0
#define TEGRA186_ASRC_RATIO_SOURCE_ARAD 0 x0
#define TEGRA186_ASRC_RATIO_SOURCE_SW 0 x1
#define TEGRA186_ASRC_ARAM_START_ADDR 0 x3f800000
#define TEGRA264_ASRC_ARAM_START_ADDR 0 x8a080000
struct tegra186_asrc_lane {
unsigned int int_part;
unsigned int frac_part;
unsigned int ratio_source;
unsigned int hwcomp_disable;
unsigned int input_thresh;
unsigned int output_thresh;
};
struct tegra_asrc_soc_data {
unsigned int aram_start_addr;
};
struct tegra186_asrc {
const struct tegra_asrc_soc_data *soc_data;
struct tegra186_asrc_lane lane[TEGRA186_ASRC_STREAM_MAX];
struct regmap *regmap;
};
#endif
Messung V0.5 in Prozent C=98 H=100 G=98
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-05)
¤
*© Formatika GbR, Deutschland