
12 Sep
2011
12 Sep
'11
10:26 p.m.
On Monday, September 12, 2011 13:42:22 Marek Vasut wrote:
On Monday, September 12, 2011 06:35:10 PM Mike Frysinger wrote:
On Monday, September 12, 2011 00:06:41 Marek Vasut wrote:
+struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
unsigned int max_hz, unsigned int mode)
+{
- mx28_reset_block(&ssp_regs->hw_ssp_ctrl0_reg);
- writel(SSP_CTRL0_BUS_WIDTH_ONE_BIT, &ssp_regs->hw_ssp_ctrl0);
- reg = SSP_CTRL1_SSP_MODE_SPI | SSP_CTRL1_WORD_LENGTH_EIGHT_BITS;
- reg |= (mode & SPI_CPOL) ? SSP_CTRL1_POLARITY : 0;
- reg |= (mode & SPI_CPHA) ? SSP_CTRL1_PHASE : 0;
- writel(reg, &ssp_regs->hw_ssp_ctrl1);
- writel(0, &ssp_regs->hw_ssp_cmd0);
- mx28_set_ssp_busclock(bus, max_hz / 1000);
these steps should be done in the claim_bus func
I don't think so ... I need to access max_hz and mode. This seems more fitting to me.
that's not how the API works. you create clients, then you acquire the bus for a specific client, do a transfer, and then release it. your bus breaks with the trivial case: - setup slave A - setup slave B - claim bus for slave A - transfer with slave A <- uses settings from slave B -mike