In many cases, UIO drivers for platform devices can be handled in a
generic way. In the same place where you define your
struct platform_device, you simply also implement
your interrupt handler and fill your
struct uio_info. A pointer to this
struct uio_info is then used as
platform_data for your platform device.
You also need to set up an array of struct resource
containing addresses and sizes of your memory mappings. This
information is passed to the driver using the
.resource and .num_resources
elements of struct platform_device.
You now have to set the .name element of
struct platform_device to
"uio_pdrv" to use the generic UIO platform device
driver. This driver will fill the mem[] array
according to the resources given, and register the device.
The advantage of this approach is that you only have to edit a file you need to edit anyway. You do not have to create an extra driver.