/* * include/asm-arm/arch-imx/spi_imx.h * * Copyright (C) 2006 SWAPP * Andrea Paterniani * * Initial version inspired by: * linux-2.6.17-rc3-mm1/include/asm-arm/arch-pxa/pxa2xx_spi.h * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef SPI_IMX_H_ #define SPI_IMX_H_ /*-------------------------------------------------------------------------*/ /** * struct spi_imx_master - device.platform_data for SPI controller devices. * @num_chipselect: chipselects are used to distinguish individual * SPI slaves, and are numbered from zero to num_chipselects - 1. * each slave has a chipselect signal, but it's common that not * every chipselect is connected to a slave. * @enable_dma: if true enables DMA driven transfers. */ struct spi_imx_master { u8 num_chipselect; u8 enable_dma:1; }; /*-------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------*/ /** * struct spi_imx_chip - spi_board_info.controller_data for SPI * slave devices, copied to spi_device.controller_data. * @enable_loopback : used for test purpouse to internally connect RX and TX * sections. * @enable_dma : enables dma transfer (provided that controller driver has * dma enabled too). * @ins_ss_pulse : enable /SS pulse insertion between SPI burst. * @bclk_wait : number of bclk waits between each bits_per_word SPI burst. * @cs_control : function pointer to board-specific function to assert/deassert * I/O port to control HW generation of devices chip-select. */ struct spi_imx_chip { u8 enable_loopback:1; u8 enable_dma:1; u8 ins_ss_pulse:1; u16 bclk_wait:15; void (*cs_control)(u32 control); }; /* Chip-select state */ #define SPI_CS_ASSERT (1 << 0) #define SPI_CS_DEASSERT (1 << 1) /*-------------------------------------------------------------------------*/ #endif /* SPI_IMX_H_*/