mini2440 spi主控制器支援

2021-06-23 03:51:53 字數 2400 閱讀 3813

核心版本:linux-2.6.32.2        實驗平台:mini2440

1. 新增平台裝置支援

s3c2440有兩個spi主控制器,這裡只以spi0為例,平台裝置定義如下(plat-s3c24xx/devs.c):

/* spi (0) */

static struct resource s3c_spi0_resource = ,

[1] =

};static u64 s3c_device_spi0_dmamask = 0xfffffffful;

struct platform_device s3c_device_spi0 =

};export_symbol(s3c_device_spi0);

那麼在註冊這個平台裝置之前,需要為平台裝置定義好一組資料,定義如下(mach-s3c2440/mach-mini2440.c):

static struct s3c2410_spi_info mini2440_spi0_platdata = ;
結構struct s3c2410_spi_info定義在檔案mach-s3c2410/include/mach/spi.h中,定義如下:
struct s3c2410_spi_info ;
pin_cs:從裝置片選訊號線,由主控制器決定從裝置是否可用,從而使得乙個spi主控制器對應多個從裝置成為可能,但是不清楚為什麼定義在該結構中,而且只有乙個。

num_cs:片選訊號線數量。

bus_num:spi控制器匯流排號。

gpio_setup:配置gpio口的函式指標。

set_cs:用於使能片選的函式指標。

再來看mini2440中對spi0的定義。

pin_cs:使用的gpg2引腳。

num_cs:片選訊號線數量為1。

bus_num:使用的是匯流排spi0。

gpio_setup,使用的函式是s3c24xx_spi_gpiocfg_bus0_gpe11_12_13,函式如下(plat-s3c24xx/spi-bus0-gpe11_12_13.c):

void s3c24xx_spi_gpiocfg_bus0_gpe11_12_13(struct s3c2410_spi_info *spi,

int enable)

else

}

因為gpe11、gpe12和gpe13是多功能引腳,即可作為普通gpio口來使用,也可作為spi控制來使用,所以需要對其做配置。這裡在使能配置時,首先將gpio口配置成spi控制器,然後取消gpe11和gpe13的上拉。

set_cs未被設定。

將這組平台裝置資料賦值給平台裝置:

s3c_device_spi0.dev.platform_data = &mini2440_spi0_platdata;
將s3c_device_spi0這個平台裝置新增到mini2440_devices這個陣列中,以便完成平台裝置的註冊:
static struct platform_device *mini2440_devices __initdata = ;
最後別忘了需要包含標頭檔案

2. 核心配置

在配置之前,需要先修改plat-s3c24xx/kconfig,patch如下:

diff --git a/arch/arm/plat-s3c24xx/kconfig b/arch/arm/plat-s3c24xx/kconfig

index 9c7aca4..b877cd9 100644

--- a/arch/arm/plat-s3c24xx/kconfig

+++ b/arch/arm/plat-s3c24xx/kconfig

@@ -129,7 +129,7 @@ config s3c24xx_adc

# spi default pin configuration code

config s3c24xx_spi_bus0_gpe11_gpe12_gpe13

- bool

+ bool "spi0 pin configuration"

help

spi gpio configuration code for bus0 when connected to

gpe11, gpe12 and gpe13.

然後配置核心:

system type  --->

[*] spi0 pin configuration

device drivers  --->

[*] spi support  --->

<*>   samsung s3c24xx series spi

S3C2440的SPI控制器

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!s3c2440包含有兩個序列外圍裝置介面 spi口 每個spi口都有兩個分別用於傳送和接收的8位移位暫存器,在一次spi通訊當中資料被同步傳送 序列移出 和接收 序列移入 8位序列資料的速率由相關的控制暫存器的內容決定。如果只想傳送,接收到的是一些...

模擬舵機學習(c8t6主控制器)

prescler hclk 在時鐘配置頁面有 1 mhz counter period 預分頻值,計算方式在最下面 核心 1 hal tim base start it htim14 開啟定時器14中斷 2 hal tim pwm start htim14,tim channel 1 開啟14中斷的...

S3C2440 LCD控制器描述

arm嵌入式 2010 06 04 11 35 19 閱讀81 字型大小 大 中小訂閱 系統結構框圖 lcd控制器系統框圖 資料流描述如下 fifo儲存器位於lcdcdma。當fifo空或部分空時,lcdcdma要求從基於突發傳輸模式的幀儲存器中取來資料,存入要顯示的影象資料,而這個幀儲存器是lcd...