All of lore.kernel.org
 help / color / mirror / Atom feed
* OMAP3530 with no TWL4030 power controller
@ 2012-02-06 17:44 Gary Thomas
  2012-02-06 23:45 ` Tony Lindgren
  2012-02-07 22:55 ` Kevin Hilman
  0 siblings, 2 replies; 5+ messages in thread
From: Gary Thomas @ 2012-02-06 17:44 UTC (permalink / raw)
  To: linux-omap

I have an OMAP3530 (DM3730) board which uses a very simple
power controller (TPS65910A1).  This controller does not
support many of the power supplies, etc, that are common
on the TWL4030 and similar devices.

I'm using Linux 3.0.  How can I remove the reliance on the
TWL devices?  Simply disabling PM in my configuration isn't
enough - that generates a bunch of undefined references.
Also, there are many places where power supply stuff is
accessed, outside of PM, in particular DSS2 which has a
terrible time.  Here's what I get when I disabled PM and
REGULATOR support:

arch/arm/mach-omap2/built-in.o: In function `omap_set_pwrdm_state':
/local/linux-3.0/arch/arm/mach-omap2/pm.c:122: undefined reference to `pwrdm_read_next_pwrst'
/local/linux-3.0/arch/arm/mach-omap2/pm.c:126: undefined reference to `pwrdm_read_pwrst'
/local/linux-3.0/arch/arm/mach-omap2/pm.c:127: undefined reference to `pwrdm_read_pwrst'
/local/linux-3.0/arch/arm/mach-omap2/pm.c:133: undefined reference to `pwrdm_wait_transition'
/local/linux-3.0/arch/arm/mach-omap2/pm.c:138: undefined reference to `pwrdm_set_next_pwrst'
/local/linux-3.0/arch/arm/mach-omap2/pm.c:153: undefined reference to `pwrdm_set_lowpwrstchange'
/local/linux-3.0/arch/arm/mach-omap2/pm.c:159: undefined reference to `pwrdm_wait_transition'
/local/linux-3.0/arch/arm/mach-omap2/pm.c:160: undefined reference to `pwrdm_state_switch'
arch/arm/mach-omap2/built-in.o: In function `omap_hwmod_get_context_loss_count':
/local/linux-3.0/arch/arm/mach-omap2/omap_hwmod.c:2638: undefined reference to `pwrdm_get_context_loss_count'
arch/arm/mach-omap2/built-in.o: In function `_clkdm_clk_hwmod_disable':
/local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:895: undefined reference to `pwrdm_clkdm_state_switch'
arch/arm/mach-omap2/built-in.o: In function `clkdm_allow_idle':
/local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:786: undefined reference to `pwrdm_clkdm_state_switch'
arch/arm/mach-omap2/built-in.o: In function `_clkdm_clk_hwmod_enable':
/local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:869: undefined reference to `pwrdm_wait_transition'
/local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:870: undefined reference to `pwrdm_clkdm_state_switch'
arch/arm/mach-omap2/built-in.o: In function `_clkdm_register':
/local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:79: undefined reference to `pwrdm_lookup'
/local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:93: undefined reference to `pwrdm_add_clkdm'
arch/arm/mach-omap2/built-in.o: In function `omap2_clk_disable_unused':
/local/linux-3.0/arch/arm/mach-omap2/clock.c:442: undefined reference to `pwrdm_clkdm_state_switch'
arch/arm/mach-omap2/built-in.o: In function `omap2_init_common_infrastructure':
/local/linux-3.0/arch/arm/mach-omap2/io.c:355: undefined reference to `omap3xxx_voltagedomains_init'
/local/linux-3.0/arch/arm/mach-omap2/io.c:356: undefined reference to `omap3xxx_powerdomains_init'


Any ideas?  I'd like to keep my changes to the kernel to
a minimum,

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: OMAP3530 with no TWL4030 power controller
  2012-02-06 17:44 OMAP3530 with no TWL4030 power controller Gary Thomas
