18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Atmel SFR (Special Function Registers) register offsets and bit definitions.
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Copyright (C) 2016 Atmel
68c2ecf20Sopenharmony_ci *
78c2ecf20Sopenharmony_ci * Author: Ludovic Desroches <ludovic.desroches@atmel.com>
88c2ecf20Sopenharmony_ci */
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci#ifndef _LINUX_MFD_SYSCON_ATMEL_SFR_H
118c2ecf20Sopenharmony_ci#define _LINUX_MFD_SYSCON_ATMEL_SFR_H
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci#define AT91_SFR_DDRCFG		0x04	/* DDR Configuration Register */
148c2ecf20Sopenharmony_ci#define AT91_SFR_CCFG_EBICSA	0x04	/* EBI Chip Select Register */
158c2ecf20Sopenharmony_ci/* 0x08 ~ 0x0c: Reserved */
168c2ecf20Sopenharmony_ci#define AT91_SFR_OHCIICR	0x10	/* OHCI INT Configuration Register */
178c2ecf20Sopenharmony_ci#define AT91_SFR_OHCIISR	0x14	/* OHCI INT Status Register */
188c2ecf20Sopenharmony_ci#define AT91_SFR_UTMICKTRIM	0x30	/* UTMI Clock Trimming Register */
198c2ecf20Sopenharmony_ci#define AT91_SFR_UTMISWAP	0x3c	/* UTMI DP/DM Pin Swapping Register */
208c2ecf20Sopenharmony_ci#define AT91_SFR_LS		0x7c	/* Light Sleep Register */
218c2ecf20Sopenharmony_ci#define AT91_SFR_I2SCLKSEL	0x90	/* I2SC Register */
228c2ecf20Sopenharmony_ci#define AT91_SFR_WPMR		0xe4	/* Write Protection Mode Register */
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci/* Field definitions */
258c2ecf20Sopenharmony_ci#define AT91_SFR_CCFG_EBI_CSA(cs, val)		((val) << (cs))
268c2ecf20Sopenharmony_ci#define AT91_SFR_CCFG_EBI_DBPUC			BIT(8)
278c2ecf20Sopenharmony_ci#define AT91_SFR_CCFG_EBI_DBPDC			BIT(9)
288c2ecf20Sopenharmony_ci#define AT91_SFR_CCFG_EBI_DRIVE			BIT(17)
298c2ecf20Sopenharmony_ci#define AT91_SFR_CCFG_NFD0_ON_D16		BIT(24)
308c2ecf20Sopenharmony_ci#define AT91_SFR_CCFG_DDR_MP_EN			BIT(25)
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci#define AT91_SFR_OHCIICR_RES(x)			BIT(x)
338c2ecf20Sopenharmony_ci#define AT91_SFR_OHCIICR_ARIE			BIT(4)
348c2ecf20Sopenharmony_ci#define AT91_SFR_OHCIICR_APPSTART		BIT(5)
358c2ecf20Sopenharmony_ci#define AT91_SFR_OHCIICR_USB_SUSP(x)		BIT(8 + (x))
368c2ecf20Sopenharmony_ci#define AT91_SFR_OHCIICR_UDPPUDIS		BIT(23)
378c2ecf20Sopenharmony_ci#define AT91_OHCIICR_USB_SUSPEND		GENMASK(10, 8)
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci#define AT91_SFR_OHCIISR_RIS(x)			BIT(x)
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci#define AT91_UTMICKTRIM_FREQ			GENMASK(1, 0)
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci#define AT91_SFR_UTMISWAP_PORT(x)		BIT(x)
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci#define AT91_SFR_LS_VALUE(x)			BIT(x)
468c2ecf20Sopenharmony_ci#define AT91_SFR_LS_MEM_POWER_GATING_ULP1_EN	BIT(16)
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci#define AT91_SFR_WPMR_WPEN			BIT(0)
498c2ecf20Sopenharmony_ci#define AT91_SFR_WPMR_WPKEY_MASK		GENMASK(31, 8)
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci#endif /* _LINUX_MFD_SYSCON_ATMEL_SFR_H */
52