Hi,
A platfrom_driver will usually be part of a low level Board support package(for devices connected to main system bus). It supports dynamic probe (i.e. at kernel run time), suspend,resume,shutdown ops and by default it will not provide any support if any user space app has to access this driver. If any user space app has to do a read/write operation, then a separate sysfs entry has to be registered or MKDEV/device_create has to be done(same way as normal char driver).
If there is any need for the platform_driver or i2C_driver to interact with user space, then within the platform_driver's probe function, another misc driver can be registered which will create a node in /dev/ with a particular major number (10) reserved for misc drivers. with this node, user space app can call open(),read() ioctl() API's. This removes all the complexities associated with sysfs/device_create/DEVICE_ATTR etc.
Theoretically your driver is a platform_driver, but since it uses misc_driver to facilitate user space read/write calls, it should be classified as a misc driver and the driver code should be placed under /driver/misc folder.
Likewise if you use a input_register_device() along with a platform driver, then it should be placed under /driver/input.
Thanks & Regards,
Srinidhi