<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/mfd/twl-core.c, branch linux-3.3.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.3.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.3.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2012-02-09T17:56:53Z</updated>
<entry>
<title>ARM: omap: fix broken twl-core dependencies and ifdefs</title>
<updated>2012-02-09T17:56:53Z</updated>
<author>
<name>Russell King</name>
</author>
<published>2012-02-07T09:47:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6252547b8a7acced581b649af4ebf6d65f63a34b'/>
<id>urn:sha1:6252547b8a7acced581b649af4ebf6d65f63a34b</id>
<content type='text'>
In commit aeb5032b3f, a dependency on IRQ_DOMAIN was added, which causes
regressions on previously working setups: a previously working non-DT
kernel configuration now loses its PMIC support.  The lack of PMIC
support in turn causes the loss of other functionality the kernel had.

This dependency was added because the driver now registers its
interrupts with the IRQ domain code, presumably to prevent a build error.

The result is that OMAP3 oopses in the vp.c code (fixed by a previous
commit) due to the lack of PMIC support.

However, even with IRQ_DOMAIN enabled, the driver oopses:

Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c0004000
[00000000] *pgd=00000000
Internal error: Oops: 5 [#1] SMP
Modules linked in:
CPU: 1    Not tainted  (3.3.0-rc2+ #271)
PC is at irq_domain_add+0x1c/0x134
LR is at twl_probe+0xd0/0x370
pc : [&lt;c007bad0&gt;]    lr : [&lt;c029baac&gt;]    psr: 00000113
sp : df843c48  ip : df843c68  fp : df843c64
r10: c02b93e4  r9 : 00000000  r8 : c029b9dc
r7 : df9d8a00  r6 : c03bef90  r5 : 00000000  r4 : c03f5240
r3 : 00000000  r2 : c03f5240  r1 : 00000015  r0 : c03f5240
Flags: nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c5387d  Table: 8000404a  DAC: 00000015
Process swapper/0 (pid: 1, stack limit = 0xdf8422f0)
Stack: (0xdf843c48 to 0xdf844000)
3c40:                   00000014 00000170 00000014 c03bef90 df843c9c df843c68
3c60: c029baac c007bac0 00000000 df9d8a20 00000001 c03cd238 c02b93e4 df9d8a20
3c80: df9d8a04 df9d8a00 c029b9dc df8cae08 df843cc4 df843ca0 c01eee70 c029b9e8
...
Backtrace:
[&lt;c007bab4&gt;] (irq_domain_add+0x0/0x134) from [&lt;c029baac&gt;] (twl_probe+0xd0/0x370)
 r6:c03bef90 r5:00000014 r4:00000170
[&lt;c029b9dc&gt;] (twl_probe+0x0/0x370) from [&lt;c01eee70&gt;] (i2c_device_probe+0xb0/0xe4)
[&lt;c01eedc0&gt;] (i2c_device_probe+0x0/0xe4) from [&lt;c01d1f34&gt;] (really_probe+0xa0/0x178)
 r8:df8f0070 r7:c03cd238 r6:df9d8a20 r5:df9d8a20 r4:df9d8a20
[&lt;c01d1e94&gt;] (really_probe+0x0/0x178) from [&lt;c01d205c&gt;] (driver_probe_device+0x50/0x68)
 r7:df843d18 r6:df9d8a20 r5:c03cd238 r4:df9d8a20
[&lt;c01d200c&gt;] (driver_probe_device+0x0/0x68) from [&lt;c01d2148&gt;] (__device_attach+0x44/0x48)
 r5:df9d8a20 r4:c03cd238
[&lt;c01d2104&gt;] (__device_attach+0x0/0x48) from [&lt;c01d0840&gt;] (bus_for_each_drv+0x58/0x98)
 r5:c01d2104 r4:00000000
[&lt;c01d07e8&gt;] (bus_for_each_drv+0x0/0x98) from [&lt;c01d21f8&gt;] (device_attach+0x80/0xac)
 r7:df9d8a28 r6:df9d8a54 r5:c03cd978 r4:df9d8a20
[&lt;c01d2178&gt;] (device_attach+0x0/0xac) from [&lt;c01d1430&gt;] (bus_probe_device+0x34/0xa4)
 r6:df9d8a20 r5:c03cd978 r4:df9d8a20
[&lt;c01d13fc&gt;] (bus_probe_device+0x0/0xa4) from [&lt;c01cffb0&gt;] (device_add+0x2a0/0x420)
 r6:00000000 r5:df9d8a20 r4:df9d8a20
[&lt;c01cfd10&gt;] (device_add+0x0/0x420) from [&lt;c01d0150&gt;] (device_register+0x20/0x24)
 r8:df9d8a00 r7:df9d8a04 r6:df8f0048 r5:df9d8a00 r4:df9d8a20
[&lt;c01d0130&gt;] (device_register+0x0/0x24) from [&lt;c01ef8d4&gt;] (i2c_new_device+0x118/0x180)
 r4:df9d8a20
[&lt;c01ef7bc&gt;] (i2c_new_device+0x0/0x180) from [&lt;c01efc88&gt;] (i2c_register_adapter+0x140/0x204)
 r8:c03cd970 r7:00000000 r6:df8f0070 r5:df8a6300 r4:df8f0048
[&lt;c01efb48&gt;] (i2c_register_adapter+0x0/0x204) from [&lt;c01efe9c&gt;] (i2c_add_numbered_adapter+0xb4/0xcc)
 r8:df8a4c54 r7:df8cae00 r6:df843e2c r5:df8f0048 r4:00000000
[&lt;c01efde8&gt;] (i2c_add_numbered_adapter+0x0/0xcc) from [&lt;c029ce1c&gt;] (omap_i2c_probe+0x2f8/0x3b4)
 r6:00000000 r5:df8f0000 r4:df8f0070
[&lt;c029cb24&gt;] (omap_i2c_probe+0x0/0x3b4) from [&lt;c01d3484&gt;] (platform_drv_probe+0x20/0x24)
[&lt;c01d3464&gt;] (platform_drv_probe+0x0/0x24) from [&lt;c01d1f34&gt;] (really_probe+0xa0/0x178)
[&lt;c01d1e94&gt;] (really_probe+0x0/0x178) from [&lt;c01d205c&gt;] (driver_probe_device+0x50/0x68)
 r7:df843ef0 r6:c03cdb2c r5:c03cdb2c r4:df8cae08
[&lt;c01d200c&gt;] (driver_probe_device+0x0/0x68) from [&lt;c01d20e0&gt;] (__driver_attach+0x6c/0x90)
 r5:df8cae3c r4:df8cae08
[&lt;c01d2074&gt;] (__driver_attach+0x0/0x90) from [&lt;c01d08d8&gt;] (bus_for_each_dev+0x58/0x98)
 r6:c03cdb2c r5:c01d2074 r4:00000000
[&lt;c01d0880&gt;] (bus_for_each_dev+0x0/0x98) from [&lt;c01d1d80&gt;] (driver_attach+0x20/0x28)
 r7:df880b80 r6:c03cdb2c r5:c03cdb2c r4:c0394f28
[&lt;c01d1d60&gt;] (driver_attach+0x0/0x28) from [&lt;c01d115c&gt;] (bus_add_driver+0xb4/0x230)
[&lt;c01d10a8&gt;] (bus_add_driver+0x0/0x230) from [&lt;c01d278c&gt;] (driver_register+0xc8/0x154)
[&lt;c01d26c4&gt;] (driver_register+0x0/0x154) from [&lt;c01d37e4&gt;] (platform_driver_register+0x4c/0x60)
 r8:00000000 r7:00000013 r6:c00384c8 r5:c0395180 r4:c0394f28
[&lt;c01d3798&gt;] (platform_driver_register+0x0/0x60) from [&lt;c038626c&gt;] (omap_i2c_init_driver+0x14/0x1c)
[&lt;c0386258&gt;] (omap_i2c_init_driver+0x0/0x1c) from [&lt;c00087b8&gt;] (do_one_initcall+0x9c/0x164)
[&lt;c000871c&gt;] (do_one_initcall+0x0/0x164) from [&lt;c036c2f4&gt;] (kernel_init+0x90/0x138)
[&lt;c036c264&gt;] (kernel_init+0x0/0x138) from [&lt;c00384c8&gt;] (do_exit+0x0/0x2ec)
 r5:c036c264 r4:00000000
&lt;0&gt;Code: e24dd004 e5903014 e1a04000 e5905010 (e5933000)
&lt;4&gt;---[ end trace 1b75b31a2719ed1c ]---

This happens because we try to register an IRQ domain with a NULL ops
structure, and the first thing irq_domain_add() does is try to
dereference this ops structure.

So, fix the problem by getting rid of the incorrect OF_IRQ ifdef and
wrapping the IRQ domain bits of the driver with an IRQ_DOMAIN ifdef
instead.

Acked-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>mfd: twl-core: Add initial DT support for twl4030/twl6030</title>
<updated>2012-01-08T23:37:40Z</updated>
<author>
<name>Benoit Cousson</name>
</author>
<published>2011-08-29T14:20:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=aeb5032b3f8b9ab69daa545777433fa94b3494c4'/>
<id>urn:sha1:aeb5032b3f8b9ab69daa545777433fa94b3494c4</id>
<content type='text'>
Add initial device-tree support for twl familly chips.
The current version is missing the regulator entries due
to the lack of DT regulator bindings for the moment.
Only the simple sub-modules that do not depend on
platform_data information can be initialized properly.

Add irqdomain support.

Add documentation for the Texas Instruments TWL Integrated Chip.

Signed-off-by: Benoit Cousson &lt;b-cousson@ti.com&gt;
Cc: Balaji T K &lt;balajitk@ti.com&gt;
Cc: Graeme Gregory &lt;gg@slimlogic.co.uk&gt;
Signed-off-by: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
Acked-by: Rob Herring &lt;rob.herring@calxeda.com&gt;
[grant.likely@secretlab.ca: Fix IRQ_DOMAIN dependency in kconfig]
Cc: Grant Likely &lt;grant.likely@secretlab.ca&gt;
</content>
</entry>
<entry>
<title>mfd: Fix twl-core oops while calling twl_i2c_* for unbound driver</title>
<updated>2011-12-20T17:53:25Z</updated>
<author>
<name>Ilya Yanok</name>
</author>
<published>2011-08-01T21:00:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8653be1afd60d6e8c36139b487e375b70357d9ef'/>
<id>urn:sha1:8653be1afd60d6e8c36139b487e375b70357d9ef</id>
<content type='text'>
Check inuse variable before trying to access twl_map to prevent
dereferencing of uninitialized variable.

Signed-off-by: Ilya Yanok &lt;yanok@emcraft.com&gt;
Cc: stable@kernel.org
Signed-off-by: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux</title>
<updated>2011-11-07T03:44:47Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2011-11-07T03:44:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=32aaeffbd4a7457bf2f7448b33b5946ff2a960eb'/>
<id>urn:sha1:32aaeffbd4a7457bf2f7448b33b5946ff2a960eb</id>
<content type='text'>
* 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)
  Revert "tracing: Include module.h in define_trace.h"
  irq: don't put module.h into irq.h for tracking irqgen modules.
  bluetooth: macroize two small inlines to avoid module.h
  ip_vs.h: fix implicit use of module_get/module_put from module.h
  nf_conntrack.h: fix up fallout from implicit moduleparam.h presence
  include: replace linux/module.h with "struct module" wherever possible
  include: convert various register fcns to macros to avoid include chaining
  crypto.h: remove unused crypto_tfm_alg_modname() inline
  uwb.h: fix implicit use of asm/page.h for PAGE_SIZE
  pm_runtime.h: explicitly requires notifier.h
  linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h
  miscdevice.h: fix up implicit use of lists and types
  stop_machine.h: fix implicit use of smp.h for smp_processor_id
  of: fix implicit use of errno.h in include/linux/of.h
  of_platform.h: delete needless include &lt;linux/module.h&gt;
  acpi: remove module.h include from platform/aclinux.h
  miscdevice.h: delete unnecessary inclusion of module.h
  device_cgroup.h: delete needless include &lt;linux/module.h&gt;
  net: sch_generic remove redundant use of &lt;linux/module.h&gt;
  net: inet_timewait_sock doesnt need &lt;linux/module.h&gt;
  ...

Fix up trivial conflicts (other header files, and  removal of the ab3550 mfd driver) in
 - drivers/media/dvb/frontends/dibx000_common.c
 - drivers/media/video/{mt9m111.c,ov6650.c}
 - drivers/mfd/ab3550-core.c
 - include/linux/dmaengine.h
</content>
</entry>
<entry>
<title>mfd: Add module.h to the implicit drivers/mfd users</title>
<updated>2011-10-31T23:32:04Z</updated>
<author>
<name>Paul Gortmaker</name>
</author>
<published>2011-07-03T19:13:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4e36dd331423fce1f996d93b991453a1a702ca5c'/>
<id>urn:sha1:4e36dd331423fce1f996d93b991453a1a702ca5c</id>
<content type='text'>
With the pending module.h cleanup, these files will fail to compile,
unless they explicitly call out the include of this file.

[omap-usb-host addition courtesy of Anand Gadiyar &lt;gadiyar@ti.com&gt;]

Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
</entry>
<entry>
<title>mfd: Fix twl4030 dependencies for audio codec</title>
<updated>2011-10-24T12:09:13Z</updated>
<author>
<name>Thomas Weber</name>
</author>
<published>2011-09-05T09:26:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f09ee0451a44a4e913a7c3cec3805508f7de6c54'/>
<id>urn:sha1:f09ee0451a44a4e913a7c3cec3805508f7de6c54</id>
<content type='text'>
The codec for Devkit8000 (TWL4030)  was not detected except
when build with CONFIG_SND_SOC_ALL_CODECS.

twl-core.c still uses the CONFIG_TWL4030_CODEC for
twl_has_codec().

In commit 57fe7251f5bfc4332f24479376de48a1e8ca6211
the CONFIG_TWL4030_CODEC was renamed
into CONFIG_MFD_TWL4030_AUDIO, thatswhy the codec
was not detected.

This patch renames the CONFIG_ TWL4030_CODEC into
CONFIG_MFD_TWL4030_AUDIO in twl-core.c.

Signed-off-by: Thomas Weber &lt;weber@corscience.de&gt;
Acked-by: Peter Ujfalusi &lt;peter.ujfalusi@ti.com&gt;
Signed-off-by: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>mfd: Add tps65921 support from twl-core</title>
<updated>2011-07-31T21:28:24Z</updated>
<author>
<name>Oleg Drokin</name>
</author>
<published>2011-07-01T11:34:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=59dead5a0c65abed0fe997a69692c11fcd0b11ca'/>
<id>urn:sha1:59dead5a0c65abed0fe997a69692c11fcd0b11ca</id>
<content type='text'>
Very similar to TPS65920
List of differences: http://www.ti.com/litv/pdf/swcu066b

Signed-off-by: Oleg Drokin &lt;green@linuxhacker.ru&gt;
Signed-off-by: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>mfd: twl6040: Add initial support</title>
<updated>2011-07-04T16:34:37Z</updated>
<author>
<name>Misael Lopez Cruz</name>
</author>
<published>2011-04-27T07:14:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f19b2823f82499c60ec15d5fe8783193d77e3043'/>
<id>urn:sha1:f19b2823f82499c60ec15d5fe8783193d77e3043</id>
<content type='text'>
TWL6040 IC provides analog high-end audio codec functions for
handset applications. It contains several audio analog inputs
and outputs as well as vibrator support. It's connected to the
host processor via PDM interface for audio data communication.
The audio modules are controlled by internal registers that
can be accessed by I2C and PDM interface.

TWL6040 MFD will be registered as a child of TWL-CORE, and will
have two children of its own: twl6040-codec and twl6040-vibra.

This driver is based on TWL4030 and WM8350 MFD drivers.

Signed-off-by: Misael Lopez Cruz &lt;misael.lopez@ti.com&gt;
Signed-off-by: Peter Ujfalusi &lt;peter.ujfalusi@ti.com&gt;
Acked-by: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>MFD: twl4030-audio: Rename platform data</title>
<updated>2011-07-04T15:44:02Z</updated>
<author>
<name>Peter Ujfalusi</name>
</author>
<published>2011-05-31T12:21:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4ae6df5e1018796ce260be59b2c603bd0f9faa94'/>
<id>urn:sha1:4ae6df5e1018796ce260be59b2c603bd0f9faa94</id>
<content type='text'>
Allign the platform data names for twl4030 audio submodule:
twl4030_audio_data: for the core MFD driver
twl4030_codec_data: for ASoC codec driver
twl4030_vibra_data: for the input/ForceFeedback driver

To avoid breakage, change all depending drivers, files
to use the new types.

Signed-off-by: Peter Ujfalusi &lt;peter.ujfalusi@ti.com&gt;
Acked-by: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>mfd: Add phoenix lite (twl6025) support to twl6030</title>
<updated>2011-05-26T17:45:39Z</updated>
<author>
<name>Graeme Gregory</name>
</author>
<published>2011-05-12T13:27:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=521d8ec3f0d8069bea3b3afa70f487cdb5118018'/>
<id>urn:sha1:521d8ec3f0d8069bea3b3afa70f487cdb5118018</id>
<content type='text'>
Phoenix Lite is based on the twl6030 family of PMICs. It has mostly the
same feature set of twl6030 but with small changes. The codec block has
also been removed. It also has a new charger block and new features in
its ADC block. VUSB handling also differs.

Signed-off-by: Graeme Gregory &lt;gg@slimlogic.co.uk&gt;
Reviewed-by: Mark Brown &lt;broonie@opensource.wolfsonicro.com&gt;
Signed-off-by: Samuel Ortiz &lt;sameo@linux.intel.com&gt;
</content>
</entry>
</feed>
