Submit Search
Upload
SPI Drivers
•
5 likes
•
13,203 views
S
SysPlay eLearning Academy for You
Follow
Serial Peripheral Interface Drivers
Read less
Read more
Technology
Report
Share
Report
Share
1 of 20
Recommended
Linux Porting
Linux Porting
Anil Kumar Pugalia
Spi drivers
Spi drivers
pradeep_tewani
PCI Drivers
PCI Drivers
Anil Kumar Pugalia
Network Drivers
Network Drivers
Anil Kumar Pugalia
I2C Drivers
I2C Drivers
SysPlay eLearning Academy for You
USB Drivers
USB Drivers
Anil Kumar Pugalia
BusyBox for Embedded Linux
BusyBox for Embedded Linux
Emertxe Information Technologies Pvt Ltd
Bootloaders
Bootloaders
Anil Kumar Pugalia
Recommended
Linux Porting
Linux Porting
Anil Kumar Pugalia
Spi drivers
Spi drivers
pradeep_tewani
PCI Drivers
PCI Drivers
Anil Kumar Pugalia
Network Drivers
Network Drivers
Anil Kumar Pugalia
I2C Drivers
I2C Drivers
SysPlay eLearning Academy for You
USB Drivers
USB Drivers
Anil Kumar Pugalia
BusyBox for Embedded Linux
BusyBox for Embedded Linux
Emertxe Information Technologies Pvt Ltd
Bootloaders
Bootloaders
Anil Kumar Pugalia
BeagleBone Black Booting Process
BeagleBone Black Booting Process
SysPlay eLearning Academy for You
Basic Linux Internals
Basic Linux Internals
mukul bhardwaj
Linux DMA Engine
Linux DMA Engine
SysPlay eLearning Academy for You
Linux device drivers
Linux device drivers
Emertxe Information Technologies Pvt Ltd
Linux Ethernet device driver
Linux Ethernet device driver
艾鍗科技
SPI Drivers
SPI Drivers
SysPlay eLearning Academy for You
linux device driver
linux device driver
Rahul Batra
Board Bringup
Board Bringup
Anil Kumar Pugalia
Block Drivers
Block Drivers
Anil Kumar Pugalia
Embedded Linux on ARM
Embedded Linux on ARM
Emertxe Information Technologies Pvt Ltd
U-Boot presentation 2013
U-Boot presentation 2013
Wave Digitech
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime Ripard
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime Ripard
Anne Nicolas
Linux Porting to a Custom Board
Linux Porting to a Custom Board
Patrick Bellasi
Uboot startup sequence
Uboot startup sequence
Houcheng Lin
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
Linaro
Introduction to Modern U-Boot
Introduction to Modern U-Boot
GlobalLogic Ukraine
Video Drivers
Video Drivers
Anil Kumar Pugalia
Linux Initialization Process (1)
Linux Initialization Process (1)
shimosawa
Arm device tree and linux device drivers
Arm device tree and linux device drivers
Houcheng Lin
Platform Drivers
Platform Drivers
SysPlay eLearning Academy for You
Serial Drivers
Serial Drivers
SysPlay eLearning Academy for You
Introduction to Linux Drivers
Introduction to Linux Drivers
Anil Kumar Pugalia
More Related Content
What's hot
BeagleBone Black Booting Process
BeagleBone Black Booting Process
SysPlay eLearning Academy for You
Basic Linux Internals
Basic Linux Internals
mukul bhardwaj
Linux DMA Engine
Linux DMA Engine
SysPlay eLearning Academy for You
Linux device drivers
Linux device drivers
Emertxe Information Technologies Pvt Ltd
Linux Ethernet device driver
Linux Ethernet device driver
艾鍗科技
SPI Drivers
SPI Drivers
SysPlay eLearning Academy for You
linux device driver
linux device driver
Rahul Batra
Board Bringup
Board Bringup
Anil Kumar Pugalia
Block Drivers
Block Drivers
Anil Kumar Pugalia
Embedded Linux on ARM
Embedded Linux on ARM
Emertxe Information Technologies Pvt Ltd
U-Boot presentation 2013
U-Boot presentation 2013
Wave Digitech
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime Ripard
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime Ripard
Anne Nicolas
Linux Porting to a Custom Board
Linux Porting to a Custom Board
Patrick Bellasi
Uboot startup sequence
Uboot startup sequence
Houcheng Lin
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
Linaro
Introduction to Modern U-Boot
Introduction to Modern U-Boot
GlobalLogic Ukraine
Video Drivers
Video Drivers
Anil Kumar Pugalia
Linux Initialization Process (1)
Linux Initialization Process (1)
shimosawa
Arm device tree and linux device drivers
Arm device tree and linux device drivers
Houcheng Lin
Platform Drivers
Platform Drivers
SysPlay eLearning Academy for You
What's hot
(20)
BeagleBone Black Booting Process
BeagleBone Black Booting Process
Basic Linux Internals
Basic Linux Internals
Linux DMA Engine
Linux DMA Engine
Linux device drivers
Linux device drivers
Linux Ethernet device driver
Linux Ethernet device driver
SPI Drivers
SPI Drivers
linux device driver
linux device driver
Board Bringup
Board Bringup
Block Drivers
Block Drivers
Embedded Linux on ARM
Embedded Linux on ARM
U-Boot presentation 2013
U-Boot presentation 2013
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime Ripard
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime Ripard
Linux Porting to a Custom Board
Linux Porting to a Custom Board
Uboot startup sequence
Uboot startup sequence
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
Introduction to Modern U-Boot
Introduction to Modern U-Boot
Video Drivers
Video Drivers
Linux Initialization Process (1)
Linux Initialization Process (1)
Arm device tree and linux device drivers
Arm device tree and linux device drivers
Platform Drivers
Platform Drivers
Viewers also liked
Serial Drivers
Serial Drivers
SysPlay eLearning Academy for You
Introduction to Linux Drivers
Introduction to Linux Drivers
Anil Kumar Pugalia
File System Modules
File System Modules
Anil Kumar Pugalia
Interrupts
Interrupts
Anil Kumar Pugalia
References
References
Anil Kumar Pugalia
gcc and friends
gcc and friends
Anil Kumar Pugalia
Kernel Debugging & Profiling
Kernel Debugging & Profiling
Anil Kumar Pugalia
Embedded C
Embedded C
Anil Kumar Pugalia
Character Drivers
Character Drivers
Anil Kumar Pugalia
Kernel Programming
Kernel Programming
Anil Kumar Pugalia
Low-level Accesses
Low-level Accesses
Anil Kumar Pugalia
Audio Drivers
Audio Drivers
Anil Kumar Pugalia
BeagleBoard-xM Bootloaders
BeagleBoard-xM Bootloaders
SysPlay eLearning Academy for You
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
File Systems
File Systems
Anil Kumar Pugalia
Viewers also liked
(15)
Serial Drivers
Serial Drivers
Introduction to Linux Drivers
Introduction to Linux Drivers
File System Modules
File System Modules
Interrupts
Interrupts
References
References
gcc and friends
gcc and friends
Kernel Debugging & Profiling
Kernel Debugging & Profiling
Embedded C
Embedded C
Character Drivers
Character Drivers
Kernel Programming
Kernel Programming
Low-level Accesses
Low-level Accesses
Audio Drivers
Audio Drivers
BeagleBoard-xM Bootloaders
BeagleBoard-xM Bootloaders
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
File Systems
File Systems
Similar to SPI Drivers
Внутренняя архитектура IOS-XE: средства траблшутинга предачи трафика на ASR1k...
Внутренняя архитектура IOS-XE: средства траблшутинга предачи трафика на ASR1k...
Cisco Russia
Do You Like Coffee with Your dessert? Java and the Raspberry Pi - Simon Ritte...
Do You Like Coffee with Your dessert? Java and the Raspberry Pi - Simon Ritte...
jaxLondonConference
Embedded I/O Management
Embedded I/O Management
Anil Kumar Pugalia
Advanced Topics in IP Multicast Deployment
Advanced Topics in IP Multicast Deployment
Arrive Technologies, Inc.
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...
PROIDEA
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
Особенности архитектуры и траблшутинга маршрутизаторов серии ASR1000
Особенности архитектуры и траблшутинга маршрутизаторов серии ASR1000
Cisco Russia
Ae01 system overview
Ae01 system overview
confidencial
MIPI IP Modules for SoC Prototyping
MIPI IP Modules for SoC Prototyping
Arasan Chip Systems
OpenChain AutomotiveWG(OSS license tools()
OpenChain AutomotiveWG(OSS license tools()
Yuichi Kusakabe
Experiences with Oracle SPARC S7-2 Server
Experiences with Oracle SPARC S7-2 Server
JomaSoft
[Unite Seoul 2019] Mali GPU Architecture and Mobile Studio
[Unite Seoul 2019] Mali GPU Architecture and Mobile Studio
Owen Wu
CCNA 2 Routing and Switching v5.0 Chapter 4
CCNA 2 Routing and Switching v5.0 Chapter 4
Nil Menon
CCNA (R & S) Module 03 - Routing & Switching Essentials - Chapter 1
CCNA (R & S) Module 03 - Routing & Switching Essentials - Chapter 1
Waqas Ahmed Nawaz
Meeting rooms are talking! are you listening?
Meeting rooms are talking! are you listening?
Cisco DevNet
1 familia simatic s7
1 familia simatic s7
Fercho Oe
Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017
Giacomo Vacca
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbers
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbers
Alexandre Moneger
mbed Connect Asia 2016 Developing IoT devices with mbed OS 5
mbed Connect Asia 2016 Developing IoT devices with mbed OS 5
armmbed
Building PoC ready ODM Platforms with Arm SystemReady v5.2.pdf
Building PoC ready ODM Platforms with Arm SystemReady v5.2.pdf
Paul Yang
Similar to SPI Drivers
(20)
Внутренняя архитектура IOS-XE: средства траблшутинга предачи трафика на ASR1k...
Внутренняя архитектура IOS-XE: средства траблшутинга предачи трафика на ASR1k...
Do You Like Coffee with Your dessert? Java and the Raspberry Pi - Simon Ritte...
Do You Like Coffee with Your dessert? Java and the Raspberry Pi - Simon Ritte...
Embedded I/O Management
Embedded I/O Management
Advanced Topics in IP Multicast Deployment
Advanced Topics in IP Multicast Deployment
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
Особенности архитектуры и траблшутинга маршрутизаторов серии ASR1000
Особенности архитектуры и траблшутинга маршрутизаторов серии ASR1000
Ae01 system overview
Ae01 system overview
MIPI IP Modules for SoC Prototyping
MIPI IP Modules for SoC Prototyping
OpenChain AutomotiveWG(OSS license tools()
OpenChain AutomotiveWG(OSS license tools()
Experiences with Oracle SPARC S7-2 Server
Experiences with Oracle SPARC S7-2 Server
[Unite Seoul 2019] Mali GPU Architecture and Mobile Studio
[Unite Seoul 2019] Mali GPU Architecture and Mobile Studio
CCNA 2 Routing and Switching v5.0 Chapter 4
CCNA 2 Routing and Switching v5.0 Chapter 4
CCNA (R & S) Module 03 - Routing & Switching Essentials - Chapter 1
CCNA (R & S) Module 03 - Routing & Switching Essentials - Chapter 1
Meeting rooms are talking! are you listening?
Meeting rooms are talking! are you listening?
1 familia simatic s7
1 familia simatic s7
Homer - Workshop at Kamailio World 2017
Homer - Workshop at Kamailio World 2017
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbers
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbers
mbed Connect Asia 2016 Developing IoT devices with mbed OS 5
mbed Connect Asia 2016 Developing IoT devices with mbed OS 5
Building PoC ready ODM Platforms with Arm SystemReady v5.2.pdf
Building PoC ready ODM Platforms with Arm SystemReady v5.2.pdf
More from SysPlay eLearning Academy for You
Linux Internals Part - 3
Linux Internals Part - 3
SysPlay eLearning Academy for You
Linux Internals Part - 2
Linux Internals Part - 2
SysPlay eLearning Academy for You
Linux Internals Part - 1
Linux Internals Part - 1
SysPlay eLearning Academy for You
Kernel Timing Management
Kernel Timing Management
SysPlay eLearning Academy for You
Understanding the BBB
Understanding the BBB
SysPlay eLearning Academy for You
POSIX Threads
POSIX Threads
SysPlay eLearning Academy for You
Cache Management
Cache Management
SysPlay eLearning Academy for You
Introduction to BeagleBone Black
Introduction to BeagleBone Black
SysPlay eLearning Academy for You
Introduction to BeagleBoard-xM
Introduction to BeagleBoard-xM
SysPlay eLearning Academy for You
BeagleBoard-xM Booting Process
BeagleBoard-xM Booting Process
SysPlay eLearning Academy for You
Linux System
Linux System
SysPlay eLearning Academy for You
More from SysPlay eLearning Academy for You
(11)
Linux Internals Part - 3
Linux Internals Part - 3
Linux Internals Part - 2
Linux Internals Part - 2
Linux Internals Part - 1
Linux Internals Part - 1
Kernel Timing Management
Kernel Timing Management
Understanding the BBB
Understanding the BBB
POSIX Threads
POSIX Threads
Cache Management
Cache Management
Introduction to BeagleBone Black
Introduction to BeagleBone Black
Introduction to BeagleBoard-xM
Introduction to BeagleBoard-xM
BeagleBoard-xM Booting Process
BeagleBoard-xM Booting Process
Linux System
Linux System
Recently uploaded
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
naman860154
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
wesley chun
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Rafal Los
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Delhi Call girls
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
V3cube
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Sinan KOZAK
Slack Application Development 101 Slides
Slack Application Development 101 Slides
praypatel2
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
Allon Mureinik
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Malak Abu Hammad
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Results
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
The Digital Insurer
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Katpro Technologies
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Delhi Call girls
Recently uploaded
(20)
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Slack Application Development 101 Slides
Slack Application Development 101 Slides
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
SPI Drivers
1.
© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Serial Peripheral Interface (SPI) Drivers
2.
2© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. What to Expect? SPI Prologue SPI Framework SPI Framework Components SPI Client Driver
3.
3© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. SPI Prologue Suitable for small slow devices SPI is a 4-wire protocol unlike I2 C Apart from Serial Clock, Data Lines are 2 And an additional Chip Select
4.
4© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. SPI Protocol Memory Memory 0 1 2 3 5 6 7 0 1 2 3 5 6 7 SCLK MISO MOSI CS Master Slave
5.
5© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. SPI Character Driver Framework User Space /dev/spi0 cat, echo my_open() my_read() my_write() Char Driver Low Level SPI Driver spi_rw() test.c, s1.c App open(), read(), write()
6.
6© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. AM335X Registers Module Control Register For configuring the SPI interface Single / Multi channel, Master / Slave, Chip select pins Channel Configuration Register Used to configure the SPI channel (0-3) Clock Divider, FIFO for Rx / TX, Pins for TX / RX, DMA RX / TX, SPI Mode (Full Duplex, Half Duplex), Word Length, SPI Mode Channel Status Register Status information for channel (0–3) RX / TX FIFO Full / Empty Channel Control Register Enabling / Disabling the channel
7.
7© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. AM335X SPI APIs omap2_mcspi_set_enable(struct omap2_mcspi *, int enable) Enable / Disable the channel int mcspi_wait_for_reg_bit(void __iomem *reg, unsigned long bit) Wait for register bit to set
8.
8© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. SPI Framework spi.c – Implements the SPI core layer include/linux/spi/spi.h spidev.c – Provides the char interface for spi devices include/linux/spi/spidev.h spi-omap2-mcspi – Controller driver for omap based chips
9.
9© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. SPI Framework SPI Core driver/spi/spi.c mcp320x.c drivers/iio/adc SPI based ADC driver SPI Client Driver m25p80.c drivers/mtd/ SPI based Flash driver spi-omap2-mcspi.c omap SPI Adapter Driver atmel-spi.c Atmel SPI Adapter Driver spi-imx.c IMX SPI Adapter Driver spidev.c drivers/spi Char driver for SPI Industrial IO Framework rtc-ds1505.c drivers/rtc SPI based RTC driver MTD Framework RTC Framework Char Driver Framework spi-altera.c Altera SPI Adapter Driver
10.
10© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Framework Components SPI Master Bus controller which handles the low level h/w transactions struct spi_master dev – device interface to this driver list – linked with global spi_master list Board specific bus number min_speed_hz max_speed_hz setup – updates the device mode and clock transfer – adds a message to the controller’s transfer queue cleanup – frees up controller specific state transfer_one_message – the subsystem calls the driver spi_register_master(spi_master)
11.
11© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Framework Components ... SPI Device Represents the SPI Slave in the Kernel struct spi_device dev – device interface to this driver master – SPI controller used with the device max_speed_hz – Maximum clock rate to be used with this device mode – Defines how the data is clocked out and in bits_per_word controller_state – Controller’s runtime state controller_data – Board specific definitions for controller such as FIFO modalias – name of the driver to use with this device cs_gpio – gpio signal used for chip select line
12.
12© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. SPI Client Driver Host side protocol driver struct spi_driver probe – Binds the driver to SPI device remove – unbinds the driver from the SPI device id_table – List of SPI devices supported by this driver driver – name of this driver. This will be used to bind with SPI slaves
13.
13© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. SPI Client Driver ... Register probe() & remove() with SPI Core Optionally, register suspend() & resume() Header: <linux/spi/spi.h> API int spi_register_driver(struct spi_driver *); void spi_unregister_driver(struct spi_driver *); module_spi_driver() Device Access APIs spi_sync(struct spi_device *, struct spi_message *); spi_async(struct spi_device *, struct spi_message *);
14.
14© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. SPI Device Access /* struct spi_device *spi – obtained through probe */ struct spi_transfer xfer; struct spi_message sm; u8 *cmd_buf; int len; … /* Ready the cmd_buf & its len */ ... spi_message_init(&sm); xfer.tx_buf = cmd_buf; xfer.len = len; spi_message_add_tail(&xfer, &sm); spi_sync(spi, &sm); /* Blocking transfer request */ spi_transfer_del(&xfer);
15.
15© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. SPI Master Registration Flow
16.
16© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. spi_sync flow
17.
17© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. DTB changes for MCP3008 mcp3x0x@0 { compatible = "mcp3208"; reg = <0>; spi-max-frequency = <1000000>; };
18.
18© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. SPI Driver Example Driver: ADC (drivers/iio/adc/mcp320x.c) Path: <kernel_source>/drivers/spi Browse & Discuss
19.
19© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. What all have we learnt? SPI Prologue SPI Framework SPI Framework Components SPI Client Driver
20.
20© 2010-17 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Any Queries?