From: Peter Barada <peter.barada@gmail.com>
To: Matthias Kaehlcke <matthias@kaehlcke.net>
Cc: Peter Barada <peter.barada@logicpd.com>, linux-omap@vger.kernel.org
Subject: Re: Regulator question regarding I2C devices
Date: Sat, 29 Jan 2011 14:58:08 -0500 [thread overview]
Message-ID: <4D447150.1000406@gmail.com> (raw)
In-Reply-To: <20110129173446.GG32186@darwin>
On 01/29/2011 12:34 PM, Matthias Kaehlcke wrote:
> Hi Peter,
>
> El Fri, Jan 28, 2011 at 05:24:01PM -0500 Peter Barada ha dit:
>
>> I have a tsc2004 touch controller on I2C3 that is powered by vaux1,
>> and since its probed I have to turn the power on before it can be
>> probed.
>>
>> I've created:
>>
>> static struct regulator_consumer_supply dm3730logic_vaux1_supply = {
>> .supply = "vaux1",
>> };
>>
>> /* VAUX1 for touch chip */
>> static struct regulator_init_data dm3730logic_vaux1 = {
>> .constraints = {
>> .min_uV = 3000000,
>> .max_uV = 3000000,
>> .apply_uV = true,
>> .valid_modes_mask = REGULATOR_MODE_NORMAL
>> | REGULATOR_MODE_STANDBY,
>> .valid_ops_mask = REGULATOR_CHANGE_MODE
>> | REGULATOR_CHANGE_STATUS,
>> },
>> .num_consumer_supplies = 1,
>> .consumer_supplies = &dm3730logic_vaux1_supply,
>> };
>>
>> and listed it in the twldata initializer
>> .vaux1 = &dm3730logic_vaux1,
>>
>> But it never gets enabled... How can I tell the kernel to turn the regulator on?
>>
>> If I try to call regulator_get() right before the call to omap_register_i2c_bus for I2C3, regulator_get returns a NULL due to regulator_map_list being empty. If I look in sys/class/regulator I see VAUX1 listed (as regulator.4), but there are no users.
>>
>> Any suggestions on how I can turn on vaux1 so the tsc2004 touch
>> controller is visible to by the I2C system?
> I guess the problem is that the regulators aren't initialized when you
> call regulator_get() before the i2c bus registration
>
> I think the right thing is to do the regulator handling inside the
> tsc2004 driver
>
> The ADS7846 touchscreen driver (drivers/input/touchscreen/ads7846.c)
> in combination with the TimLL Devkit8000 board
> (arch/arm/mach-omap2/board-devkit8000.c) can serve you as a reference
Thanks; figured it out late last night and have it working. I added two more hooks to the tsc2004.c driver, "pre_init_platform_hw" and "post_exit_platform_hw" that each take the pdata pointer as well as the regulator. Then in my board file I get/enable the regulator in the pre_init hook, and disable/put the regulator in the post_exit hook....
> Best regards
>
--
Peter Barada
peter.barada@gmail.com
prev parent reply other threads:[~2011-01-29 19:58 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-28 22:24 Regulator question regarding I2C devices Peter Barada
2011-01-29 17:34 ` Matthias Kaehlcke
2011-01-29 19:58 ` Peter Barada [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D447150.1000406@gmail.com \
--to=peter.barada@gmail.com \
--cc=linux-omap@vger.kernel.org \
--cc=matthias@kaehlcke.net \
--cc=peter.barada@logicpd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox