[RFC][PATCH 0/1] serdev: Support HS-UART serdev slaves over tty

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux