IIO fixes for elements queued for 3.6 merge window. 3 types of fix here. 1) Incorrect pointer casting via phys_addr_t which causes trouble on some architectures. 2) request_irq and free_irq dev_id parameters not matching. 3) Inconsistencies in client_data for some i2c devices (writing one pointer and expecting another later).