190075Sobrien/* SPDX-License-Identifier: GPL-2.0 */
2169689Skan#ifndef __ATMEL_PDMIC_H_
390075Sobrien#define __ATMEL_PDMIC_H_
490075Sobrien
5132718Skan#include <linux/bitops.h>
690075Sobrien
7132718Skan#define PDMIC_CR	0x00000000
890075Sobrien
990075Sobrien#define PDMIC_CR_SWRST		0x1
1090075Sobrien#define PDMIC_CR_SWRST_MASK	BIT(0)
1190075Sobrien#define PDMIC_CR_SWRST_SHIFT	(0)
12132718Skan
1390075Sobrien#define PDMIC_CR_ENPDM_DIS	0x0
1490075Sobrien#define PDMIC_CR_ENPDM_EN	0x1
1590075Sobrien#define PDMIC_CR_ENPDM_MASK	BIT(4)
1690075Sobrien#define PDMIC_CR_ENPDM_SHIFT	(4)
1790075Sobrien
18132718Skan#define PDMIC_MR	0x00000004
19169689Skan
20169689Skan#define PDMIC_MR_CLKS_PCK	0x0
2190075Sobrien#define PDMIC_MR_CLKS_GCK	0x1
2290075Sobrien#define PDMIC_MR_CLKS_MASK	BIT(4)
2390075Sobrien#define PDMIC_MR_CLKS_SHIFT	(4)
24132718Skan
25132718Skan#define PDMIC_MR_PRESCAL_MASK	GENMASK(14, 8)
2690075Sobrien#define PDMIC_MR_PRESCAL_SHIFT	(8)
2790075Sobrien
2890075Sobrien#define PDMIC_CDR	0x00000014
2990075Sobrien
3090075Sobrien#define PDMIC_IER	0x00000018
3190075Sobrien#define PDMIC_IER_OVRE			BIT(25)
32132718Skan
33169689Skan#define PDMIC_IDR	0x0000001c
34169689Skan#define PDMIC_IDR_OVRE			BIT(25)
35169689Skan
3690075Sobrien#define PDMIC_IMR	0x00000020
37132718Skan
38169689Skan#define PDMIC_ISR	0x00000024
3990075Sobrien#define PDMIC_ISR_OVRE			BIT(25)
40169689Skan
41169689Skan#define PDMIC_DSPR0	0x00000058
42132718Skan
4390075Sobrien#define PDMIC_DSPR0_HPFBYP_DIS		0x1
4490075Sobrien#define PDMIC_DSPR0_HPFBYP_EN		0x0
4590075Sobrien#define PDMIC_DSPR0_HPFBYP_MASK		BIT(1)
4690075Sobrien#define PDMIC_DSPR0_HPFBYP_SHIFT	(1)
47259268Spfg
48259268Spfg#define PDMIC_DSPR0_SINBYP_DIS		0x1
49117395Skan#define PDMIC_DSPR0_SINBYP_EN		0x0
50117395Skan#define PDMIC_DSPR0_SINBYP_MASK		BIT(2)
51169689Skan#define PDMIC_DSPR0_SINBYP_SHIFT	(2)
52169689Skan
53169689Skan#define PDMIC_DSPR0_SIZE_16_BITS	0x0
54169689Skan#define PDMIC_DSPR0_SIZE_32_BITS	0x1
5590075Sobrien#define PDMIC_DSPR0_SIZE_MASK		BIT(3)
56169689Skan#define PDMIC_DSPR0_SIZE_SHIFT		(3)
5790075Sobrien
5890075Sobrien#define PDMIC_DSPR0_OSR_128		0x0
59117395Skan#define PDMIC_DSPR0_OSR_64		0x1
60117395Skan#define PDMIC_DSPR0_OSR_MASK		GENMASK(6, 4)
61117395Skan#define PDMIC_DSPR0_OSR_SHIFT		(4)
62117395Skan
63169689Skan#define PDMIC_DSPR0_SCALE_MASK		GENMASK(11, 8)
64117395Skan#define PDMIC_DSPR0_SCALE_SHIFT		(8)
65169689Skan
66117395Skan#define PDMIC_DSPR0_SHIFT_MASK		GENMASK(15, 12)
67169689Skan#define PDMIC_DSPR0_SHIFT_SHIFT		(12)
68117395Skan
69117395Skan#define PDMIC_DSPR1	0x0000005c
70117395Skan
71117395Skan#define PDMIC_DSPR1_DGAIN_MASK		GENMASK(14, 0)
72117395Skan#define PDMIC_DSPR1_DGAIN_SHIFT		(0)
73117395Skan
74117395Skan#define PDMIC_DSPR1_OFFSET_MASK		GENMASK(31, 16)
75117395Skan#define PDMIC_DSPR1_OFFSET_SHIFT	(16)
76117395Skan
77117395Skan#define PDMIC_WPMR	0x000000e4
78117395Skan
79117395Skan#define PDMIC_WPSR	0x000000e8
80117395Skan
81117395Skan#endif
82117395Skan