Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

serial: 8250_lpss: Enable HS UART on Elkhart Lake

Intel Elkhart Lake may use High Speed UART from OSE IP block.
This is different to what we have in main LPSS, though compatible
with older version of it, which is handled by this driver.

Enable OSE HS UART on Intel Elkhart Lake by adding PCI IDs.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20190806094322.64987-9-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Andy Shevchenko and committed by
Greg Kroah-Hartman
4f912b89 d53aa935

+18
+18
drivers/tty/serial/8250/8250_lpss.c
··· 24 24 #define PCI_DEVICE_ID_INTEL_BSW_UART1 0x228a 25 25 #define PCI_DEVICE_ID_INTEL_BSW_UART2 0x228c 26 26 27 + #define PCI_DEVICE_ID_INTEL_EHL_UART0 0x4b96 28 + #define PCI_DEVICE_ID_INTEL_EHL_UART1 0x4b97 29 + #define PCI_DEVICE_ID_INTEL_EHL_UART2 0x4b98 30 + #define PCI_DEVICE_ID_INTEL_EHL_UART3 0x4b99 31 + #define PCI_DEVICE_ID_INTEL_EHL_UART4 0x4b9a 32 + #define PCI_DEVICE_ID_INTEL_EHL_UART5 0x4b9b 33 + 27 34 #define PCI_DEVICE_ID_INTEL_BDW_UART1 0x9ce3 28 35 #define PCI_DEVICE_ID_INTEL_BDW_UART2 0x9ce4 29 36 ··· 356 349 .setup = byt_serial_setup, 357 350 }; 358 351 352 + static const struct lpss8250_board ehl_board = { 353 + .freq = 200000000, 354 + .base_baud = 12500000, 355 + }; 356 + 359 357 static const struct lpss8250_board qrk_board = { 360 358 .freq = 44236800, 361 359 .base_baud = 2764800, ··· 370 358 371 359 static const struct pci_device_id pci_ids[] = { 372 360 { PCI_DEVICE_DATA(INTEL, QRK_UARTx, &qrk_board) }, 361 + { PCI_DEVICE_DATA(INTEL, EHL_UART0, &ehl_board) }, 362 + { PCI_DEVICE_DATA(INTEL, EHL_UART1, &ehl_board) }, 363 + { PCI_DEVICE_DATA(INTEL, EHL_UART2, &ehl_board) }, 364 + { PCI_DEVICE_DATA(INTEL, EHL_UART3, &ehl_board) }, 365 + { PCI_DEVICE_DATA(INTEL, EHL_UART4, &ehl_board) }, 366 + { PCI_DEVICE_DATA(INTEL, EHL_UART5, &ehl_board) }, 373 367 { PCI_DEVICE_DATA(INTEL, BYT_UART1, &byt_board) }, 374 368 { PCI_DEVICE_DATA(INTEL, BYT_UART2, &byt_board) }, 375 369 { PCI_DEVICE_DATA(INTEL, BSW_UART1, &byt_board) },