I figured out my problems. It is a naming convention issue for the
shared library.
In hardware/libhardware/hardware.c, I noticed the call hw_get_module
looks for various sets of names for the hardware modules. If you
follow the porting guide from here:
http://source.android.com/porting/lights.html
it says to name your library liblights.so. Well, that appears to be
misleading information. I had to name my lights library "lights.
($ro.board.platform).so" - the hardware module id ends up being the
first part (lights), and you can use one of 4 different system
properties for the 2nd name (in my case I used the system prop
ro.board.platform). The only other possibility is to name your lights
library "
lights.default.so" Another caveat is to place this shared
library in /system/lib/hw and not in /system/lib. The hardware.c
implementation is hard-coded to look there.
Once I got the naming and location right, Android was finally able to
latch into my backlight and control it. I still have some minor
problems but they may be coding issues that I will iron out as I
continue testing.
Hope this helps anyone else with similar problems...