X-026-KERNEL-Linux gpio driver的移植之gpio range

作者:wowo 发布于:2017-9-27 22:27 分类:X Project

我们在[1][2]中提到过,鉴于gpio的特殊性,pinctrl subsystem特意留了一个后门(gpio range),gpio driver可以通过这个后门直接向pinctrl subsystem申请将某个pin用作gpio功能。本文将根据一个简单的示例,介绍这个后门的使用方法,以加深对相关机制的理解。

注1:本文的测试方法和[3]中的一致,即:通过gpiolib sysfs api控制LED0(GPIOA19)的亮灭,因而不再罗列详细步骤。

阅读全文>>

标签: driver GPIO porting pinctrl range

评论(0) 浏览(387)

X-025-KERNEL-Linux gpio driver的移植之基本功能

作者:wowo 发布于:2017-9-13 22:18 分类:X Project

本文将基于本站GPIO subsystem[1]相关的文章,结合”X Project”的开发过程,实现一个简单的gpio driver,并利用gpiolib提供的sysfs api进行简单的测试,进而加深对gpio相关概念的理解。

注1:本文后续的描述,kernel基于本站“X Project”所使用的kernel版本,硬件基于 ”X Project”所使用的“Bubbugum-96”平台[2]

阅读全文>>

标签: sysfs driver GPIO porting gpiolib

评论(2) 浏览(613)

X-023-KERNEL-Linux pinctrl driver的移植

作者:wowo 发布于:2017-7-14 21:58 分类:X Project

本文是“linux内核中的GPIO系统之(4):pinctrl驱动的理解和总结”的一个实例,结合”X Project”的开发过程,介绍pinctrl driver的移植步骤,进而加深对pinctrl framework的理解。

注1:本文后续的描述,kernel基于本站“X Project”所使用的kernel版本[4],硬件基于 ”X Project”所使用的“Bubbugum-96”平台。

阅读全文>>

标签: Linux Kernel driver porting pinctrl

评论(0) 浏览(681)

linux内核中的GPIO系统之(4):pinctrl驱动的理解和总结

作者:wowo 发布于:2017-6-27 22:30 分类:GPIO子系统

本站之前的三篇文章[1][2][3]介绍了pin controller(对应的pin controller subsystem)、gpio controller(对应的GPIO subsystem)有关的基本概念,包括pin multiplexing、pin configuration等等。本文将基于这些文章,单纯地从pin controller driver的角度(屏蔽掉pinctrl core的实现细节),理解pinctrl subsystem的设计思想,并掌握pinctrl驱动的移植和实现方法。

阅读全文>>

标签: Linux driver GPIO subsystem pinctrl

评论(4) 浏览(2187)

Linux DMA Engine framework(3)_dma controller驱动

作者:wowo 发布于:2017-5-18 21:56 分类:Linux内核分析

本文将从provider的角度,介绍怎样在linux kernel dmaengine的框架下,编写dma controller驱动。

阅读全文>>

标签: driver controller framework dma engine

评论(3) 浏览(1519)

Linux MMC framework(2)_host controller driver

作者:wowo 发布于:2017-3-8 21:33 分类:通信类协议

本文是Linux MMC framework的第二篇,将从驱动工程师的角度,介绍MMC host controller driver有关的知识,学习并掌握如何在MMC framework的框架下,编写MMC控制器的驱动程序。同时,通过本篇文章,我们会进一步的理解MMC、SD、SDIO等有关的基础知识。

阅读全文>>

标签: Linux Kernel 内核 driver mmc host

评论(5) 浏览(2037)

Linux serial framework(1)_概述

作者:wowo 发布于:2016-12-12 22:04 分类:通信类协议

串口设备(serial or uart,后面不再区分)是TTY设备的一种,Linux kernel为了方便串口驱动的开发,在TTY framework的基础上,封装了一层串口框架(serial framework)。该框架尽可能的屏蔽了TTY有关的技术细节(比较难懂),驱动工程师在编写串口驱动的时候,只需要把精力放在串口以及串口控制器本身即可。

本文将通过对serial framework的简单分析,理解上面的概念,并掌握基于该框架编写串口驱动的方法和步骤。

阅读全文>>

标签: Linux driver framework serial 框架 串口

评论(9) 浏览(2010)

X-019-KERNEL-串口驱动开发之数据收发

作者:wowo 发布于:2016-11-29 21:55 分类:X Project

本文是“X Project”串口驱动开发的第四篇,在第二篇“uart driver框架[1]”的基础上,实现基本的、可收发数据的uart驱动,并借助这个过程,学习如下知识:

中断的申请和使用;

利用中断发送和接收数据;

uart_ops中常用函数(.startup, .start_tx, etc.)的使用。

阅读全文>>

标签: Linux driver irq serial tx rx transmit

评论(6) 浏览(1327)

X-018-KERNEL-串口驱动开发之serial console

作者:wowo 发布于:2016-11-18 22:25 分类:X Project

本文是“X Project”串口驱动开发的第三篇,在第二篇“uart driver框架[1]”的基础上,实现console驱动,并借助这个过程,理解如下知识:

1)从DTS regs字段中获取设备的I/O基址,并map出来供driver访问。这是device tree最基本的使用场景。

2)从DTS aliases中获取串口的索引号。这是device tree aliases功能的一个应用场景。

3)uart port—>line和console—>index之间的关系。

阅读全文>>

标签: Linux driver serial console aliases

评论(0) 浏览(1180)

X-017-KERNEL-串口驱动开发之uart driver框架

作者:wowo 发布于:2016-11-16 22:09 分类:X Project

本文是“X Project”串口驱动开发的第二篇,将以“bubblegum-96”开发板为例,介绍在linux serial framework的框架下,编写串口driver以及console driver的方法和步骤(暂不涉及实现细节)。

注1:有关串口、TTY、console等概念,可参考本站“TTY子系统[1]”的文章。Linux serial framework的分析,会在后续的文档中补充(这里故意颠倒,以便让大家理解kernel framework的妙处)。

阅读全文>>

标签: Linux Kernel driver framework serial console uart_driver

评论(2) 浏览(1618)

Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog