I cannot speak for CM 12.1 on JYS3 since I never used it. I do use RC5 which has sysctl directory /sys/kernel/charge_levels with the 3 files. I don't think any JYS3 kernel has modules in system/modules so I guess one can use RC5 kernel on CM 12.1
For building cyanogenmod, you basically don't need any source of your device.
One can download cyanogenmod source and try building it for a particular device.
For this, you need to create a so called "device tree", which includes the basic configuration to make it work on this particular device.
Of course one could create this device tree on his own, but mostly there's already some similar device one can fork and modify. In this case one should give credits to the original developer.
Fire855 has created our device tree on his own, but he/we still used the RIL patches from jianminglok (hence giving credits to him).
Smartwake and fm radio are developed by mediatek, and had been fixed to work in cyanogenmod by me. Both depend on proprietary mediatek code, and can't be shared.