@ 2012-02-06 23:45 ` Tony Lindgren
  2012-02-06 23:54   ` Gary Thomas
  2012-02-07 22:55 ` Kevin Hilman
  1 sibling, 1 reply; 5+ messages in thread
From: Tony Lindgren @ 2012-02-06 23:45 UTC (permalink / raw)
  To: Gary Thomas; +Cc: linux-omap, Kevin Hilman

* Gary Thomas <gary@mlbassoc.com> [120206 09:14]:
> I have an OMAP3530 (DM3730) board which uses a very simple
> power controller (TPS65910A1).  This controller does not
> support many of the power supplies, etc, that are common
> on the TWL4030 and similar devices.
> 
> I'm using Linux 3.0.  How can I remove the reliance on the
> TWL devices?  Simply disabling PM in my configuration isn't
> enough - that generates a bunch of undefined references.
> Also, there are many places where power supply stuff is
> accessed, outside of PM, in particular DSS2 which has a
> terrible time.  Here's what I get when I disabled PM and
> REGULATOR support:

Yes it should be possible to support other PMIC other than
TWL chips too.. What you're seeing is a bug.
 
> arch/arm/mach-omap2/built-in.o: In function `omap_set_pwrdm_state':
> /local/linux-3.0/arch/arm/mach-omap2/pm.c:122: undefined reference to `pwrdm_read_next_pwrst'
> /local/linux-3.0/arch/arm/mach-omap2/pm.c:126: undefined reference to `pwrdm_read_pwrst'
> /local/linux-3.0/arch/arm/mach-omap2/pm.c:127: undefined reference to `pwrdm_read_pwrst'
> /local/linux-3.0/arch/arm/mach-omap2/pm.c:133: undefined reference to `pwrdm_wait_transition'
> /local/linux-3.0/arch/arm/mach-omap2/pm.c:138: undefined reference to `pwrdm_set_next_pwrst'
> /local/linux-3.0/arch/arm/mach-omap2/pm.c:153: undefined reference to `pwrdm_set_lowpwrstchange'
> /local/linux-3.0/arch/arm/mach-omap2/pm.c:159: undefined reference to `pwrdm_wait_transition'
> /local/linux-3.0/arch/arm/mach-omap2/pm.c:160: undefined reference to `pwrdm_state_switch'
> arch/arm/mach-omap2/built-in.o: In function `omap_hwmod_get_context_loss_count':
> /local/linux-3.0/arch/arm/mach-omap2/omap_hwmod.c:2638: undefined reference to `pwrdm_get_context_loss_count'
> arch/arm/mach-omap2/built-in.o: In function `_clkdm_clk_hwmod_disable':
> /local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:895: undefined reference to `pwrdm_clkdm_state_switch'
> arch/arm/mach-omap2/built-in.o: In function `clkdm_allow_idle':
> /local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:786: undefined reference to `pwrdm_clkdm_state_switch'
> arch/arm/mach-omap2/built-in.o: In function `_clkdm_clk_hwmod_enable':
> /local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:869: undefined reference to `pwrdm_wait_transition'
> /local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:870: undefined reference to `pwrdm_clkdm_state_switch'
> arch/arm/mach-omap2/built-in.o: In function `_clkdm_register':
> /local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:79: undefined reference to `pwrdm_lookup'
> /local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:93: undefined reference to `pwrdm_add_clkdm'
> arch/arm/mach-omap2/built-in.o: In function `omap2_clk_disable_unused':
> /local/linux-3.0/arch/arm/mach-omap2/clock.c:442: undefined reference to `pwrdm_clkdm_state_switch'
> arch/arm/mach-omap2/built-in.o: In function `omap2_init_common_infrastructure':
> /local/linux-3.0/arch/arm/mach-omap2/io.c:355: undefined reference to `omap3xxx_voltagedomains_init'
> /local/linux-3.0/arch/arm/mach-omap2/io.c:356: undefined reference to `omap3xxx_powerdomains_init'
> 
> 
> Any ideas?  I'd like to keep my changes to the kernel to
> a minimum,

Sounds like there should be empty functions for the prdm_* functions
in this case. Kevin might have some patches to fix this already.

Regards,

Tony

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: OMAP3530 with no TWL4030 power controller
  2012-02-06 23:45 ` Tony Lindgren
