soc: imx8m: change to use platform driver
authorAlice Guo <alice.guo@nxp.com>
Mon, 4 Jan 2021 09:15:44 +0000 (17:15 +0800)
committerAlice Guo <alice.guo@nxp.com>
Mon, 12 Apr 2021 01:50:25 +0000 (09:50 +0800)
commit6375d33dce9af7567e197f84b698fb268888eada
tree771c6d1690d8c917bb3167831733f0710a63bb5b
parent2007d101d60c698ae28226a2b5a6a998a2067010
soc: imx8m: change to use platform driver

Directly reading ocotp register depends on that bootloader enables ocotp
clk, which is not always effective, so change to use nvmem API. Using
nvmem API requires to support driver defer probe and thus change
soc-imx8m.c to use platform driver.

The other reason is that directly reading ocotp register causes kexec
kernel hang because the 1st kernel running will disable unused clks
after kernel boots up, and then ocotp clk will be disabled even if
bootloader enables it. When kexec kernel, ocotp clk needs to be enabled
before reading ocotp registers, and nvmem API with platform driver
supported can accomplish this.

Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Alice Guo <alice.guo@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
drivers/soc/imx/soc-imx8m.c