While devfs was a step forward, it had several disadvantages of its own.[2] Since version 2.5 of the Linux kernel, devfs has been succeeded by udev and devtmpfs.[3]
In practical terms I think it's fair to say that the /dev/ttyS* devices are a special case since apart from anything else there appears to be a general convention that four device nodes always exist irrespective of whether there are corresponding physical devices. I think this comes from the kernel because of long-term problems enumerating legacy devices, but it's a long time since I've had to poke around that particular area.
It used to be that /dev/ttyS* was also used for "dumb" multiport PCI etc. cards which could be enumerated, but it's a long time since I've seen one. I'd be open to the suggestion that the /dev/tts* series was being used in this case, but am just a bit sceptical since they don't appear in Torvalds's
https://github.com/torvalds/linux/blob/master/Documentation/admin-guide/devices.txt which is a definitive kernel document and is being maintained.
I'm obviously familiar with the other series of names: /dev/ttyUSB*, /dev/ttyACM*, /dev/ttyAM* and the rest, as well as older names for things like ISDN ports which still were broadly handled by the serial API.
I'm slightly concerned by OP's /dev/ttySC* names but I presume they correspond to
205 = /dev/ttySC0 SC26xx serial port 0
206 = /dev/ttySC1 SC26xx serial port 1
207 = /dev/ttySC2 SC26xx serial port 2
208 = /dev/ttySC3 SC26xx serial port 3
where the SC26xx are apparently NXP devices.
https://linux-kernel.vger.kernel.narkive.com/MR53ugNh/serial-sc26xx-device-name might be relevant, but at this point I think we really do need to know what kernel module OP sees being loaded (dmesg output) and I think we also need him to step through the device open sequence in case the name is getting mnagled... only he can do that since I don't think that anybody else here has that hardware.
@JurassicPork: had an interesting one yesterday. I added a SIGUSR1 handler to a program to extract timing info while it was running, and found it broke timeout code in serial.pp. I need to revisit that at some point but aren't looking forward to it since I'll need to recreate a SunOS/Solaris system for testing since there are differences in the way fpSelect() works.
MarkMLl