예제 #1
0
static int ar71xx_spi_setup(struct spi_device *spi)
{
	if (spi->bits_per_word > 32)
		return -EINVAL;

	return spi_bitbang_setup(spi);
}
static int spi_stmpio_setup(struct spi_device *spi)
{
	struct spi_stm_gpio *spi_st = spi_master_get_devdata(spi->master);

	dgb_print("\n");

	if (spi->max_speed_hz > spi_st->max_speed_hz) {
		printk(KERN_ERR NAME " requested baud rate (%dhz) exceeds "
		       "max (%dhz)\n",
		       spi->max_speed_hz, spi_st->max_speed_hz);
		return -EINVAL;
	}

	return spi_bitbang_setup(spi);
}
예제 #3
0
파일: spi-ath79.c 프로젝트: ManCheol/kernel
static int ath79_spi_setup(struct spi_device *spi)
{
	int status = 0;

	if (!spi->controller_state) {
		status = ath79_spi_setup_cs(spi);
		if (status)
			return status;
	}

	status = spi_bitbang_setup(spi);
	if (status && !spi->controller_state)
		ath79_spi_cleanup_cs(spi);

	return status;
}
예제 #4
0
static int ar71xx_spi_setup(struct spi_device *spi)
{
	int status;

	if (spi->bits_per_word > 32)
		return -EINVAL;

	if (!spi->controller_state)
		ar71xx_spi_setup_regs(spi);

	status = spi_bitbang_setup(spi);
	if (status && !spi->controller_state)
		ar71xx_spi_restore_regs(spi);

	return status;
}