19808ebfaSIan Lepore /*- 2*4d846d26SWarner Losh * SPDX-License-Identifier: BSD-2-Clause 3af3dc4a7SPedro F. Giffuni * 49808ebfaSIan Lepore * Copyright (c) 2013 Ian Lepore <ian@freebsd.org> 59808ebfaSIan Lepore * All rights reserved. 69808ebfaSIan Lepore * 79808ebfaSIan Lepore * Redistribution and use in source and binary forms, with or without 89808ebfaSIan Lepore * modification, are permitted provided that the following conditions 99808ebfaSIan Lepore * are met: 109808ebfaSIan Lepore * 1. Redistributions of source code must retain the above copyright 119808ebfaSIan Lepore * notice, this list of conditions and the following disclaimer. 129808ebfaSIan Lepore * 2. Redistributions in binary form must reproduce the above copyright 139808ebfaSIan Lepore * notice, this list of conditions and the following disclaimer in the 149808ebfaSIan Lepore * documentation and/or other materials provided with the distribution. 159808ebfaSIan Lepore * 169808ebfaSIan Lepore * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 179808ebfaSIan Lepore * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 189808ebfaSIan Lepore * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 199808ebfaSIan Lepore * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 209808ebfaSIan Lepore * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 219808ebfaSIan Lepore * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 229808ebfaSIan Lepore * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 239808ebfaSIan Lepore * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 249808ebfaSIan Lepore * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 259808ebfaSIan Lepore * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 269808ebfaSIan Lepore * SUCH DAMAGE. 279808ebfaSIan Lepore */ 289808ebfaSIan Lepore 299808ebfaSIan Lepore #ifndef IMX6_ANATOPREG_H 309808ebfaSIan Lepore #define IMX6_ANATOPREG_H 319808ebfaSIan Lepore 329808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_ARM 0x000 339808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_ARM_SET 0x004 349808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_ARM_CLR 0x008 359808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_ARM_TOG 0x00C 3686a55754SIan Lepore #define IMX6_ANALOG_CCM_PLL_ARM_DIV_MASK 0x7F 3786a55754SIan Lepore #define IMX6_ANALOG_CCM_PLL_ARM_LOCK (1U << 31) 3886a55754SIan Lepore #define IMX6_ANALOG_CCM_PLL_ARM_BYPASS (1 << 16) 3986a55754SIan Lepore #define IMX6_ANALOG_CCM_PLL_ARM_CLK_SRC_MASK (0x03 << 16) 409808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_USB1 0x010 419808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_USB1_SET 0x014 429808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_USB1_CLR 0x018 439808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_USB1_TOG 0x01C 447a22215cSEitan Adler #define IMX6_ANALOG_CCM_PLL_USB_LOCK (1U << 31) 459808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_USB_BYPASS (1 << 16) 469808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_USB_ENABLE (1 << 13) 479808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_USB_POWER (1 << 12) 489808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_USB_EN_USB_CLKS (1 << 6) 499808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_USB2 0x020 509808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_USB2_SET 0x024 519808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_USB2_CLR 0x028 529808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_USB2_TOG 0x02C 539808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_SYS 0x030 549808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_SYS_SET 0x034 559808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_SYS_CLR 0x038 569808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_SYS_TOG 0x03C 579808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_SYS_SS 0x040 589808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_SYS_NUM 0x050 599808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_SYS_DENOM 0x060 609808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_AUDIO 0x070 61f0583578SRuslan Bukin #define IMX6_ANALOG_CCM_PLL_AUDIO_ENABLE (1 << 13) 62f0583578SRuslan Bukin #define IMX6_ANALOG_CCM_PLL_AUDIO_DIV_SELECT_SHIFT 0 63f0583578SRuslan Bukin #define IMX6_ANALOG_CCM_PLL_AUDIO_DIV_SELECT_MASK 0x7f 649808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_AUDIO_SET 0x074 659808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_AUDIO_CLR 0x078 669808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_AUDIO_TOG 0x07C 679808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_AUDIO_NUM 0x080 689808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_AUDIO_DENOM 0x090 699808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_VIDEO 0x0A0 709808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_VIDEO_SET 0x0A4 719808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_VIDEO_CLR 0x0A8 729808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_VIDEO_TOG 0x0AC 739808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_VIDEO_NUM 0x0B0 749808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_VIDEO_DENOM 0x0C0 759808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_MLB 0x0D0 769808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_MLB_SET 0x0D4 779808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_MLB_CLR 0x0D8 789808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_MLB_TOG 0x0DC 799808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_ENET 0x0E0 809808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_ENET_SET 0x0E4 819808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_ENET_CLR 0x0E8 829808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PLL_ENET_TOG 0x0EC 839808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PFD_480 0x0F0 849808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PFD_480_SET 0x0F4 859808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PFD_480_CLR 0x0F8 869808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PFD_480_TOG 0x0FC 879808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PFD_528 0x100 889808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PFD_528_SET 0x104 899808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PFD_528_CLR 0x108 909808ebfaSIan Lepore #define IMX6_ANALOG_CCM_PFD_528_TOG 0x10C 9186a55754SIan Lepore 92d2f51fc3SIan Lepore #define IMX6_ANALOG_PMU_REG_CORE 0x140 93d2f51fc3SIan Lepore #define IMX6_ANALOG_PMU_REG2_TARG_SHIFT 18 94d2f51fc3SIan Lepore #define IMX6_ANALOG_PMU_REG2_TARG_MASK \ 95d2f51fc3SIan Lepore (0x1f << IMX6_ANALOG_PMU_REG2_TARG_SHIFT) 96d2f51fc3SIan Lepore #define IMX6_ANALOG_PMU_REG1_TARG_SHIFT 9 97d2f51fc3SIan Lepore #define IMX6_ANALOG_PMU_REG1_TARG_MASK \ 98d2f51fc3SIan Lepore (0x1f << IMX6_ANALOG_PMU_REG1_TARG_SHIFT) 99d2f51fc3SIan Lepore #define IMX6_ANALOG_PMU_REG0_TARG_SHIFT 0 100d2f51fc3SIan Lepore #define IMX6_ANALOG_PMU_REG0_TARG_MASK \ 101d2f51fc3SIan Lepore (0x1f << IMX6_ANALOG_PMU_REG0_TARG_SHIFT) 102d2f51fc3SIan Lepore 10386a55754SIan Lepore #define IMX6_ANALOG_PMU_MISC0 0x150 10486a55754SIan Lepore #define IMX6_ANALOG_PMU_MISC0_SET 0x154 10586a55754SIan Lepore #define IMX6_ANALOG_PMU_MISC0_CLR 0x158 10686a55754SIan Lepore #define IMX6_ANALOG_PMU_MISC0_TOG 0x15C 10786a55754SIan Lepore #define IMX6_ANALOG_PMU_MISC0_SELFBIASOFF (1 << 3) 10886a55754SIan Lepore 10986a55754SIan Lepore #define IMX6_ANALOG_PMU_MISC1 0x160 11086a55754SIan Lepore #define IMX6_ANALOG_PMU_MISC1_SET 0x164 11186a55754SIan Lepore #define IMX6_ANALOG_PMU_MISC1_CLR 0x168 11286a55754SIan Lepore #define IMX6_ANALOG_PMU_MISC1_TOG 0x16C 11386a55754SIan Lepore #define IMX6_ANALOG_PMU_MISC1_IRQ_TEMPSENSE (1 << 29) 11486a55754SIan Lepore 11586a55754SIan Lepore #define IMX6_ANALOG_PMU_MISC2 0x170 11686a55754SIan Lepore #define IMX6_ANALOG_PMU_MISC2_SET 0x174 11786a55754SIan Lepore #define IMX6_ANALOG_PMU_MISC2_CLR 0x178 11886a55754SIan Lepore #define IMX6_ANALOG_PMU_MISC2_TOG 0x17C 11986a55754SIan Lepore 12086a55754SIan Lepore /* 12186a55754SIan Lepore * Note that the ANALOG_CCM_MISCn registers are the same as the PMU_MISCn 12286a55754SIan Lepore * registers; some bits conceptually belong to the PMU and some to the CCM. 12386a55754SIan Lepore */ 12486a55754SIan Lepore #define IMX6_ANALOG_CCM_MISC0 IMX6_ANALOG_PMU_MISC0 12586a55754SIan Lepore #define IMX6_ANALOG_CCM_MISC0_SET IMX6_ANALOG_PMU_MISC0_SET 12686a55754SIan Lepore #define IMX6_ANALOG_CCM_MISC0_CLR IMX6_ANALOG_PMU_MISC0_CLR 12786a55754SIan Lepore #define IMX6_ANALOG_CCM_MISC0_TOG IMX6_ANALOG_PMU_MISC0_TOG 12886a55754SIan Lepore 12986a55754SIan Lepore #define IMX6_ANALOG_CCM_MISC2 IMX6_ANALOG_PMU_MISC2 13086a55754SIan Lepore #define IMX6_ANALOG_CCM_MISC2_SET IMX6_ANALOG_PMU_MISC2_SET 13186a55754SIan Lepore #define IMX6_ANALOG_CCM_MISC2_CLR IMX6_ANALOG_PMU_MISC2_CLR 13286a55754SIan Lepore #define IMX6_ANALOG_CCM_MISC2_TOG IMX6_ANALOG_PMU_MISC2_TOG 13386a55754SIan Lepore 13486a55754SIan Lepore #define IMX6_ANALOG_TEMPMON_TEMPSENSE0 0x180 13586a55754SIan Lepore #define IMX6_ANALOG_TEMPMON_TEMPSENSE0_SET 0x184 13686a55754SIan Lepore #define IMX6_ANALOG_TEMPMON_TEMPSENSE0_CLR 0x188 13786a55754SIan Lepore #define IMX6_ANALOG_TEMPMON_TEMPSENSE0_TOG 0x18C 13886a55754SIan Lepore #define IMX6_ANALOG_TEMPMON_TEMPSENSE0_TOG 0x18C 13986a55754SIan Lepore #define IMX6_ANALOG_TEMPMON_TEMPSENSE0_ALARM_SHIFT 20 14086a55754SIan Lepore #define IMX6_ANALOG_TEMPMON_TEMPSENSE0_ALARM_MASK \ 14186a55754SIan Lepore (0xfff << IMX6_ANALOG_TEMPMON_TEMPSENSE0_ALARM_SHIFT) 14286a55754SIan Lepore #define IMX6_ANALOG_TEMPMON_TEMPSENSE0_TEMP_CNT_SHIFT 8 14386a55754SIan Lepore #define IMX6_ANALOG_TEMPMON_TEMPSENSE0_TEMP_CNT_MASK \ 14486a55754SIan Lepore (0xfff << IMX6_ANALOG_TEMPMON_TEMPSENSE0_TEMP_CNT_SHIFT) 14586a55754SIan Lepore #define IMX6_ANALOG_TEMPMON_TEMPSENSE0_VALID 0x4 14686a55754SIan Lepore #define IMX6_ANALOG_TEMPMON_TEMPSENSE0_MEASURE 0x2 14786a55754SIan Lepore #define IMX6_ANALOG_TEMPMON_TEMPSENSE0_POWER_DOWN 0x1 14886a55754SIan Lepore 14986a55754SIan Lepore #define IMX6_ANALOG_TEMPMON_TEMPSENSE1 0x190 15086a55754SIan Lepore #define IMX6_ANALOG_TEMPMON_TEMPSENSE1_SET 0x194 15186a55754SIan Lepore #define IMX6_ANALOG_TEMPMON_TEMPSENSE1_CLR 0x198 15286a55754SIan Lepore #define IMX6_ANALOG_TEMPMON_TEMPSENSE1_TOG 0x19C 1539808ebfaSIan Lepore 1549808ebfaSIan Lepore #define IMX6_ANALOG_USB1_VBUS_DETECT 0x1A0 1559808ebfaSIan Lepore #define IMX6_ANALOG_USB1_VBUS_DETECT_SET 0x1A4 1569808ebfaSIan Lepore #define IMX6_ANALOG_USB1_VBUS_DETECT_CLR 0x1A8 1579808ebfaSIan Lepore #define IMX6_ANALOG_USB1_VBUS_DETECT_TOG 0x1AC 1589808ebfaSIan Lepore #define IMX6_ANALOG_USB1_CHRG_DETECT 0x1B0 1599808ebfaSIan Lepore #define IMX6_ANALOG_USB1_CHRG_DETECT_SET 0x1B4 1609808ebfaSIan Lepore #define IMX6_ANALOG_USB1_CHRG_DETECT_CLR 0x1B8 1619808ebfaSIan Lepore #define IMX6_ANALOG_USB1_CHRG_DETECT_TOG 0x1BC 1629808ebfaSIan Lepore #define IMX6_ANALOG_USB_CHRG_DETECT_N_ENABLE (1 << 20) /* EN_B */ 1639808ebfaSIan Lepore #define IMX6_ANALOG_USB_CHRG_DETECT_N_CHK_CHRG (1 << 19) /* CHK_CHRG_B */ 1649808ebfaSIan Lepore #define IMX6_ANALOG_USB_CHRG_DETECT_CHK_CONTACT (1 << 18) 1659808ebfaSIan Lepore #define IMX6_ANALOG_USB1_VBUS_DETECT_STAT 0x1C0 1669808ebfaSIan Lepore #define IMX6_ANALOG_USB1_CHRG_DETECT_STAT 0x1D0 1679808ebfaSIan Lepore #define IMX6_ANALOG_USB1_MISC 0x1F0 1689808ebfaSIan Lepore #define IMX6_ANALOG_USB1_MISC_SET 0x1F4 1699808ebfaSIan Lepore #define IMX6_ANALOG_USB1_MISC_CLR 0x1F8 1709808ebfaSIan Lepore #define IMX6_ANALOG_USB1_MISC_TOG 0x1FC 1719808ebfaSIan Lepore #define IMX6_ANALOG_USB2_VBUS_DETECT 0x200 1729808ebfaSIan Lepore #define IMX6_ANALOG_USB2_VBUS_DETECT_SET 0x204 1739808ebfaSIan Lepore #define IMX6_ANALOG_USB2_VBUS_DETECT_CLR 0x208 1749808ebfaSIan Lepore #define IMX6_ANALOG_USB2_VBUS_DETECT_TOG 0x20C 1759808ebfaSIan Lepore #define IMX6_ANALOG_USB2_CHRG_DETECT 0x210 1769808ebfaSIan Lepore #define IMX6_ANALOG_USB2_CHRG_DETECT_SET 0x214 1779808ebfaSIan Lepore #define IMX6_ANALOG_USB2_CHRG_DETECT_CLR 0x218 1789808ebfaSIan Lepore #define IMX6_ANALOG_USB2_CHRG_DETECT_TOG 0x21C 1799808ebfaSIan Lepore #define IMX6_ANALOG_USB2_VBUS_DETECT_STAT 0x220 1809808ebfaSIan Lepore #define IMX6_ANALOG_USB2_CHRG_DETECT_STAT 0x230 1819808ebfaSIan Lepore #define IMX6_ANALOG_USB2_MISC 0x250 1829808ebfaSIan Lepore #define IMX6_ANALOG_USB2_MISC_SET 0x254 1839808ebfaSIan Lepore #define IMX6_ANALOG_USB2_MISC_CLR 0x258 1849808ebfaSIan Lepore #define IMX6_ANALOG_USB2_MISC_TOG 0x25C 1859808ebfaSIan Lepore #define IMX6_ANALOG_DIGPROG 0x260 1863d9d5b43SIan Lepore #define IMX6_ANALOG_DIGPROG_SL 0x280 1873d9d5b43SIan Lepore #define IMX6_ANALOG_DIGPROG_SOCTYPE_SHIFT 16 1883d9d5b43SIan Lepore #define IMX6_ANALOG_DIGPROG_SOCTYPE_MASK \ 1893d9d5b43SIan Lepore (0xff << IMX6_ANALOG_DIGPROG_SOCTYPE_SHIFT) 1909808ebfaSIan Lepore 1919808ebfaSIan Lepore #endif 192