@ 2012-02-06 23:54   ` Gary Thomas
  2012-02-07 10:53     ` Grazvydas Ignotas
  0 siblings, 1 reply; 5+ messages in thread
From: Gary Thomas @ 2012-02-06 23:54 UTC (permalink / raw)
  To: Tony Lindgren; +Cc: linux-omap, Kevin Hilman

On 2012-02-06 16:45, Tony Lindgren wrote:
> * Gary Thomas<gary@mlbassoc.com>  [120206 09:14]:
>> I have an OMAP3530 (DM3730) board which uses a very simple
>> power controller (TPS65910A1).  This controller does not
>> support many of the power supplies, etc, that are common
>> on the TWL4030 and similar devices.
>>
>> I'm using Linux 3.0.  How can I remove the reliance on the
>> TWL devices?  Simply disabling PM in my configuration isn't
>> enough - that generates a bunch of undefined references.
>> Also, there are many places where power supply stuff is
>> accessed, outside of PM, in particular DSS2 which has a
>> terrible time.  Here's what I get when I disabled PM and
>> REGULATOR support:
>
> Yes it should be possible to support other PMIC other than
> TWL chips too.. What you're seeing is a bug.

This will be a bit more of a change than just another PMIC since
this device isn't much of a power manager (other than at the very
lowest level to handle power up sequencing, etc).  It's good to
hear that it _should_ work and I look forward to ideas on how
to _make_ it work.

For now, I've left PM and REGULATOR enabled so I can at least
build the kernel and with just a few changes, I can get the
kernel to boot to a prompt.  I do need to work out the uglyness
of what I've had to do though :-)

Thanks

>
>> arch/arm/mach-omap2/built-in.o: In function `omap_set_pwrdm_state':
>> /local/linux-3.0/arch/arm/mach-omap2/pm.c:122: undefined reference to `pwrdm_read_next_pwrst'
>> /local/linux-3.0/arch/arm/mach-omap2/pm.c:126: undefined reference to `pwrdm_read_pwrst'
>> /local/linux-3.0/arch/arm/mach-omap2/pm.c:127: undefined reference to `pwrdm_read_pwrst'
>> /local/linux-3.0/arch/arm/mach-omap2/pm.c:133: undefined reference to `pwrdm_wait_transition'
>> /local/linux-3.0/arch/arm/mach-omap2/pm.c:138: undefined reference to `pwrdm_set_next_pwrst'
>> /local/linux-3.0/arch/arm/mach-omap2/pm.c:153: undefined reference to `pwrdm_set_lowpwrstchange'
>> /local/linux-3.0/arch/arm/mach-omap2/pm.c:159: undefined reference to `pwrdm_wait_transition'
>> /local/linux-3.0/arch/arm/mach-omap2/pm.c:160: undefined reference to `pwrdm_state_switch'
>> arch/arm/mach-omap2/built-in.o: In function `omap_hwmod_get_context_loss_count':
>> /local/linux-3.0/arch/arm/mach-omap2/omap_hwmod.c:2638: undefined reference to `pwrdm_get_context_loss_count'
>> arch/arm/mach-omap2/built-in.o: In function `_clkdm_clk_hwmod_disable':
>> /local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:895: undefined reference to `pwrdm_clkdm_state_switch'
>> arch/arm/mach-omap2/built-in.o: In function `clkdm_allow_idle':
>> /local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:786: undefined reference to `pwrdm_clkdm_state_switch'
>> arch/arm/mach-omap2/built-in.o: In function `_clkdm_clk_hwmod_enable':
>> /local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:869: undefined reference to `pwrdm_wait_transition'
>> /local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:870: undefined reference to `pwrdm_clkdm_state_switch'
>> arch/arm/mach-omap2/built-in.o: In function `_clkdm_register':
>> /local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:79: undefined reference to `pwrdm_lookup'
>> /local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:93: undefined reference to `pwrdm_add_clkdm'
>> arch/arm/mach-omap2/built-in.o: In function `omap2_clk_disable_unused':
>> /local/linux-3.0/arch/arm/mach-omap2/clock.c:442: undefined reference to `pwrdm_clkdm_state_switch'
>> arch/arm/mach-omap2/built-in.o: In function `omap2_init_common_infrastructure':
>> /local/linux-3.0/arch/arm/mach-omap2/io.c:355: undefined reference to `omap3xxx_voltagedomains_init'
>> /local/linux-3.0/arch/arm/mach-omap2/io.c:356: undefined reference to `omap3xxx_powerdomains_init'
>>
>>
>> Any ideas?  I'd like to keep my changes to the kernel to
>> a minimum,
>
> Sounds like there should be empty functions for the prdm_* functions
> in this case. Kevin might have some patches to fix this already.
>
> Regards,
>
> Tony

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: OMAP3530 with no TWL4030 power controller
  2012-02-06 23:54   ` Gary Thomas
@ 2012-02-07 10:53     ` Grazvydas Ignotas
  0 siblings, 0 replies; 5+ messages in thread
