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

spi: pxa2xx: Add support for Intel Broxton

LPSS SPI in Intel Broxton is otherwise the same than in Intel Sunrisepoint
but it supports up to four chip selects per port and has different FIFO
thresholds. Patch adds support for two Broxton SoC variants.

Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Jarkko Nikula and committed by
Mark Brown
b7c08cf8 8b136baa

+21
+20
drivers/spi/spi-pxa2xx.c
··· 116 116 .tx_threshold_lo = 32, 117 117 .tx_threshold_hi = 56, 118 118 }, 119 + { /* LPSS_BXT_SSP */ 120 + .offset = 0x200, 121 + .reg_general = -1, 122 + .reg_ssp = 0x20, 123 + .reg_cs_ctrl = 0x24, 124 + .reg_capabilities = 0xfc, 125 + .rx_threshold = 1, 126 + .tx_threshold_lo = 16, 127 + .tx_threshold_hi = 48, 128 + }, 119 129 }; 120 130 121 131 static inline const struct lpss_config ··· 140 130 case LPSS_LPT_SSP: 141 131 case LPSS_BYT_SSP: 142 132 case LPSS_SPT_SSP: 133 + case LPSS_BXT_SSP: 143 134 return true; 144 135 default: 145 136 return false; ··· 1163 1152 case LPSS_LPT_SSP: 1164 1153 case LPSS_BYT_SSP: 1165 1154 case LPSS_SPT_SSP: 1155 + case LPSS_BXT_SSP: 1166 1156 config = lpss_get_config(drv_data); 1167 1157 tx_thres = config->tx_threshold_lo; 1168 1158 tx_hi_thres = config->tx_threshold_hi; ··· 1325 1313 /* SPT-H */ 1326 1314 { PCI_VDEVICE(INTEL, 0xa129), LPSS_SPT_SSP }, 1327 1315 { PCI_VDEVICE(INTEL, 0xa12a), LPSS_SPT_SSP }, 1316 + /* BXT */ 1317 + { PCI_VDEVICE(INTEL, 0x0ac2), LPSS_BXT_SSP }, 1318 + { PCI_VDEVICE(INTEL, 0x0ac4), LPSS_BXT_SSP }, 1319 + { PCI_VDEVICE(INTEL, 0x0ac6), LPSS_BXT_SSP }, 1320 + /* APL */ 1321 + { PCI_VDEVICE(INTEL, 0x5ac2), LPSS_BXT_SSP }, 1322 + { PCI_VDEVICE(INTEL, 0x5ac4), LPSS_BXT_SSP }, 1323 + { PCI_VDEVICE(INTEL, 0x5ac6), LPSS_BXT_SSP }, 1328 1324 { }, 1329 1325 }; 1330 1326
+1
include/linux/pxa2xx_ssp.h
··· 198 198 LPSS_LPT_SSP, /* Keep LPSS types sorted with lpss_platforms[] */ 199 199 LPSS_BYT_SSP, 200 200 LPSS_SPT_SSP, 201 + LPSS_BXT_SSP, 201 202 }; 202 203 203 204 struct ssp_device {