ARM: tegra: Core changes for v5.6-rc1

Contains a couple of fixes for RAM repair on Tegra124.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCAAxFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAl4ZDJ4THHRyZWRpbmdA
 bnZpZGlhLmNvbQAKCRDdI6zXfz6zodzCD/9Eb50/MYKTNeSaKXB8mfaTi/1CeoJ9
 Q5eHVxQg2cQKv26StN9eh2+tPCZCJ36Hcr0kKSwvSFyri3OAfurg9PcVJ7xvgRCs
 etC+S7DFDE30AfIXb4X5365A8Y5O6IF7qVdl4DAF2XosxMMXXGID81MGwcPavYbk
 GPLhql4ovQPyiPxxwt2hYjeex8y1pi8uD+gQzFB2u1pVDjdI4j/zSxPZCfA65Ek3
 wVaj9/HAlV5Iu7GfvZny8YeO6T8kiZCfd6rTWuSeKZ2R2ZpeXgX+flIaWVerMnCN
 kmeF02SOsqP6+sKELo4eVDQVieAuBHlkERiXWHeWDqD8KUCRldnys4ijRjV+4lrS
 MbUY2yDy70DbMbsrKusj4qpfw1dOVZNfvEY3p5VyWOdbzpEHvWAx0rCGjni1T6Z7
 MS46OmCXB9q6Mk59u290FpOb7t1qn+MulnUIpeJO6vOq+xlo5gKy9mkR1UyavdtX
 sZftBuN/NBCePMCbfmPKqQH31hCiim853qSwNghXmcWBa/HKF87NkCtXlyCBh+zp
 3mw3DH68PPoLlzMaDl98rAKYGpQY2XQqrD9Lncfw9f3urdh6fJQpFqnu11bsBs2+
 p2WEsDjETRfV1ArLvBHYcKjHoSdeFynsoAutbVumXp8znDLwbLGprqXUQQP62Gpe
 pIe3UkpVSzzo1w==
 =UJTP
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-5.6-arm-core' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/soc

ARM: tegra: Core changes for v5.6-rc1

Contains a couple of fixes for RAM repair on Tegra124.

* tag 'tegra-for-5.6-arm-core' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  ARM: tegra: Use clk_m CPU on Tegra124 LP1 resume
  ARM: tegra: Modify reshift divider during LP1
  ARM: tegra: Enable PLLP bypass during Tegra124 LP1

Link: https://lore.kernel.org/r/20200111003553.2411874-5-thierry.reding@gmail.com
Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
Olof Johansson 2020-01-16 10:42:39 -08:00
commit 511f96fb67

View File

@ -59,6 +59,9 @@
#define CLK_RESET_PLLX_MISC3_IDDQ 3
#define CLK_RESET_PLLM_MISC_IDDQ 5
#define CLK_RESET_PLLC_MISC_IDDQ 26
#define CLK_RESET_PLLP_RESHIFT 0x528
#define CLK_RESET_PLLP_RESHIFT_DEFAULT 0x3b
#define CLK_RESET_PLLP_RESHIFT_ENABLE 0x3
#define CLK_RESET_CLK_SOURCE_MSELECT 0x3b4
@ -370,6 +373,18 @@ _pll_m_c_x_done:
pll_locked r1, r0, CLK_RESET_PLLC_BASE
pll_locked r1, r0, CLK_RESET_PLLX_BASE
tegra_get_soc_id TEGRA_APB_MISC_BASE, r1
cmp r1, #TEGRA30
beq 1f
ldr r1, [r0, #CLK_RESET_PLLP_BASE]
bic r1, r1, #(1<<31) @ disable PllP bypass
str r1, [r0, #CLK_RESET_PLLP_BASE]
mov r1, #CLK_RESET_PLLP_RESHIFT_DEFAULT
str r1, [r0, #CLK_RESET_PLLP_RESHIFT]
1:
mov32 r7, TEGRA_TMRUS_BASE
ldr r1, [r7]
add r1, r1, #LOCK_DELAY
@ -630,9 +645,16 @@ tegra30_switch_cpu_to_clk32k:
str r0, [r4, #PMC_PLLP_WB0_OVERRIDE]
/* disable PLLP, PLLA, PLLC and PLLX */
tegra_get_soc_id TEGRA_APB_MISC_BASE, r1
cmp r1, #TEGRA30
ldr r0, [r5, #CLK_RESET_PLLP_BASE]
orrne r0, r0, #(1 << 31) @ enable PllP bypass on fast cluster
bic r0, r0, #(1 << 30)
str r0, [r5, #CLK_RESET_PLLP_BASE]
beq 1f
mov r0, #CLK_RESET_PLLP_RESHIFT_ENABLE
str r0, [r5, #CLK_RESET_PLLP_RESHIFT]
1:
ldr r0, [r5, #CLK_RESET_PLLA_BASE]
bic r0, r0, #(1 << 30)
str r0, [r5, #CLK_RESET_PLLA_BASE]
@ -648,8 +670,12 @@ tegra30_switch_cpu_to_clk32k:
pll_iddq_entry r1, r5, CLK_RESET_PLLX_MISC3, CLK_RESET_PLLX_MISC3_IDDQ
_no_pll_in_iddq:
/* switch to CLKS */
mov r0, #0 /* brust policy = 32KHz */
/*
* Switch to clk_s (32KHz); bits 28:31=0
* Enable burst on CPU IRQ; bit 24=1
* Set IRQ burst clock source to clk_m; bits 10:8=0
*/
mov r0, #(1 << 24)
str r0, [r5, #CLK_RESET_SCLK_BURST]
ret lr