Enviar pesquisa
Carregar
SPI Drivers
•
5 gostaram
•
13,206 visualizações
S
SysPlay eLearning Academy for You
Seguir
Serial Peripheral Interface Drivers
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 20
Recomendados
Bootloaders
Bootloaders
Anil Kumar Pugalia
U Boot or Universal Bootloader
U Boot or Universal Bootloader
Satpal Parmar
USB Drivers
USB Drivers
Anil Kumar Pugalia
Uboot startup sequence
Uboot startup sequence
Houcheng Lin
Board Bringup
Board Bringup
Anil Kumar Pugalia
Spi drivers
Spi drivers
pradeep_tewani
Yocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution Maker
Sherif Mousa
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
RuggedBoardGroup
Recomendados
Bootloaders
Bootloaders
Anil Kumar Pugalia
U Boot or Universal Bootloader
U Boot or Universal Bootloader
Satpal Parmar
USB Drivers
USB Drivers
Anil Kumar Pugalia
Uboot startup sequence
Uboot startup sequence
Houcheng Lin
Board Bringup
Board Bringup
Anil Kumar Pugalia
Spi drivers
Spi drivers
pradeep_tewani
Yocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution Maker
Sherif Mousa
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
RuggedBoardGroup
Bootloaders (U-Boot)
Bootloaders (U-Boot)
Omkar Rane
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
U-Boot presentation 2013
U-Boot presentation 2013
Wave Digitech
Introduction to Linux Drivers
Introduction to Linux Drivers
Anil Kumar Pugalia
U boot porting guide for SoC
U boot porting guide for SoC
Macpaul Lin
linux device driver
linux device driver
Rahul Batra
Linux Device Tree
Linux Device Tree
艾鍗科技
Linux Porting
Linux Porting
Anil Kumar Pugalia
BeagleBone Black Booting Process
BeagleBone Black Booting Process
SysPlay eLearning Academy for You
Embedded_Linux_Booting
Embedded_Linux_Booting
Rashila Rr
Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)
Thomas Petazzoni
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
linuxlab_conf
U-Boot - An universal bootloader
U-Boot - An universal bootloader
Emertxe Information Technologies Pvt Ltd
Platform Drivers
Platform Drivers
SysPlay eLearning Academy for You
Basic Linux Internals
Basic Linux Internals
mukul bhardwaj
Embedded linux network device driver development
Embedded linux network device driver development
Amr Ali (ISTQB CTAL Full, CSM, ITIL Foundation)
Network Drivers
Network Drivers
Anil Kumar Pugalia
A practical guide to buildroot
A practical guide to buildroot
Emertxe Information Technologies Pvt Ltd
Arm device tree and linux device drivers
Arm device tree and linux device drivers
Houcheng Lin
Linux Kernel Overview
Linux Kernel Overview
Anil Kumar Pugalia
Serial Drivers
Serial Drivers
SysPlay eLearning Academy for You
I2C Drivers
I2C Drivers
SysPlay eLearning Academy for You
Mais conteúdo relacionado
Mais procurados
Bootloaders (U-Boot)
Bootloaders (U-Boot)
Omkar Rane
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
U-Boot presentation 2013
U-Boot presentation 2013
Wave Digitech
Introduction to Linux Drivers
Introduction to Linux Drivers
Anil Kumar Pugalia
U boot porting guide for SoC
U boot porting guide for SoC
Macpaul Lin
linux device driver
linux device driver
Rahul Batra
Linux Device Tree
Linux Device Tree
艾鍗科技
Linux Porting
Linux Porting
Anil Kumar Pugalia
BeagleBone Black Booting Process
BeagleBone Black Booting Process
SysPlay eLearning Academy for You
Embedded_Linux_Booting
Embedded_Linux_Booting
Rashila Rr
Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)
Thomas Petazzoni
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
linuxlab_conf
U-Boot - An universal bootloader
U-Boot - An universal bootloader
Emertxe Information Technologies Pvt Ltd
Platform Drivers
Platform Drivers
SysPlay eLearning Academy for You
Basic Linux Internals
Basic Linux Internals
mukul bhardwaj
Embedded linux network device driver development
Embedded linux network device driver development
Amr Ali (ISTQB CTAL Full, CSM, ITIL Foundation)
Network Drivers
Network Drivers
Anil Kumar Pugalia
A practical guide to buildroot
A practical guide to buildroot
Emertxe Information Technologies Pvt Ltd
Arm device tree and linux device drivers
Arm device tree and linux device drivers
Houcheng Lin
Linux Kernel Overview
Linux Kernel Overview
Anil Kumar Pugalia
Mais procurados
(20)
Bootloaders (U-Boot)
Bootloaders (U-Boot)
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
U-Boot presentation 2013
U-Boot presentation 2013
Introduction to Linux Drivers
Introduction to Linux Drivers
U boot porting guide for SoC
U boot porting guide for SoC
linux device driver
linux device driver
Linux Device Tree
Linux Device Tree
Linux Porting
Linux Porting
BeagleBone Black Booting Process
BeagleBone Black Booting Process
Embedded_Linux_Booting
Embedded_Linux_Booting
Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
U-Boot - An universal bootloader
U-Boot - An universal bootloader
Platform Drivers
Platform Drivers
Basic Linux Internals
Basic Linux Internals
Embedded linux network device driver development
Embedded linux network device driver development
Network Drivers
Network Drivers
A practical guide to buildroot
A practical guide to buildroot
Arm device tree and linux device drivers
Arm device tree and linux device drivers
Linux Kernel Overview
Linux Kernel Overview
Destaque
Serial Drivers
Serial Drivers
SysPlay eLearning Academy for You
I2C Drivers
I2C Drivers
SysPlay eLearning Academy for You
Block Drivers
Block Drivers
Anil Kumar Pugalia
File System Modules
File System Modules
Anil Kumar Pugalia
PCI Drivers
PCI Drivers
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
Video Drivers
Video Drivers
Anil Kumar Pugalia
Audio Drivers
Audio Drivers
Anil Kumar Pugalia
BeagleBoard-xM Bootloaders
BeagleBoard-xM Bootloaders
SysPlay eLearning Academy for You
File Systems
File Systems
Anil Kumar Pugalia
Destaque
(17)
Serial Drivers
Serial Drivers
I2C Drivers
I2C Drivers
Block Drivers
Block Drivers
File System Modules
File System Modules
PCI Drivers
PCI Drivers
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
Video Drivers
Video Drivers
Audio Drivers
Audio Drivers
BeagleBoard-xM Bootloaders
BeagleBoard-xM Bootloaders
File Systems
File Systems
Semelhante a SPI Drivers
SPI Drivers
SPI Drivers
SysPlay eLearning Academy for You
Внутренняя архитектура 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
Semelhante a SPI Drivers
(20)
SPI Drivers
SPI Drivers
Внутренняя архитектура 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
Mais de 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
Linux DMA Engine
Linux DMA Engine
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
Mais de SysPlay eLearning Academy for You
(12)
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
Linux DMA Engine
Linux DMA Engine
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
Último
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Andrey Devyatkin
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
MIND CTI
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
MadyBayot
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
Overkill Security
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
apidays
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Khem
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
Zilliz
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
The Digital Insurer
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
Igalia
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
apidays
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
DianaGray10
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
Dropbox
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
apidays
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
jfdjdjcjdnsjd
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
sudhanshuwaghmare1
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
Khushali Kathiriya
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc
Último
(20)
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
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?