The ioctl command numbers should be unique across the system in order to prevent errors caused by issuing the right command to the wrong device.
To help programmers create unique ioctl command codes, these codes have been
split up into several bitfields. Such bitfields must be only manipulated with the _IO macros defined in linux/ioctl.h.
To device a new set of ioctl codes first of all you should read Documentation/ioctl/ioctl-number.txt and later check out how my example has come the theory toward the practice (code here).