Most likely the card reader is an USB storage device. However, it does not cause wakeups by itself — instead, HAL or udisks need to poll it in order to detect media changes, and this polling shows up in powertop. It is possible to disable this polling, but then media changes will not be detected (however, the device will still work, usually trying to access /dev/sdX will cause the kernel to detect media change and detect partitions, then mounting those partitions will be possible).
You can look for the polling processes on your system — HAL and udisks show polled device names in the command line visible in the ps
output:
ps ax | grep /dev/sdX
With HAL there is a separate hald-addon-storage
process for every polled device; with udisks there is a single udisks-daemon
process for all polled devices in the system.
Disabling polling for HAL is easy — there is a special command for it:
hal-disable-polling --device /dev/sdX
If you want to reenable polling later, use the same command with the additional --enable-polling
option.
For newer udisks the situation is more complicated. First, you need a new enough udisks package: Debian bug #559562 says that udisks >= 1.0.0~git20100223.a38230-2 is needed. Next, you need to add an udev rule for your device as described in http://bugs.freedesktop.org/show_bug.cgi?id=26508#c0. For your device the rule should probably look like:
SUBSYSTEM=="block", ENV{ID_VENDOR}=="APPLE*", ENV{ID_MODEL}=="SD Card Reader*", ENV{UDISKS_DISABLE_POLLING}="1"
Put this rule in a newly created file in /etc/udev/rules.d/
(e.g., 99-local.rules
).