freebsd-nq/sys/arm/freescale/imx/imx6_anatopreg.h
Pedro F. Giffuni af3dc4a7ca sys/arm: further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 2-Clause license, however the tool I
was using misidentified many licenses so this was mostly a manual - error
prone - task.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.
2017-11-27 15:04:10 +00:00

194 lines
8.4 KiB
C

/*-
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
*
* Copyright (c) 2013 Ian Lepore <ian@freebsd.org>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $FreeBSD$
*/
#ifndef IMX6_ANATOPREG_H
#define IMX6_ANATOPREG_H
#define IMX6_ANALOG_CCM_PLL_ARM 0x000
#define IMX6_ANALOG_CCM_PLL_ARM_SET 0x004
#define IMX6_ANALOG_CCM_PLL_ARM_CLR 0x008
#define IMX6_ANALOG_CCM_PLL_ARM_TOG 0x00C
#define IMX6_ANALOG_CCM_PLL_ARM_DIV_MASK 0x7F
#define IMX6_ANALOG_CCM_PLL_ARM_LOCK (1U << 31)
#define IMX6_ANALOG_CCM_PLL_ARM_BYPASS (1 << 16)
#define IMX6_ANALOG_CCM_PLL_ARM_CLK_SRC_MASK (0x03 << 16)
#define IMX6_ANALOG_CCM_PLL_USB1 0x010
#define IMX6_ANALOG_CCM_PLL_USB1_SET 0x014
#define IMX6_ANALOG_CCM_PLL_USB1_CLR 0x018
#define IMX6_ANALOG_CCM_PLL_USB1_TOG 0x01C
#define IMX6_ANALOG_CCM_PLL_USB_LOCK (1U << 31)
#define IMX6_ANALOG_CCM_PLL_USB_BYPASS (1 << 16)
#define IMX6_ANALOG_CCM_PLL_USB_ENABLE (1 << 13)
#define IMX6_ANALOG_CCM_PLL_USB_POWER (1 << 12)
#define IMX6_ANALOG_CCM_PLL_USB_EN_USB_CLKS (1 << 6)
#define IMX6_ANALOG_CCM_PLL_USB2 0x020
#define IMX6_ANALOG_CCM_PLL_USB2_SET 0x024
#define IMX6_ANALOG_CCM_PLL_USB2_CLR 0x028
#define IMX6_ANALOG_CCM_PLL_USB2_TOG 0x02C
#define IMX6_ANALOG_CCM_PLL_SYS 0x030
#define IMX6_ANALOG_CCM_PLL_SYS_SET 0x034
#define IMX6_ANALOG_CCM_PLL_SYS_CLR 0x038
#define IMX6_ANALOG_CCM_PLL_SYS_TOG 0x03C
#define IMX6_ANALOG_CCM_PLL_SYS_SS 0x040
#define IMX6_ANALOG_CCM_PLL_SYS_NUM 0x050
#define IMX6_ANALOG_CCM_PLL_SYS_DENOM 0x060
#define IMX6_ANALOG_CCM_PLL_AUDIO 0x070
#define IMX6_ANALOG_CCM_PLL_AUDIO_ENABLE (1 << 13)
#define IMX6_ANALOG_CCM_PLL_AUDIO_DIV_SELECT_SHIFT 0
#define IMX6_ANALOG_CCM_PLL_AUDIO_DIV_SELECT_MASK 0x7f
#define IMX6_ANALOG_CCM_PLL_AUDIO_SET 0x074
#define IMX6_ANALOG_CCM_PLL_AUDIO_CLR 0x078
#define IMX6_ANALOG_CCM_PLL_AUDIO_TOG 0x07C
#define IMX6_ANALOG_CCM_PLL_AUDIO_NUM 0x080
#define IMX6_ANALOG_CCM_PLL_AUDIO_DENOM 0x090
#define IMX6_ANALOG_CCM_PLL_VIDEO 0x0A0
#define IMX6_ANALOG_CCM_PLL_VIDEO_SET 0x0A4
#define IMX6_ANALOG_CCM_PLL_VIDEO_CLR 0x0A8
#define IMX6_ANALOG_CCM_PLL_VIDEO_TOG 0x0AC
#define IMX6_ANALOG_CCM_PLL_VIDEO_NUM 0x0B0
#define IMX6_ANALOG_CCM_PLL_VIDEO_DENOM 0x0C0
#define IMX6_ANALOG_CCM_PLL_MLB 0x0D0
#define IMX6_ANALOG_CCM_PLL_MLB_SET 0x0D4
#define IMX6_ANALOG_CCM_PLL_MLB_CLR 0x0D8
#define IMX6_ANALOG_CCM_PLL_MLB_TOG 0x0DC
#define IMX6_ANALOG_CCM_PLL_ENET 0x0E0
#define IMX6_ANALOG_CCM_PLL_ENET_SET 0x0E4
#define IMX6_ANALOG_CCM_PLL_ENET_CLR 0x0E8
#define IMX6_ANALOG_CCM_PLL_ENET_TOG 0x0EC
#define IMX6_ANALOG_CCM_PFD_480 0x0F0
#define IMX6_ANALOG_CCM_PFD_480_SET 0x0F4
#define IMX6_ANALOG_CCM_PFD_480_CLR 0x0F8
#define IMX6_ANALOG_CCM_PFD_480_TOG 0x0FC
#define IMX6_ANALOG_CCM_PFD_528 0x100
#define IMX6_ANALOG_CCM_PFD_528_SET 0x104
#define IMX6_ANALOG_CCM_PFD_528_CLR 0x108
#define IMX6_ANALOG_CCM_PFD_528_TOG 0x10C
#define IMX6_ANALOG_PMU_REG_CORE 0x140
#define IMX6_ANALOG_PMU_REG2_TARG_SHIFT 18
#define IMX6_ANALOG_PMU_REG2_TARG_MASK \
(0x1f << IMX6_ANALOG_PMU_REG2_TARG_SHIFT)
#define IMX6_ANALOG_PMU_REG1_TARG_SHIFT 9
#define IMX6_ANALOG_PMU_REG1_TARG_MASK \
(0x1f << IMX6_ANALOG_PMU_REG1_TARG_SHIFT)
#define IMX6_ANALOG_PMU_REG0_TARG_SHIFT 0
#define IMX6_ANALOG_PMU_REG0_TARG_MASK \
(0x1f << IMX6_ANALOG_PMU_REG0_TARG_SHIFT)
#define IMX6_ANALOG_PMU_MISC0 0x150
#define IMX6_ANALOG_PMU_MISC0_SET 0x154
#define IMX6_ANALOG_PMU_MISC0_CLR 0x158
#define IMX6_ANALOG_PMU_MISC0_TOG 0x15C
#define IMX6_ANALOG_PMU_MISC0_SELFBIASOFF (1 << 3)
#define IMX6_ANALOG_PMU_MISC1 0x160
#define IMX6_ANALOG_PMU_MISC1_SET 0x164
#define IMX6_ANALOG_PMU_MISC1_CLR 0x168
#define IMX6_ANALOG_PMU_MISC1_TOG 0x16C
#define IMX6_ANALOG_PMU_MISC1_IRQ_TEMPSENSE (1 << 29)
#define IMX6_ANALOG_PMU_MISC2 0x170
#define IMX6_ANALOG_PMU_MISC2_SET 0x174
#define IMX6_ANALOG_PMU_MISC2_CLR 0x178
#define IMX6_ANALOG_PMU_MISC2_TOG 0x17C
/*
* Note that the ANALOG_CCM_MISCn registers are the same as the PMU_MISCn
* registers; some bits conceptually belong to the PMU and some to the CCM.
*/
#define IMX6_ANALOG_CCM_MISC0 IMX6_ANALOG_PMU_MISC0
#define IMX6_ANALOG_CCM_MISC0_SET IMX6_ANALOG_PMU_MISC0_SET
#define IMX6_ANALOG_CCM_MISC0_CLR IMX6_ANALOG_PMU_MISC0_CLR
#define IMX6_ANALOG_CCM_MISC0_TOG IMX6_ANALOG_PMU_MISC0_TOG
#define IMX6_ANALOG_CCM_MISC2 IMX6_ANALOG_PMU_MISC2
#define IMX6_ANALOG_CCM_MISC2_SET IMX6_ANALOG_PMU_MISC2_SET
#define IMX6_ANALOG_CCM_MISC2_CLR IMX6_ANALOG_PMU_MISC2_CLR
#define IMX6_ANALOG_CCM_MISC2_TOG IMX6_ANALOG_PMU_MISC2_TOG
#define IMX6_ANALOG_TEMPMON_TEMPSENSE0 0x180
#define IMX6_ANALOG_TEMPMON_TEMPSENSE0_SET 0x184
#define IMX6_ANALOG_TEMPMON_TEMPSENSE0_CLR 0x188
#define IMX6_ANALOG_TEMPMON_TEMPSENSE0_TOG 0x18C
#define IMX6_ANALOG_TEMPMON_TEMPSENSE0_TOG 0x18C
#define IMX6_ANALOG_TEMPMON_TEMPSENSE0_ALARM_SHIFT 20
#define IMX6_ANALOG_TEMPMON_TEMPSENSE0_ALARM_MASK \
(0xfff << IMX6_ANALOG_TEMPMON_TEMPSENSE0_ALARM_SHIFT)
#define IMX6_ANALOG_TEMPMON_TEMPSENSE0_TEMP_CNT_SHIFT 8
#define IMX6_ANALOG_TEMPMON_TEMPSENSE0_TEMP_CNT_MASK \
(0xfff << IMX6_ANALOG_TEMPMON_TEMPSENSE0_TEMP_CNT_SHIFT)
#define IMX6_ANALOG_TEMPMON_TEMPSENSE0_VALID 0x4
#define IMX6_ANALOG_TEMPMON_TEMPSENSE0_MEASURE 0x2
#define IMX6_ANALOG_TEMPMON_TEMPSENSE0_POWER_DOWN 0x1
#define IMX6_ANALOG_TEMPMON_TEMPSENSE1 0x190
#define IMX6_ANALOG_TEMPMON_TEMPSENSE1_SET 0x194
#define IMX6_ANALOG_TEMPMON_TEMPSENSE1_CLR 0x198
#define IMX6_ANALOG_TEMPMON_TEMPSENSE1_TOG 0x19C
#define IMX6_ANALOG_USB1_VBUS_DETECT 0x1A0
#define IMX6_ANALOG_USB1_VBUS_DETECT_SET 0x1A4
#define IMX6_ANALOG_USB1_VBUS_DETECT_CLR 0x1A8
#define IMX6_ANALOG_USB1_VBUS_DETECT_TOG 0x1AC
#define IMX6_ANALOG_USB1_CHRG_DETECT 0x1B0
#define IMX6_ANALOG_USB1_CHRG_DETECT_SET 0x1B4
#define IMX6_ANALOG_USB1_CHRG_DETECT_CLR 0x1B8
#define IMX6_ANALOG_USB1_CHRG_DETECT_TOG 0x1BC
#define IMX6_ANALOG_USB_CHRG_DETECT_N_ENABLE (1 << 20) /* EN_B */
#define IMX6_ANALOG_USB_CHRG_DETECT_N_CHK_CHRG (1 << 19) /* CHK_CHRG_B */
#define IMX6_ANALOG_USB_CHRG_DETECT_CHK_CONTACT (1 << 18)
#define IMX6_ANALOG_USB1_VBUS_DETECT_STAT 0x1C0
#define IMX6_ANALOG_USB1_CHRG_DETECT_STAT 0x1D0
#define IMX6_ANALOG_USB1_MISC 0x1F0
#define IMX6_ANALOG_USB1_MISC_SET 0x1F4
#define IMX6_ANALOG_USB1_MISC_CLR 0x1F8
#define IMX6_ANALOG_USB1_MISC_TOG 0x1FC
#define IMX6_ANALOG_USB2_VBUS_DETECT 0x200
#define IMX6_ANALOG_USB2_VBUS_DETECT_SET 0x204
#define IMX6_ANALOG_USB2_VBUS_DETECT_CLR 0x208
#define IMX6_ANALOG_USB2_VBUS_DETECT_TOG 0x20C
#define IMX6_ANALOG_USB2_CHRG_DETECT 0x210
#define IMX6_ANALOG_USB2_CHRG_DETECT_SET 0x214
#define IMX6_ANALOG_USB2_CHRG_DETECT_CLR 0x218
#define IMX6_ANALOG_USB2_CHRG_DETECT_TOG 0x21C
#define IMX6_ANALOG_USB2_VBUS_DETECT_STAT 0x220
#define IMX6_ANALOG_USB2_CHRG_DETECT_STAT 0x230
#define IMX6_ANALOG_USB2_MISC 0x250
#define IMX6_ANALOG_USB2_MISC_SET 0x254
#define IMX6_ANALOG_USB2_MISC_CLR 0x258
#define IMX6_ANALOG_USB2_MISC_TOG 0x25C
#define IMX6_ANALOG_DIGPROG 0x260
#define IMX6_ANALOG_DIGPROG_SL 0x280
#define IMX6_ANALOG_DIGPROG_SOCTYPE_SHIFT 16
#define IMX6_ANALOG_DIGPROG_SOCTYPE_MASK \
(0xff << IMX6_ANALOG_DIGPROG_SOCTYPE_SHIFT)
#endif