quoted
Converted the existing arch-vt8500 gpio to a platform_device.
Added support for WM8505 and WM8650 GPIO controllers.
(...)
quoted
+ unsigned val;
I asked about the datatype for this "val", it sure isn't "unsigned".
I suspected the registers were only 8bit and so it should be u8.
But atleast use u32 if you must use all these bits.
Sorry - missed adding this to my list of fixes. I've used u32 as the
datasheet advises these are 32-bit registers and must be
read/written as such.
Changes included in v4.
(...)
quoted
+ val = readl(vt8500_chip->base + vt8500_chip->regs->en);
+ val |= BIT(offset);
+ writel(val, vt8500_chip->base + vt8500_chip->regs->en);
BTW: have you considered [readl|writel]_relaxed?
I haven't - and to be honest I didn't know what difference it would
make until I read up on it.
Most of this code already existed in mainline in
arch/arm/mach-vt8500/gpio.c and I simply moved it across to
drivers/gpio and made some changes/additions. Having looked,
I don't see any reason why it can't use the _relaxed variants.
Changes included in v4.
I'll post up v4 for review when I get home in about 7 hours.
Work always gets in the way of being productive :)
Regards
Tony Prisk