From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Tue, 13 Sep 2011 00:45:14 +0200 Subject: [U-Boot] [PATCH 07/15] iMX28: Add SPI driver In-Reply-To: <201109121626.11704.vapier@gentoo.org> References: <1315800409-19876-1-git-send-email-marek.vasut@gmail.com> <201109121942.22834.marek.vasut@gmail.com> <201109121626.11704.vapier@gentoo.org> Message-ID: <201109130045.14994.marek.vasut@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Monday, September 12, 2011 10:26:11 PM Mike Frysinger wrote: > 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 Thanks for clearing this, fixed in V3