~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/sound/soc/tegra/tegra186_dspk.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0-only */
  2 /*
  3  * tegra186_dspk.h - Definitions for Tegra186 DSPK driver
  4  *
  5  * Copyright (c) 2020 NVIDIA CORPORATION. All rights reserved.
  6  *
  7  */
  8 
  9 #ifndef __TEGRA186_DSPK_H__
 10 #define __TEGRA186_DSPK_H__
 11 
 12 /* Register offsets from DSPK BASE */
 13 #define TEGRA186_DSPK_RX_STATUS                 0x0c
 14 #define TEGRA186_DSPK_RX_INT_STATUS             0x10
 15 #define TEGRA186_DSPK_RX_INT_MASK               0x14
 16 #define TEGRA186_DSPK_RX_INT_SET                0x18
 17 #define TEGRA186_DSPK_RX_INT_CLEAR              0x1c
 18 #define TEGRA186_DSPK_RX_CIF_CTRL               0x20
 19 #define TEGRA186_DSPK_ENABLE                    0x40
 20 #define TEGRA186_DSPK_SOFT_RESET                0x44
 21 #define TEGRA186_DSPK_CG                        0x48
 22 #define TEGRA186_DSPK_STATUS                    0x4c
 23 #define TEGRA186_DSPK_INT_STATUS                0x50
 24 #define TEGRA186_DSPK_CORE_CTRL                 0x60
 25 #define TEGRA186_DSPK_CODEC_CTRL                0x64
 26 
 27 /* DSPK CORE CONTROL fields */
 28 #define CH_SEL_SHIFT                            8
 29 #define TEGRA186_DSPK_CHANNEL_SELECT_MASK       (0x3 << CH_SEL_SHIFT)
 30 #define DSPK_OSR_SHIFT                          4
 31 #define TEGRA186_DSPK_OSR_MASK                  (0x3 << DSPK_OSR_SHIFT)
 32 #define LRSEL_POL_SHIFT                         0
 33 #define TEGRA186_DSPK_CTRL_LRSEL_POLARITY_MASK  (0x1 << LRSEL_POL_SHIFT)
 34 #define TEGRA186_DSPK_RX_FIFO_DEPTH             64
 35 
 36 #define DSPK_OSR_FACTOR                         32
 37 
 38 /* DSPK interface clock ratio */
 39 #define DSPK_CLK_RATIO                          4
 40 
 41 enum tegra_dspk_osr {
 42         DSPK_OSR_32,
 43         DSPK_OSR_64,
 44         DSPK_OSR_128,
 45         DSPK_OSR_256,
 46 };
 47 
 48 enum tegra_dspk_ch_sel {
 49         DSPK_CH_SELECT_LEFT,
 50         DSPK_CH_SELECT_RIGHT,
 51         DSPK_CH_SELECT_STEREO,
 52 };
 53 
 54 enum tegra_dspk_lrsel {
 55         DSPK_LRSEL_LEFT,
 56         DSPK_LRSEL_RIGHT,
 57 };
 58 
 59 struct tegra186_dspk {
 60         unsigned int rx_fifo_th;
 61         unsigned int osr_val;
 62         unsigned int lrsel;
 63         unsigned int ch_sel;
 64         unsigned int mono_to_stereo;
 65         unsigned int stereo_to_mono;
 66         struct clk *clk_dspk;
 67         struct regmap *regmap;
 68 };
 69 
 70 #endif
 71 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php