On systems using Intel Atom (Baytrail-I) SoC's, slave devices connected on HSUART1/2 ports are described by the ACPI BIOS as virtual hardware using HID's INT3511/INT3512 [1]. As a consequence, HW manufacturers have complete freedom to install any devices on-board as long as they can be accessed over serial tty interface. Once such device is Dell Edge 3002 IoT Gateway which sports ZigBee & GPS devices on the HS-UART ports 1 & 2 respectively. In kernels before the introduction of 'Serial Device Bus (serdev)' subsystem, these devices were accessible using /dev/ttySx nodes. But, kernels since 4.15 can no longer do so. Post 4.15, with CONFIG_SERIAL_DEV_BUS=y, serdev port controller driver handles the enumeration for the slaves connected on these ports. Also, /dev/ttySx device nodes for these ports are no longer exposed to the userspace. This patch implements a new driver which binds to the ACPI serdev slaves enumerated by the serdev port controller and exposes /dev/ttyHSx device nodes which the userspace applications can use. Otherwise, upgrades to 4.15 or higher kernels would certainly render these devices unusable. Considering serdev is new and evolving, this is one approach to solving the problem at hand. An obvious drawback is the change in the tty device node name from ttySx => ttyHSx, which means userspace applications have to be modified (I know that this is strongly discouraged). For the same reason, I am submitting these patches as RFC. If there are other/better ways of solving this or improving on the proposed solution, that will be most helpful. This patch is based on: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git v4.17-rc2 [1] Enabling Multi-COM Port for Microsoft Windows OS 8.1 & 10 / IoT Core [Sec. 4.1] (https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/enabling-multi-com-port-white-paper.pdf) Shrirang Bagul (1): serdev: Support HS-UART serdev slaves over tty drivers/misc/Kconfig | 11 ++ drivers/misc/Makefile | 1 + drivers/misc/intel-hsuart-serdev.c | 332 +++++++++++++++++++++++++++++++++++++ 3 files changed, 344 insertions(+) create mode 100644 drivers/misc/intel-hsuart-serdev.c -- 2.14.1 -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html