'\" t .\" Title: struct spi_board_info .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.79.1 .\" Date: January 2017 .\" Manual: Serial Peripheral Interface (SPI) .\" Source: Kernel Hackers Manual 4.8.15 .\" Language: English .\" .TH "STRUCT SPI_BOARD_INF" "9" "January 2017" "Kernel Hackers Manual 4\&.8\&." "Serial Peripheral Interface (S" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" struct_spi_board_info \- board\-specific template for a SPI device .SH "SYNOPSIS" .sp .nf struct spi_board_info { char modalias[SPI_NAME_SIZE]; const void * platform_data; void * controller_data; int irq; u32 max_speed_hz; u16 bus_num; u16 chip_select; u16 mode; }; .fi .SH "MEMBERS" .PP modalias[SPI_NAME_SIZE] .RS 4 Initializes spi_device\&.modalias; identifies the driver\&. .RE .PP platform_data .RS 4 Initializes spi_device\&.platform_data; the particular data stored there is driver\-specific\&. .RE .PP controller_data .RS 4 Initializes spi_device\&.controller_data; some controllers need hints about hardware setup, e\&.g\&. for DMA\&. .RE .PP irq .RS 4 Initializes spi_device\&.irq; depends on how the board is wired\&. .RE .PP max_speed_hz .RS 4 Initializes spi_device\&.max_speed_hz; based on limits from the chip datasheet and board\-specific signal quality issues\&. .RE .PP bus_num .RS 4 Identifies which spi_master parents the spi_device; unused by \fBspi_new_device\fR, and otherwise depends on board wiring\&. .RE .PP chip_select .RS 4 Initializes spi_device\&.chip_select; depends on how the board is wired\&. .RE .PP mode .RS 4 Initializes spi_device\&.mode; based on the chip datasheet, board wiring (some devices support both 3WIRE and standard modes), and possibly presence of an inverter in the chipselect path\&. .RE .SH "DESCRIPTION" .PP When adding new SPI devices to the device tree, these structures serve as a partial device template\&. They hold information which can\*(Aqt always be determined by drivers\&. Information that \fBprobe\fR can establish (such as the default transfer wordsize) is not included here\&. .PP These structures are used in two places\&. Their primary role is to be stored in tables of board\-specific device descriptors, which are declared early in board initialization and then used (much later) to populate a controller\*(Aqs device tree after the that controller\*(Aqs driver initializes\&. A secondary (and atypical) role is as a parameter to \fBspi_new_device\fR call, which happens after those controller drivers are active in some dynamic board configuration models\&. .SH "COPYRIGHT" .br