From: Grazvydas Ignotas @ 2012-02-07 10:53 UTC (permalink / raw)
  To: Gary Thomas; +Cc: Tony Lindgren, linux-omap, Kevin Hilman

On Tue, Feb 7, 2012 at 1:54 AM, Gary Thomas <gary@mlbassoc.com> wrote:
> This will be a bit more of a change than just another PMIC since
> this device isn't much of a power manager (other than at the very
> lowest level to handle power up sequencing, etc).  It's good to
> hear that it _should_ work and I look forward to ideas on how
> to _make_ it work.
>
> For now, I've left PM and REGULATOR enabled so I can at least
> build the kernel and with just a few changes, I can get the
> kernel to boot to a prompt.  I do need to work out the uglyness
> of what I've had to do though :-)

You might still want to have CONFIG_PM on since it's more about things
like turning off clocks when they are no longer used and is suspend to
RAM prerequisite. REGULATOR also doesn't imply PMIC, it has things
like always-on or GPIO controlled power sources. I think you want to
disable CONFIG_TWL4030_CORE that's the actual PMIC core driver that
all it's subchip drivers depend on.


-- 
Gražvydas
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: OMAP3530 with no TWL4030 power controller
  2012-02-06 17:44 OMAP3530 with no TWL4030 power controller Gary Thomas
  2012-02-06 23:45 ` Tony Lindgren
@ 2012-02-07 22:55 ` Kevin Hilman
  1 sibling, 0 replies; 5+ messages in thread
From: Kevin Hilman @ 2012-02-07 22:55 UTC (permalink / raw)
  To: Gary Thomas; +Cc: linux-omap

Gary Thomas <gary@mlbassoc.com> writes:

> I have an OMAP3530 (DM3730) board which uses a very simple
> power controller (TPS65910A1).  This controller does not
> support many of the power supplies, etc, that are common
> on the TWL4030 and similar devices.
>
> I'm using Linux 3.0.  

Can you try what you want with current linux-omap master?  I think I
have fixed any assumptions about the presence of the TWL PMICs, at least
from the voltage layer init.

> How can I remove the reliance on the
> TWL devices?  Simply disabling PM in my configuration isn't
> enough - that generates a bunch of undefined references.

