Next, I'd look at introducing something like
acpi_create_platform_device_ops(struct acpi_device *adev, const struct
property_entry *properties, const struct *platform_device_create_ops
*ops);
where ops would be a set of callbacks to invoke as a matter of customization.
Then, acpi_create_platform_device() can be defined as a wrapper around
the above.
.