power on without PMIC

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

power on without PMIC

1,680 Views
wangvictor
Contributor III

Hi community,

I'm working on i.MX6 DL sabreSD board without PMIC.

I build image with Android 6 source code.

After I read the document "i.MX Linux® Reference Manual" I tried to modify Power Management configuration in menuconfig to disabled it.

These were what I had done.

disabled CONFIG_PM

disabled CONFIG_SUSPEND

disabled PF100 Regulator Driver

disabled Anatop Regulator Driver

But after I disabled all this configuration and rebuild image, it showed error to me and said there is something undeclared.

I am afraid that it will cause the system cannot reboot normally or it would dead when I starting the kernel.

Here are my questions:

  1. Can I use the same image which included power management on the board which have no PMIC?
  2. If can't what can I do ? Did I just need to set all configurations which are related with PMIC to disabled or I have to modify driver to fitch board which have no PMIC?

Thanks in Advanced!

Labels (6)
0 Kudos
2 Replies

1,141 Views
igorpadykov
NXP Employee
NXP Employee

Hi victor

for debugging kernel hanging one can use AN4553 Using Open Source Debugging Tools

for Linux on i.MX Processors
https://www.nxp.com/docs/en/application-note/AN4553.pdf

As pmic is highly integrated to linux codes, I am afraid it is not possible to use the same image

which included power management on the board which have no PMIC. One look at codes and remove

all pmic related functions and references, note uboot also has such codes.

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,141 Views
wangvictor
Contributor III

igorpadykov

Thanks for your reply.

And I had try to set Power Management disabled and compile it.

But I got an error here.

host C++: libicuuc-host_32 <= external/icu/icu4c/source/common/ustrenum.cpp
drivers/pci/host/pci-imx6.c:1413:10: error: 'pci_imx_pm_ops' undeclared here (not in a function)
.pm = &pci_imx_pm_ops,
^
make[4]: *** [drivers/pci/host/pci-imx6.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [drivers/pci/host] Error 2
make[3]: *** Waiting for unfinished jobs....

After I traced the code I found that "pci_imx_pm_ops" is defined at pci-imx6.c

#ifdef CONFIG_PM_SLEEP
.
.
.
static const struct dev_pm_ops pci_imx_pm_ops = {
.suspend_noirq = pci_imx_suspend_noirq,
.resume_noirq = pci_imx_resume_noirq,
.freeze_noirq = pci_imx_suspend_noirq,
.thaw_noirq = pci_imx_resume_noirq,
.poweroff_noirq = pci_imx_suspend_noirq,
.restore_noirq = pci_imx_resume_noirq,
};
#endif
.
.
.
static struct platform_driver imx6_pcie_driver = {
.driver = {
.name = "imx6q-pcie",
.of_match_table = imx6_pcie_of_match,
.pm = &pci_imx_pm_ops,
},
.shutdown = imx6_pcie_shutdown,
};

As you can see pci_imx_pm_ops is defined in CONFIG_PM_SLEEP but since I disabled CONFIG_PM the CONFIG_PM_SLEEP will also be disabled.

That means code will not defined pci_imx_pm_ops.

But imx6_pcie_driver still defined ".pm = &pci_imx_pm_ops" at the end of the code even pci_imx_pm_ops do not be defined at all.

This is what I can not understand.

If pci_imx_pm_ops is defined in CONFIG_PM_SLEEP why did imx6_pcie_driver's  ".pm = &pci_imx_pm_ops" do not defined in CONFIG_PM_SLEEP.

What if I mark out ".pm = &pci_imx_pm_ops", would kernel system appear with error that I didn't know?

Thanks in Advanced!

0 Kudos