CONFIG_PM is about lots more stuff than PMICs.  All the SoC-internal
power management (power domains, clocks, CPUidle, etc.) are controlled
by that as well.

> Also, there are many places where power supply stuff is
> accessed, outside of PM, in particular DSS2 which has a
> terrible time.  

Does CONFIG_REGULATOR_DUMMY help here? I believe that is for cases like
this where you don't want the regulator request to fail.

> Here's what I get when I disabled PM and
> REGULATOR support:
>
> arch/arm/mach-omap2/built-in.o: In function `omap_set_pwrdm_state':
> /local/linux-3.0/arch/arm/mach-omap2/pm.c:122: undefined reference to `pwrdm_read_next_pwrst'
> /local/linux-3.0/arch/arm/mach-omap2/pm.c:126: undefined reference to `pwrdm_read_pwrst'
> /local/linux-3.0/arch/arm/mach-omap2/pm.c:127: undefined reference to `pwrdm_read_pwrst'
> /local/linux-3.0/arch/arm/mach-omap2/pm.c:133: undefined reference to `pwrdm_wait_transition'
> /local/linux-3.0/arch/arm/mach-omap2/pm.c:138: undefined reference to `pwrdm_set_next_pwrst'
> /local/linux-3.0/arch/arm/mach-omap2/pm.c:153: undefined reference to `pwrdm_set_lowpwrstchange'
> /local/linux-3.0/arch/arm/mach-omap2/pm.c:159: undefined reference to `pwrdm_wait_transition'
> /local/linux-3.0/arch/arm/mach-omap2/pm.c:160: undefined reference to
> `pwrdm_state_switch'

> arch/arm/mach-omap2/built-in.o: In function `omap_hwmod_get_context_loss_count':
> /local/linux-3.0/arch/arm/mach-omap2/omap_hwmod.c:2638: undefined reference to `pwrdm_get_context_loss_count'
> arch/arm/mach-omap2/built-in.o: In function `_clkdm_clk_hwmod_disable':
> /local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:895: undefined reference to `pwrdm_clkdm_state_switch'
> arch/arm/mach-omap2/built-in.o: In function `clkdm_allow_idle':
> /local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:786: undefined reference to `pwrdm_clkdm_state_switch'
> arch/arm/mach-omap2/built-in.o: In function `_clkdm_clk_hwmod_enable':
> /local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:869: undefined reference to `pwrdm_wait_transition'
> /local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:870: undefined reference to `pwrdm_clkdm_state_switch'
> arch/arm/mach-omap2/built-in.o: In function `_clkdm_register':
> /local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:79: undefined reference to `pwrdm_lookup'
> /local/linux-3.0/arch/arm/mach-omap2/clockdomain.c:93: undefined reference to `pwrdm_add_clkdm'
> arch/arm/mach-omap2/built-in.o: In function `omap2_clk_disable_unused':
> /local/linux-3.0/arch/arm/mach-omap2/clock.c:442: undefined reference to `pwrdm_clkdm_state_switch'
> arch/arm/mach-omap2/built-in.o: In function `omap2_init_common_infrastructure':
> /local/linux-3.0/arch/arm/mach-omap2/io.c:355: undefined reference to `omap3xxx_voltagedomains_init'
> /local/linux-3.0/arch/arm/mach-omap2/io.c:356: undefined reference to `omap3xxx_powerdomains_init'

Can you be specific about what .config changes (compared to
omap2plus_defconfig) result in these warnings?

I thought we fixed these a while ago too.  Does this happen on newer kernels?

Kevin

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-02-07 22:55 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-06 17:44 OMAP3530 with no TWL4030 power controller Gary Thomas
2012-02-06 23:45 ` Tony Lindgren
2012-02-06 23:54   ` Gary Thomas
2012-02-07 10:53     ` Grazvydas Ignotas
2012-02-07 22:55 ` Kevin Hilman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.