Commit 05922b0abf848949df778c19312cb1cf7fdfbe6a
1 parent
5fb09cab9b
Exists in
smarc-rel_imx_4.1.15_2.0.0_ga
MLK-12767 imx6ull: fix runtime checking for i.MX6ULL
Fix runtime checking for i.MX6ULL. Add is_cpu_type(MXC_CPU_MX6ULL) to avoid using wrong code path. Signed-off-by: Peng Fan <peng.fan@nxp.com>
Showing 5 changed files with 34 additions and 24 deletions Side-by-side Diff
arch/arm/cpu/armv7/mx6/clock.c
... | ... | @@ -133,7 +133,7 @@ |
133 | 133 | { |
134 | 134 | u32 mask; |
135 | 135 | |
136 | - if (is_cpu_type(MXC_CPU_MX6UL)) | |
136 | + if (is_cpu_type(MXC_CPU_MX6UL) || is_cpu_type(MXC_CPU_MX6ULL)) | |
137 | 137 | mask = MXC_CCM_CCGR5_UART_MASK; |
138 | 138 | else |
139 | 139 | mask = MXC_CCM_CCGR5_UART_MASK | MXC_CCM_CCGR5_UART_SERIAL_MASK; |
... | ... | @@ -184,7 +184,8 @@ |
184 | 184 | reg &= ~mask; |
185 | 185 | __raw_writel(reg, &imx_ccm->CCGR2); |
186 | 186 | } else { |
187 | - if (is_cpu_type(MXC_CPU_MX6SX) || is_cpu_type(MXC_CPU_MX6UL)) { | |
187 | + if (is_cpu_type(MXC_CPU_MX6SX) || is_cpu_type(MXC_CPU_MX6UL) || | |
188 | + is_cpu_type(MXC_CPU_MX6ULL)) { | |
188 | 189 | mask = MXC_CCM_CCGR6_I2C4_MASK; |
189 | 190 | addr = &imx_ccm->CCGR6; |
190 | 191 | } else { |
... | ... | @@ -295,7 +296,8 @@ |
295 | 296 | |
296 | 297 | switch (pll) { |
297 | 298 | case PLL_BUS: |
298 | - if (!is_cpu_type(MXC_CPU_MX6UL)) { | |
299 | + if (!is_cpu_type(MXC_CPU_MX6UL) && | |
300 | + !is_cpu_type(MXC_CPU_MX6ULL)) { | |
299 | 301 | if (pfd_num == 3) { |
300 | 302 | /* No PFD3 on PPL2 */ |
301 | 303 | return 0; |
... | ... | @@ -396,7 +398,8 @@ |
396 | 398 | |
397 | 399 | reg = __raw_readl(&imx_ccm->cscmr1); |
398 | 400 | if (is_cpu_type(MXC_CPU_MX6SL) || is_cpu_type(MXC_CPU_MX6SX) || |
399 | - is_mx6dqp() || is_cpu_type(MXC_CPU_MX6UL)) { | |
401 | + is_mx6dqp() || is_cpu_type(MXC_CPU_MX6UL) || | |
402 | + is_cpu_type(MXC_CPU_MX6ULL)) { | |
400 | 403 | if (reg & MXC_CCM_CSCMR1_PER_CLK_SEL_MASK) |
401 | 404 | return MXC_HCLK; /* OSC 24Mhz */ |
402 | 405 | } |
... | ... | @@ -413,7 +416,8 @@ |
413 | 416 | reg = __raw_readl(&imx_ccm->cscdr1); |
414 | 417 | |
415 | 418 | if (is_cpu_type(MXC_CPU_MX6SL) || is_cpu_type(MXC_CPU_MX6SX) || |
416 | - is_mx6dqp() || is_cpu_type(MXC_CPU_MX6UL)) { | |
419 | + is_mx6dqp() || is_cpu_type(MXC_CPU_MX6UL) || | |
420 | + is_cpu_type(MXC_CPU_MX6ULL)) { | |
417 | 421 | if (reg & MXC_CCM_CSCDR1_UART_CLK_SEL) |
418 | 422 | freq = MXC_HCLK; |
419 | 423 | } |
... | ... | @@ -433,7 +437,8 @@ |
433 | 437 | MXC_CCM_CSCDR2_ECSPI_CLK_PODF_OFFSET; |
434 | 438 | |
435 | 439 | if (is_mx6dqp() || is_cpu_type(MXC_CPU_MX6SL) || |
436 | - is_cpu_type(MXC_CPU_MX6SX) || is_cpu_type(MXC_CPU_MX6UL)) { | |
440 | + is_cpu_type(MXC_CPU_MX6SX) || is_cpu_type(MXC_CPU_MX6UL) || | |
441 | + is_cpu_type(MXC_CPU_MX6ULL)) { | |
437 | 442 | if (reg & MXC_CCM_CSCDR2_ECSPI_CLK_SEL_MASK) |
438 | 443 | return MXC_HCLK / (cspi_podf + 1); |
439 | 444 | } |
... | ... | @@ -496,7 +501,7 @@ |
496 | 501 | u32 freq, podf, per2_clk2_podf, pmu_misc2_audio_div; |
497 | 502 | |
498 | 503 | if (is_cpu_type(MXC_CPU_MX6SX) || is_cpu_type(MXC_CPU_MX6UL) || |
499 | - is_cpu_type(MXC_CPU_MX6SL)) { | |
504 | + is_cpu_type(MXC_CPU_MX6SL) || is_cpu_type(MXC_CPU_MX6ULL)) { | |
500 | 505 | podf = (cbcdr & MXC_CCM_CBCDR_MMDC_CH1_PODF_MASK) >> |
501 | 506 | MXC_CCM_CBCDR_MMDC_CH1_PODF_OFFSET; |
502 | 507 | if (cbcdr & MXC_CCM_CBCDR_PERIPH2_CLK_SEL) { |
... | ... | @@ -634,7 +639,8 @@ |
634 | 639 | |
635 | 640 | debug("mxs_set_lcdclk, freq = %dKHz\n", freq); |
636 | 641 | |
637 | - if ((!is_cpu_type(MXC_CPU_MX6SX)) && !is_cpu_type(MXC_CPU_MX6UL)) { | |
642 | + if ((!is_cpu_type(MXC_CPU_MX6SX)) && !is_cpu_type(MXC_CPU_MX6UL) && | |
643 | + !is_cpu_type(MXC_CPU_MX6ULL)) { | |
638 | 644 | debug("This chip not support lcd!\n"); |
639 | 645 | return; |
640 | 646 | } |
... | ... | @@ -768,7 +774,7 @@ |
768 | 774 | MXC_CCM_CCGR3_DISP_AXI_MASK) : |
769 | 775 | (MXC_CCM_CCGR3_LCDIF1_PIX_MASK | |
770 | 776 | MXC_CCM_CCGR3_DISP_AXI_MASK); |
771 | - } else if (is_cpu_type(MXC_CPU_MX6UL)) { | |
777 | + } else if (is_cpu_type(MXC_CPU_MX6UL) || is_cpu_type(MXC_CPU_MX6ULL)) { | |
772 | 778 | if (base_addr != LCDIF1_BASE_ADDR) { |
773 | 779 | puts("Wrong LCD interface!\n"); |
774 | 780 | return -EINVAL; |
... | ... | @@ -938,7 +944,8 @@ |
938 | 944 | } else if (fec_id == 1) { |
939 | 945 | /* Only i.MX6SX/UL support ENET2 */ |
940 | 946 | if (!(is_cpu_type(MXC_CPU_MX6SX) || |
941 | - is_cpu_type(MXC_CPU_MX6UL))) | |
947 | + is_cpu_type(MXC_CPU_MX6UL) || | |
948 | + is_cpu_type(MXC_CPU_MX6ULL))) | |
942 | 949 | return -EINVAL; |
943 | 950 | reg &= ~BM_ANADIG_PLL_ENET2_DIV_SELECT; |
944 | 951 | reg |= BF_ANADIG_PLL_ENET2_DIV_SELECT(freq); |
arch/arm/cpu/armv7/mx6/soc.c
... | ... | @@ -130,7 +130,7 @@ |
130 | 130 | val >>= OCOTP_CFG3_SPEED_SHIFT; |
131 | 131 | val &= 0x3; |
132 | 132 | |
133 | - if (is_cpu_type(MXC_CPU_MX6UL)) { | |
133 | + if (is_cpu_type(MXC_CPU_MX6UL) || is_cpu_type(MXC_CPU_MX6ULL)) { | |
134 | 134 | if (val == OCOTP_CFG3_SPEED_528MHZ) |
135 | 135 | return 528000000; |
136 | 136 | else if (val == OCOTP_CFG3_SPEED_696MHZ) |
... | ... | @@ -302,7 +302,8 @@ |
302 | 302 | reg = readl(&mxc_ccm->ccdr); |
303 | 303 | |
304 | 304 | /* Clear MMDC channel mask */ |
305 | - if (is_cpu_type(MXC_CPU_MX6SX) || is_cpu_type(MXC_CPU_MX6UL) || is_cpu_type(MXC_CPU_MX6SL)) | |
305 | + if (is_cpu_type(MXC_CPU_MX6SX) || is_cpu_type(MXC_CPU_MX6UL) || | |
306 | + is_cpu_type(MXC_CPU_MX6SL) || is_cpu_type(MXC_CPU_MX6ULL)) | |
306 | 307 | reg &= ~(MXC_CCM_CCDR_MMDC_CH1_HS_MASK); |
307 | 308 | else |
308 | 309 | reg &= ~(MXC_CCM_CCDR_MMDC_CH1_HS_MASK | MXC_CCM_CCDR_MMDC_CH0_HS_MASK); |
... | ... | @@ -446,8 +447,8 @@ |
446 | 447 | |
447 | 448 | int arch_cpu_init(void) |
448 | 449 | { |
449 | - if (!is_cpu_type(MXC_CPU_MX6SL) && !!is_cpu_type(MXC_CPU_MX6SX) | |
450 | - && !is_cpu_type(MXC_CPU_MX6UL)) { | |
450 | + if (!is_cpu_type(MXC_CPU_MX6SL) && !is_cpu_type(MXC_CPU_MX6SX) | |
451 | + && !is_cpu_type(MXC_CPU_MX6UL) && !is_cpu_type(MXC_CPU_MX6ULL)) { | |
451 | 452 | /* |
452 | 453 | * imx6sl doesn't have pcie at all. |
453 | 454 | * this bit is not used by imx6sx anymore |
454 | 455 | |
... | ... | @@ -534,10 +535,12 @@ |
534 | 535 | |
535 | 536 | imx_set_wdog_powerdown(false); /* Disable PDE bit of WMCR register */ |
536 | 537 | |
537 | - if (!is_cpu_type(MXC_CPU_MX6SL) && !is_cpu_type(MXC_CPU_MX6UL)) | |
538 | + if (!is_cpu_type(MXC_CPU_MX6SL) && !is_cpu_type(MXC_CPU_MX6UL) && | |
539 | + !is_cpu_type(MXC_CPU_MX6ULL)) | |
538 | 540 | imx_set_pcie_phy_power_down(); |
539 | 541 | |
540 | - if (!is_mx6dqp() && !is_cpu_type(MXC_CPU_MX6UL)) | |
542 | + if (!is_mx6dqp() && !is_cpu_type(MXC_CPU_MX6UL) && | |
543 | + !is_cpu_type(MXC_CPU_MX6ULL)) | |
541 | 544 | imx_set_vddpu_power_down(); |
542 | 545 | |
543 | 546 | #ifdef CONFIG_APBH_DMA |
... | ... | @@ -642,8 +645,8 @@ |
642 | 645 | struct fuse_bank4_regs *fuse = |
643 | 646 | (struct fuse_bank4_regs *)bank->fuse_regs; |
644 | 647 | |
645 | - if ((is_cpu_type(MXC_CPU_MX6SX) || is_cpu_type(MXC_CPU_MX6UL)) && | |
646 | - dev_id == 1) { | |
648 | + if ((is_cpu_type(MXC_CPU_MX6SX) || is_cpu_type(MXC_CPU_MX6UL) || | |
649 | + is_cpu_type(MXC_CPU_MX6ULL)) && dev_id == 1) { | |
647 | 650 | u32 value = readl(&fuse->mac_addr2); |
648 | 651 | mac[0] = value >> 24 ; |
649 | 652 | mac[1] = value >> 16 ; |
arch/arm/imx-common/init.c
... | ... | @@ -80,7 +80,7 @@ |
80 | 80 | writew(enable, &wdog2->wmcr); |
81 | 81 | |
82 | 82 | if (is_cpu_type(MXC_CPU_MX6SX) || is_cpu_type(MXC_CPU_MX6UL) || |
83 | - is_soc_type(MXC_SOC_MX7)) | |
83 | + is_cpu_type(MXC_CPU_MX6ULL) || is_soc_type(MXC_SOC_MX7)) | |
84 | 84 | writew(enable, &wdog3->wmcr); |
85 | 85 | #ifdef CONFIG_MX7D |
86 | 86 | writew(enable, &wdog4->wmcr); |
arch/arm/include/asm/arch-mx6/crm_regs.h
... | ... | @@ -429,15 +429,15 @@ |
429 | 429 | #define MXC_CCM_CS2CDR_ENFC_CLK_SEL_DQ(v) (((v) & 0x3) << 16) |
430 | 430 | |
431 | 431 | #define MXC_CCM_CS2CDR_ENFC_CLK_SEL_MASK \ |
432 | - ((is_mx6dqp() || is_cpu_type(MXC_CPU_MX6UL)) ? \ | |
432 | + ((is_mx6dqp() || is_cpu_type(MXC_CPU_MX6UL) || is_cpu_type(MXC_CPU_MX6ULL)) ? \ | |
433 | 433 | MXC_CCM_CS2CDR_ENFC_CLK_SEL_MASK_DQP : \ |
434 | 434 | MXC_CCM_CS2CDR_ENFC_CLK_SEL_MASK_DQ) |
435 | 435 | #define MXC_CCM_CS2CDR_ENFC_CLK_SEL_OFFSET \ |
436 | - ((is_mx6dqp() || is_cpu_type(MXC_CPU_MX6UL)) ? \ | |
436 | + ((is_mx6dqp() || is_cpu_type(MXC_CPU_MX6UL) || is_cpu_type(MXC_CPU_MX6ULL)) ? \ | |
437 | 437 | MXC_CCM_CS2CDR_ENFC_CLK_SEL_OFFSET_DQP : \ |
438 | 438 | MXC_CCM_CS2CDR_ENFC_CLK_SEL_OFFSET_DQ) |
439 | 439 | #define MXC_CCM_CS2CDR_ENFC_CLK_SEL(v) \ |
440 | - ((is_mx6dqp() || is_cpu_type(MXC_CPU_MX6UL)) ? \ | |
440 | + ((is_mx6dqp() || is_cpu_type(MXC_CPU_MX6UL) || is_cpu_type(MXC_CPU_MX6ULL)) ? \ | |
441 | 441 | MXC_CCM_CS2CDR_ENFC_CLK_SEL_DQP(v) : \ |
442 | 442 | MXC_CCM_CS2CDR_ENFC_CLK_SEL_DQ(v)) |
443 | 443 |
arch/arm/include/asm/arch-mx6/imx-regs.h
... | ... | @@ -412,13 +412,13 @@ |
412 | 412 | #include <asm/types.h> |
413 | 413 | |
414 | 414 | /* only for i.MX6SX/UL */ |
415 | -#define WDOG3_BASE_ADDR ((is_cpu_type(MXC_CPU_MX6UL) ? \ | |
415 | +#define WDOG3_BASE_ADDR (((is_cpu_type(MXC_CPU_MX6UL) || is_cpu_type(MXC_CPU_MX6ULL)) ? \ | |
416 | 416 | MX6UL_WDOG3_BASE_ADDR : MX6SX_WDOG3_BASE_ADDR)) |
417 | 417 | #define LCDIF1_BASE_ADDR ((is_cpu_type(MXC_CPU_MX6UL)) ? \ |
418 | 418 | MX6UL_LCDIF1_BASE_ADDR : \ |
419 | 419 | ((is_cpu_type(MXC_CPU_MX6ULL)) ? \ |
420 | 420 | MX6ULL_LCDIF1_BASE_ADDR : MX6SX_LCDIF1_BASE_ADDR)) |
421 | -#define UART6_BASE_ADDR ((is_cpu_type(MXC_CPU_MX6UL)) ? \ | |
421 | +#define UART6_BASE_ADDR (((is_cpu_type(MXC_CPU_MX6UL)) || is_cpu_type(MXC_CPU_MX6ULL)) ? \ | |
422 | 422 | MX6UL_UART6_BASE_ADDR : MX6SX_UART6_BASE_ADDR) |
423 | 423 | |
424 | 424 | #define MXS_LCDIF_BASE LCDIF1_BASE_ADDR |