On Thu, Nov 14, 2013 at 10:33:22AM +0900, Kyungmin Park wrote: > On Wed, Nov 13, 2013 at 10:13 PM, Mark Brown <broonie@xxxxxxxxxx> wrote: > > Are you *positive* this is a falling triggered IRQ? All the code to do > > with spinning reading the GPIO state during handling makes it look like > > this is in fact an active low interrupt and a lot of the code in here is > > working around trying to handle that as the wrong kind of IRQ. > It's not work with level triggering. as wm8994, it requires edge > triggering. previous time I send RFC patch to handle edge triggering > at regmap. No, wm8994 is level triggered only - the edge triggering stuff there is to work around some SoCs that could only support edge triggering and not level triggering. Is this a similar issue or is there something else going on, what's the differeence with a level triggered scheme? > >> +static int __init max14577_i2c_init(void) > >> +{ > >> + return i2c_add_driver(&max14577_i2c_driver); > >> +} > >> +subsys_initcall(max14577_i2c_init); > > Why not module_i2c_driver? > there's ordering issue, it should provide regulator which is used > others before USB probe. if not, it failed to use USB. > Other PMICs use also subsys_initcall for this reason. Modern systems should be able to use deferred probing to resolve these dependencies, subsys_initcall() is mostly there for legacy reasons and new systems ought to be able to move away from it.
Attachment:
signature.asc
Description: Digital signature