soc: imx8m: change to use platform driver
authorAlice Guo <alice.guo@nxp.com>
Mon, 4 Jan 2021 09:15:44 +0000 (17:15 +0800)
committerShawn Guo <shawnguo@kernel.org>
Mon, 11 Jan 2021 02:46:09 +0000 (10:46 +0800)
commit7d981405d0fd3cfc0de052e4791f516235d8b858
tree995cef93636c299d57e11c7990433b48b1832287
parent5c8fe583cce542aa0b84adc939ce85293de36e5e
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