1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0 */ 2dc89ad14STom Warren /* 3dc89ad14STom Warren * Copyright (c) 2010-2012, NVIDIA CORPORATION. All rights reserved. 4dc89ad14STom Warren */ 5dc89ad14STom Warren 6dc89ad14STom Warren /* Tegra30 clock PLL tables */ 7dc89ad14STom Warren 8dc89ad14STom Warren #ifndef _TEGRA30_CLOCK_TABLES_H_ 9dc89ad14STom Warren #define _TEGRA30_CLOCK_TABLES_H_ 10dc89ad14STom Warren 11dc89ad14STom Warren /* The PLLs supported by the hardware */ 12dc89ad14STom Warren enum clock_id { 13dc89ad14STom Warren CLOCK_ID_FIRST, 14dc89ad14STom Warren CLOCK_ID_CGENERAL = CLOCK_ID_FIRST, 15dc89ad14STom Warren CLOCK_ID_MEMORY, 16dc89ad14STom Warren CLOCK_ID_PERIPH, 17dc89ad14STom Warren CLOCK_ID_AUDIO, 18dc89ad14STom Warren CLOCK_ID_USB, 19dc89ad14STom Warren CLOCK_ID_DISPLAY, 20dc89ad14STom Warren 21dc89ad14STom Warren /* now the simple ones */ 22dc89ad14STom Warren CLOCK_ID_FIRST_SIMPLE, 23dc89ad14STom Warren CLOCK_ID_XCPU = CLOCK_ID_FIRST_SIMPLE, 24dc89ad14STom Warren CLOCK_ID_EPCI, 25dc89ad14STom Warren CLOCK_ID_SFROM32KHZ, 26dc89ad14STom Warren 27dc89ad14STom Warren /* These are the base clocks (inputs to the Tegra SOC) */ 28dc89ad14STom Warren CLOCK_ID_32KHZ, 29dc89ad14STom Warren CLOCK_ID_OSC, 30c043c025SThierry Reding CLOCK_ID_CLK_M, 31dc89ad14STom Warren 32dc89ad14STom Warren CLOCK_ID_COUNT, /* number of PLLs */ 33dc89ad14STom Warren CLOCK_ID_DISPLAY2, /* Tegra3, placeholder */ 34dc89ad14STom Warren CLOCK_ID_NONE = -1, 35dc89ad14STom Warren }; 36dc89ad14STom Warren 37dc89ad14STom Warren /* The clocks supported by the hardware */ 38dc89ad14STom Warren enum periph_id { 39dc89ad14STom Warren PERIPH_ID_FIRST, 40dc89ad14STom Warren 41dc89ad14STom Warren /* Low word: 31:0 */ 42dc89ad14STom Warren PERIPH_ID_CPU = PERIPH_ID_FIRST, 43dc89ad14STom Warren PERIPH_ID_COP, 44dc89ad14STom Warren PERIPH_ID_TRIGSYS, 45dc89ad14STom Warren PERIPH_ID_RESERVED3, 46dc89ad14STom Warren PERIPH_ID_RESERVED4, 47dc89ad14STom Warren PERIPH_ID_TMR, 48dc89ad14STom Warren PERIPH_ID_UART1, 49dc89ad14STom Warren PERIPH_ID_UART2, 50dc89ad14STom Warren 51dc89ad14STom Warren /* 8 */ 52dc89ad14STom Warren PERIPH_ID_GPIO, 53dc89ad14STom Warren PERIPH_ID_SDMMC2, 54dc89ad14STom Warren PERIPH_ID_SPDIF, 55dc89ad14STom Warren PERIPH_ID_I2S1, 56dc89ad14STom Warren PERIPH_ID_I2C1, 57dc89ad14STom Warren PERIPH_ID_NDFLASH, 58dc89ad14STom Warren PERIPH_ID_SDMMC1, 59dc89ad14STom Warren PERIPH_ID_SDMMC4, 60dc89ad14STom Warren 61dc89ad14STom Warren /* 16 */ 62dc89ad14STom Warren PERIPH_ID_RESERVED16, 63dc89ad14STom Warren PERIPH_ID_PWM, 64dc89ad14STom Warren PERIPH_ID_I2S2, 65dc89ad14STom Warren PERIPH_ID_EPP, 66dc89ad14STom Warren PERIPH_ID_VI, 67dc89ad14STom Warren PERIPH_ID_2D, 68dc89ad14STom Warren PERIPH_ID_USBD, 69dc89ad14STom Warren PERIPH_ID_ISP, 70dc89ad14STom Warren 71dc89ad14STom Warren /* 24 */ 72dc89ad14STom Warren PERIPH_ID_3D, 73dc89ad14STom Warren PERIPH_ID_RESERVED24, 74dc89ad14STom Warren PERIPH_ID_DISP2, 75dc89ad14STom Warren PERIPH_ID_DISP1, 76dc89ad14STom Warren PERIPH_ID_HOST1X, 77dc89ad14STom Warren PERIPH_ID_VCP, 78dc89ad14STom Warren PERIPH_ID_I2S0, 79dc89ad14STom Warren PERIPH_ID_CACHE2, 80dc89ad14STom Warren 81dc89ad14STom Warren /* Middle word: 63:32 */ 82dc89ad14STom Warren PERIPH_ID_MEM, 83dc89ad14STom Warren PERIPH_ID_AHBDMA, 84dc89ad14STom Warren PERIPH_ID_APBDMA, 85dc89ad14STom Warren PERIPH_ID_RESERVED35, 86dc89ad14STom Warren PERIPH_ID_KBC, 87dc89ad14STom Warren PERIPH_ID_STAT_MON, 88dc89ad14STom Warren PERIPH_ID_PMC, 89dc89ad14STom Warren PERIPH_ID_FUSE, 90dc89ad14STom Warren 91dc89ad14STom Warren /* 40 */ 92dc89ad14STom Warren PERIPH_ID_KFUSE, 93dc89ad14STom Warren PERIPH_ID_SBC1, 94dc89ad14STom Warren PERIPH_ID_SNOR, 95dc89ad14STom Warren PERIPH_ID_RESERVED43, 96dc89ad14STom Warren PERIPH_ID_SBC2, 97dc89ad14STom Warren PERIPH_ID_RESERVED45, 98dc89ad14STom Warren PERIPH_ID_SBC3, 99dc89ad14STom Warren PERIPH_ID_DVC_I2C, 100dc89ad14STom Warren 101dc89ad14STom Warren /* 48 */ 102dc89ad14STom Warren PERIPH_ID_DSI, 103dc89ad14STom Warren PERIPH_ID_TVO, 104dc89ad14STom Warren PERIPH_ID_MIPI, 105dc89ad14STom Warren PERIPH_ID_HDMI, 106dc89ad14STom Warren PERIPH_ID_CSI, 107dc89ad14STom Warren PERIPH_ID_TVDAC, 108dc89ad14STom Warren PERIPH_ID_I2C2, 109dc89ad14STom Warren PERIPH_ID_UART3, 110dc89ad14STom Warren 111dc89ad14STom Warren /* 56 */ 112dc89ad14STom Warren PERIPH_ID_RESERVED56, 113dc89ad14STom Warren PERIPH_ID_EMC, 114dc89ad14STom Warren PERIPH_ID_USB2, 115dc89ad14STom Warren PERIPH_ID_USB3, 116dc89ad14STom Warren PERIPH_ID_MPE, 117dc89ad14STom Warren PERIPH_ID_VDE, 118dc89ad14STom Warren PERIPH_ID_BSEA, 119dc89ad14STom Warren PERIPH_ID_BSEV, 120dc89ad14STom Warren 121dc89ad14STom Warren /* Upper word 95:64 */ 122dc89ad14STom Warren PERIPH_ID_SPEEDO, 123dc89ad14STom Warren PERIPH_ID_UART4, 124dc89ad14STom Warren PERIPH_ID_UART5, 125dc89ad14STom Warren PERIPH_ID_I2C3, 126dc89ad14STom Warren PERIPH_ID_SBC4, 127dc89ad14STom Warren PERIPH_ID_SDMMC3, 128dc89ad14STom Warren PERIPH_ID_PCIE, 129dc89ad14STom Warren PERIPH_ID_OWR, 130dc89ad14STom Warren 131dc89ad14STom Warren /* 72 */ 132dc89ad14STom Warren PERIPH_ID_AFI, 133dc89ad14STom Warren PERIPH_ID_CORESIGHT, 134dc89ad14STom Warren PERIPH_ID_PCIEXCLK, 135dc89ad14STom Warren PERIPH_ID_AVPUCQ, 136dc89ad14STom Warren PERIPH_ID_RESERVED76, 137dc89ad14STom Warren PERIPH_ID_RESERVED77, 138dc89ad14STom Warren PERIPH_ID_RESERVED78, 139dc89ad14STom Warren PERIPH_ID_DTV, 140dc89ad14STom Warren 141dc89ad14STom Warren /* 80 */ 142dc89ad14STom Warren PERIPH_ID_NANDSPEED, 143dc89ad14STom Warren PERIPH_ID_I2CSLOW, 144dc89ad14STom Warren PERIPH_ID_DSIB, 145dc89ad14STom Warren PERIPH_ID_RESERVED83, 146dc89ad14STom Warren PERIPH_ID_IRAMA, 147dc89ad14STom Warren PERIPH_ID_IRAMB, 148dc89ad14STom Warren PERIPH_ID_IRAMC, 149dc89ad14STom Warren PERIPH_ID_IRAMD, 150dc89ad14STom Warren 151dc89ad14STom Warren /* 88 */ 152dc89ad14STom Warren PERIPH_ID_CRAM2, 153dc89ad14STom Warren PERIPH_ID_RESERVED89, 154dc89ad14STom Warren PERIPH_ID_MDOUBLER, 155dc89ad14STom Warren PERIPH_ID_RESERVED91, 156dc89ad14STom Warren PERIPH_ID_SUSOUT, 157dc89ad14STom Warren PERIPH_ID_RESERVED93, 158dc89ad14STom Warren PERIPH_ID_RESERVED94, 159dc89ad14STom Warren PERIPH_ID_RESERVED95, 160dc89ad14STom Warren 161dc89ad14STom Warren PERIPH_ID_VW_FIRST, 162dc89ad14STom Warren /* V word: 31:0 */ 163dc89ad14STom Warren PERIPH_ID_CPUG = PERIPH_ID_VW_FIRST, 164dc89ad14STom Warren PERIPH_ID_CPULP, 165dc89ad14STom Warren PERIPH_ID_3D2, 166dc89ad14STom Warren PERIPH_ID_MSELECT, 167dc89ad14STom Warren PERIPH_ID_TSENSOR, 168dc89ad14STom Warren PERIPH_ID_I2S3, 169dc89ad14STom Warren PERIPH_ID_I2S4, 170dc89ad14STom Warren PERIPH_ID_I2C4, 171dc89ad14STom Warren 172dc89ad14STom Warren /* 08 */ 173dc89ad14STom Warren PERIPH_ID_SBC5, 174dc89ad14STom Warren PERIPH_ID_SBC6, 175dc89ad14STom Warren PERIPH_ID_AUDIO, 176dc89ad14STom Warren PERIPH_ID_APBIF, 177dc89ad14STom Warren PERIPH_ID_DAM0, 178dc89ad14STom Warren PERIPH_ID_DAM1, 179dc89ad14STom Warren PERIPH_ID_DAM2, 180dc89ad14STom Warren PERIPH_ID_HDA2CODEC2X, 181dc89ad14STom Warren 182dc89ad14STom Warren /* 16 */ 183dc89ad14STom Warren PERIPH_ID_ATOMICS, 184dc89ad14STom Warren PERIPH_ID_EX_RESERVED17, 185dc89ad14STom Warren PERIPH_ID_EX_RESERVED18, 186dc89ad14STom Warren PERIPH_ID_EX_RESERVED19, 187dc89ad14STom Warren PERIPH_ID_EX_RESERVED20, 188dc89ad14STom Warren PERIPH_ID_EX_RESERVED21, 189dc89ad14STom Warren PERIPH_ID_EX_RESERVED22, 190dc89ad14STom Warren PERIPH_ID_ACTMON, 191dc89ad14STom Warren 192dc89ad14STom Warren /* 24 */ 193dc89ad14STom Warren PERIPH_ID_EX_RESERVED24, 194dc89ad14STom Warren PERIPH_ID_EX_RESERVED25, 195dc89ad14STom Warren PERIPH_ID_EX_RESERVED26, 196dc89ad14STom Warren PERIPH_ID_EX_RESERVED27, 197dc89ad14STom Warren PERIPH_ID_SATA, 198dc89ad14STom Warren PERIPH_ID_HDA, 199dc89ad14STom Warren PERIPH_ID_EX_RESERVED30, 200dc89ad14STom Warren PERIPH_ID_EX_RESERVED31, 201dc89ad14STom Warren 202dc89ad14STom Warren /* W word: 31:0 */ 203dc89ad14STom Warren PERIPH_ID_HDA2HDMICODEC, 204dc89ad14STom Warren PERIPH_ID_SATACOLD, 205dc89ad14STom Warren PERIPH_ID_RESERVED0_PCIERX0, 206dc89ad14STom Warren PERIPH_ID_RESERVED1_PCIERX1, 207dc89ad14STom Warren PERIPH_ID_RESERVED2_PCIERX2, 208dc89ad14STom Warren PERIPH_ID_RESERVED3_PCIERX3, 209dc89ad14STom Warren PERIPH_ID_RESERVED4_PCIERX4, 210dc89ad14STom Warren PERIPH_ID_RESERVED5_PCIERX5, 211dc89ad14STom Warren 212dc89ad14STom Warren /* 40 */ 213dc89ad14STom Warren PERIPH_ID_CEC, 214dc89ad14STom Warren PERIPH_ID_RESERVED6_PCIE2, 215dc89ad14STom Warren PERIPH_ID_RESERVED7_EMC, 216dc89ad14STom Warren PERIPH_ID_RESERVED8_HDMI, 217dc89ad14STom Warren PERIPH_ID_RESERVED9_SATA, 218dc89ad14STom Warren PERIPH_ID_RESERVED10_MIPI, 219dc89ad14STom Warren PERIPH_ID_EX_RESERVED46, 220dc89ad14STom Warren PERIPH_ID_EX_RESERVED47, 221dc89ad14STom Warren 222dc89ad14STom Warren PERIPH_ID_COUNT, 223dc89ad14STom Warren PERIPH_ID_NONE = -1, 224dc89ad14STom Warren }; 225dc89ad14STom Warren 226dc89ad14STom Warren enum pll_out_id { 227dc89ad14STom Warren PLL_OUT1, 228dc89ad14STom Warren PLL_OUT2, 229dc89ad14STom Warren PLL_OUT3, 230dc89ad14STom Warren PLL_OUT4 231dc89ad14STom Warren }; 232dc89ad14STom Warren 233dc89ad14STom Warren /* 234dc89ad14STom Warren * Clock peripheral IDs which sadly don't match up with PERIPH_ID. we want 235dc89ad14STom Warren * callers to use the PERIPH_ID for all access to peripheral clocks to avoid 236dc89ad14STom Warren * confusion bewteen PERIPH_ID_... and PERIPHC_... 237dc89ad14STom Warren * 238dc89ad14STom Warren * We don't call this CLOCK_PERIPH_ID or PERIPH_CLOCK_ID as it would just be 239dc89ad14STom Warren * confusing. 240dc89ad14STom Warren */ 241dc89ad14STom Warren enum periphc_internal_id { 242dc89ad14STom Warren /* 0x00 */ 243dc89ad14STom Warren PERIPHC_I2S1, 244dc89ad14STom Warren PERIPHC_I2S2, 245dc89ad14STom Warren PERIPHC_SPDIF_OUT, 246dc89ad14STom Warren PERIPHC_SPDIF_IN, 247dc89ad14STom Warren PERIPHC_PWM, 248dc89ad14STom Warren PERIPHC_05h, 249dc89ad14STom Warren PERIPHC_SBC2, 250dc89ad14STom Warren PERIPHC_SBC3, 251dc89ad14STom Warren 252dc89ad14STom Warren /* 0x08 */ 253dc89ad14STom Warren PERIPHC_08h, 254dc89ad14STom Warren PERIPHC_I2C1, 255dc89ad14STom Warren PERIPHC_DVC_I2C, 256dc89ad14STom Warren PERIPHC_0bh, 257dc89ad14STom Warren PERIPHC_0ch, 258dc89ad14STom Warren PERIPHC_SBC1, 259dc89ad14STom Warren PERIPHC_DISP1, 260dc89ad14STom Warren PERIPHC_DISP2, 261dc89ad14STom Warren 262dc89ad14STom Warren /* 0x10 */ 263dc89ad14STom Warren PERIPHC_CVE, 264dc89ad14STom Warren PERIPHC_11h, 265dc89ad14STom Warren PERIPHC_VI, 266dc89ad14STom Warren PERIPHC_13h, 267dc89ad14STom Warren PERIPHC_SDMMC1, 268dc89ad14STom Warren PERIPHC_SDMMC2, 269dc89ad14STom Warren PERIPHC_G3D, 270dc89ad14STom Warren PERIPHC_G2D, 271dc89ad14STom Warren 272dc89ad14STom Warren /* 0x18 */ 273dc89ad14STom Warren PERIPHC_NDFLASH, 274dc89ad14STom Warren PERIPHC_SDMMC4, 275dc89ad14STom Warren PERIPHC_VFIR, 276dc89ad14STom Warren PERIPHC_EPP, 277dc89ad14STom Warren PERIPHC_MPE, 278dc89ad14STom Warren PERIPHC_MIPI, 279dc89ad14STom Warren PERIPHC_UART1, 280dc89ad14STom Warren PERIPHC_UART2, 281dc89ad14STom Warren 282dc89ad14STom Warren /* 0x20 */ 283dc89ad14STom Warren PERIPHC_HOST1X, 284dc89ad14STom Warren PERIPHC_21h, 285dc89ad14STom Warren PERIPHC_TVO, 286dc89ad14STom Warren PERIPHC_HDMI, 287dc89ad14STom Warren PERIPHC_24h, 288dc89ad14STom Warren PERIPHC_TVDAC, 289dc89ad14STom Warren PERIPHC_I2C2, 290dc89ad14STom Warren PERIPHC_EMC, 291dc89ad14STom Warren 292dc89ad14STom Warren /* 0x28 */ 293dc89ad14STom Warren PERIPHC_UART3, 294dc89ad14STom Warren PERIPHC_29h, 295dc89ad14STom Warren PERIPHC_VI_SENSOR, 296dc89ad14STom Warren PERIPHC_2bh, 297dc89ad14STom Warren PERIPHC_2ch, 298dc89ad14STom Warren PERIPHC_SBC4, 299dc89ad14STom Warren PERIPHC_I2C3, 300dc89ad14STom Warren PERIPHC_SDMMC3, 301dc89ad14STom Warren 302dc89ad14STom Warren /* 0x30 */ 303dc89ad14STom Warren PERIPHC_UART4, 304dc89ad14STom Warren PERIPHC_UART5, 305dc89ad14STom Warren PERIPHC_VDE, 306dc89ad14STom Warren PERIPHC_OWR, 307dc89ad14STom Warren PERIPHC_NOR, 308dc89ad14STom Warren PERIPHC_CSITE, 309dc89ad14STom Warren PERIPHC_I2S0, 310dc89ad14STom Warren PERIPHC_37h, 311dc89ad14STom Warren 312dc89ad14STom Warren PERIPHC_VW_FIRST, 313dc89ad14STom Warren /* 0x38 */ 314dc89ad14STom Warren PERIPHC_G3D2 = PERIPHC_VW_FIRST, 315dc89ad14STom Warren PERIPHC_MSELECT, 316dc89ad14STom Warren PERIPHC_TSENSOR, 317dc89ad14STom Warren PERIPHC_I2S3, 318dc89ad14STom Warren PERIPHC_I2S4, 319dc89ad14STom Warren PERIPHC_I2C4, 320dc89ad14STom Warren PERIPHC_SBC5, 321dc89ad14STom Warren PERIPHC_SBC6, 322dc89ad14STom Warren 323dc89ad14STom Warren /* 0x40 */ 324dc89ad14STom Warren PERIPHC_AUDIO, 325dc89ad14STom Warren PERIPHC_41h, 326dc89ad14STom Warren PERIPHC_DAM0, 327dc89ad14STom Warren PERIPHC_DAM1, 328dc89ad14STom Warren PERIPHC_DAM2, 329dc89ad14STom Warren PERIPHC_HDA2CODEC2X, 330dc89ad14STom Warren PERIPHC_ACTMON, 331dc89ad14STom Warren PERIPHC_EXTPERIPH1, 332dc89ad14STom Warren 333dc89ad14STom Warren /* 0x48 */ 334dc89ad14STom Warren PERIPHC_EXTPERIPH2, 335dc89ad14STom Warren PERIPHC_EXTPERIPH3, 336dc89ad14STom Warren PERIPHC_NANDSPEED, 337dc89ad14STom Warren PERIPHC_I2CSLOW, 338dc89ad14STom Warren PERIPHC_SYS, 339dc89ad14STom Warren PERIPHC_SPEEDO, 340dc89ad14STom Warren PERIPHC_4eh, 341dc89ad14STom Warren PERIPHC_4fh, 342dc89ad14STom Warren 343dc89ad14STom Warren /* 0x50 */ 344619bd99eSTom Warren PERIPHC_50h, 345619bd99eSTom Warren PERIPHC_51h, 346619bd99eSTom Warren PERIPHC_52h, 347619bd99eSTom Warren PERIPHC_53h, 348dc89ad14STom Warren PERIPHC_SATAOOB, 349dc89ad14STom Warren PERIPHC_SATA, 350dc89ad14STom Warren PERIPHC_HDA, 351dc89ad14STom Warren 352dc89ad14STom Warren PERIPHC_COUNT, 353dc89ad14STom Warren 354dc89ad14STom Warren PERIPHC_NONE = -1, 355dc89ad14STom Warren }; 356dc89ad14STom Warren 357dc89ad14STom Warren /* Converts a clock number to a clock register: 0=L, 1=H, 2=U, 0=V, 1=W */ 358dc89ad14STom Warren #define PERIPH_REG(id) \ 359dc89ad14STom Warren (id < PERIPH_ID_VW_FIRST) ? \ 360dc89ad14STom Warren ((id) >> 5) : ((id - PERIPH_ID_VW_FIRST) >> 5) 361dc89ad14STom Warren 362dc89ad14STom Warren /* Mask value for a clock (within PERIPH_REG(id)) */ 363dc89ad14STom Warren #define PERIPH_MASK(id) (1 << ((id) & 0x1f)) 364dc89ad14STom Warren 365dc89ad14STom Warren /* return 1 if a PLL ID is in range */ 366dc89ad14STom Warren #define clock_id_is_pll(id) ((id) >= CLOCK_ID_FIRST && (id) < CLOCK_ID_COUNT) 367dc89ad14STom Warren 368dc89ad14STom Warren /* return 1 if a peripheral ID is in range */ 369dc89ad14STom Warren #define clock_periph_id_isvalid(id) ((id) >= PERIPH_ID_FIRST && \ 370dc89ad14STom Warren (id) < PERIPH_ID_COUNT) 371dc89ad14STom Warren 372dc89ad14STom Warren #endif /* _TEGRA30_CLOCK_TABLES_H_ */ 373