Skip to content

Commit c459262

Browse files
Thangaraj-Samynathanbroonie
authored andcommitted
spi: spi-pci1xxxx: Add support for 25MHz Clock frequency in C0
Adds support for 25MHz clock frequency. Support for this frequency is added in C0. Signed-off-by: Thangaraj Samynathan <thangaraj.s@microchip.com> Link: https://patch.msgid.link/20250526104908.404564-1-thangaraj.s@microchip.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent 6b50075 commit c459262

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

drivers/spi/spi-pci1xxxx.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#define SYS_FREQ_DEFAULT (62500000)
2424

2525
#define PCI1XXXX_SPI_MAX_CLOCK_HZ (30000000)
26+
#define PCI1XXXX_SPI_CLK_25MHZ (25000000)
2627
#define PCI1XXXX_SPI_CLK_20MHZ (20000000)
2728
#define PCI1XXXX_SPI_CLK_15MHZ (15000000)
2829
#define PCI1XXXX_SPI_CLK_12MHZ (12000000)
@@ -318,12 +319,14 @@ static void pci1xxxx_spi_set_cs(struct spi_device *spi, bool enable)
318319
writel(regval, par->reg_base + SPI_MST_CTL_REG_OFFSET(p->hw_inst));
319320
}
320321

321-
static u8 pci1xxxx_get_clock_div(u32 hz)
322+
static u8 pci1xxxx_get_clock_div(struct pci1xxxx_spi *par, u32 hz)
322323
{
323324
u8 val = 0;
324325

325326
if (hz >= PCI1XXXX_SPI_MAX_CLOCK_HZ)
326327
val = 2;
328+
else if (par->dev_rev >= 0xC0 && hz >= PCI1XXXX_SPI_CLK_25MHZ)
329+
val = 1;
327330
else if ((hz < PCI1XXXX_SPI_MAX_CLOCK_HZ) && (hz >= PCI1XXXX_SPI_CLK_20MHZ))
328331
val = 3;
329332
else if ((hz < PCI1XXXX_SPI_CLK_20MHZ) && (hz >= PCI1XXXX_SPI_CLK_15MHZ))
@@ -423,7 +426,7 @@ static int pci1xxxx_spi_transfer_with_io(struct spi_controller *spi_ctlr,
423426

424427
p->spi_xfer_in_progress = true;
425428
p->bytes_recvd = 0;
426-
clkdiv = pci1xxxx_get_clock_div(xfer->speed_hz);
429+
clkdiv = pci1xxxx_get_clock_div(par, xfer->speed_hz);
427430
tx_buf = xfer->tx_buf;
428431
rx_buf = xfer->rx_buf;
429432
transfer_len = xfer->len;
@@ -492,7 +495,7 @@ static int pci1xxxx_spi_transfer_with_dma(struct spi_controller *spi_ctlr,
492495
}
493496
p->xfer = xfer;
494497
p->mode = spi->mode;
495-
p->clkdiv = pci1xxxx_get_clock_div(xfer->speed_hz);
498+
p->clkdiv = pci1xxxx_get_clock_div(par, xfer->speed_hz);
496499
p->bytes_recvd = 0;
497500
p->rx_buf = xfer->rx_buf;
498501
regval = readl(par->reg_base + SPI_MST_EVENT_REG_OFFSET(p->hw_inst));

0 commit comments

Comments
 (0)