Exynos4412 SPI驱动配置
2015-05-15 17:53
323 查看
Exynos4412 SPI配置
Linux内核层就不说了,可以参考资料:
http://www.embedu.org/Column/Column367.htm
要说的时关于4412特别的部分,在4412板级文件mach-**4412.c中,需要配置的相关内容:
1. CS管脚信息结构体:
static struct s3c64xx_spi_csinfo spi0_csi[] = {
[0] = {
.line = EXYNOS4_GPB(1),
.set_level = gpio_set_value,
.fb_delay = 0x2,
},
};
2. 定义板级信息结构体:
static struct spi_board_info spi0_board_info[] __initdata = {
{
.modalias = “spidev”,
.platform_data = NULL,
.max_speed_hz = 10*1000*1000,
.bus_num = 0,
.chip_select = 0,
.mode = SPI_MODE_0,
.controller_data = &spi0_csi[0],
}
};
3. 配置GPIO功能:
if (!gpio_request(EXYNOS4_GPB(1), “SPI_CS0”)) {
gpio_direction_output(EXYNOS4_GPB(1), 1);
s3c_gpio_cfgpin(EXYNOS4_GPB(1), S3C_GPIO_SFN(1));
s3c_gpio_setpull(EXYNOS4_GPB(1), S3C_GPIO_PULL_UP);
exynos_spi_set_info(0, EXYNOS_SPI_SRCCLK_SCLK,
ARRAY_SIZE(spi0_csi));
}
gpio_direction_output(EXYNOS4_GPB(1),1);//配置CS(GPB(1))为输出,才能正确输出波形
void *gpio_base;
unsigned int *cs_cfg;
gpio_base = ioremap(0x1392000c,4);
cs_cfg = (unsigned int *)gpio_base;
*cs_cfg |= 0x10;//配置cs为自动模式,参照4412Datasheet1439页
4. 注册板级信息:
spi_register_board_info(spi0_board_info, ARRAY_SIZE(spi0_board_info));
OK,完成。本次写的不好,但是都是自己看了很多源代码之后的成果,如有疑问,欢迎讨论。guq@microarray.com.cn
Linux内核层就不说了,可以参考资料:
http://www.embedu.org/Column/Column367.htm
要说的时关于4412特别的部分,在4412板级文件mach-**4412.c中,需要配置的相关内容:
1. CS管脚信息结构体:
static struct s3c64xx_spi_csinfo spi0_csi[] = {
[0] = {
.line = EXYNOS4_GPB(1),
.set_level = gpio_set_value,
.fb_delay = 0x2,
},
};
2. 定义板级信息结构体:
static struct spi_board_info spi0_board_info[] __initdata = {
{
.modalias = “spidev”,
.platform_data = NULL,
.max_speed_hz = 10*1000*1000,
.bus_num = 0,
.chip_select = 0,
.mode = SPI_MODE_0,
.controller_data = &spi0_csi[0],
}
};
3. 配置GPIO功能:
if (!gpio_request(EXYNOS4_GPB(1), “SPI_CS0”)) {
gpio_direction_output(EXYNOS4_GPB(1), 1);
s3c_gpio_cfgpin(EXYNOS4_GPB(1), S3C_GPIO_SFN(1));
s3c_gpio_setpull(EXYNOS4_GPB(1), S3C_GPIO_PULL_UP);
exynos_spi_set_info(0, EXYNOS_SPI_SRCCLK_SCLK,
ARRAY_SIZE(spi0_csi));
}
gpio_direction_output(EXYNOS4_GPB(1),1);//配置CS(GPB(1))为输出,才能正确输出波形
void *gpio_base;
unsigned int *cs_cfg;
gpio_base = ioremap(0x1392000c,4);
cs_cfg = (unsigned int *)gpio_base;
*cs_cfg |= 0x10;//配置cs为自动模式,参照4412Datasheet1439页
4. 注册板级信息:
spi_register_board_info(spi0_board_info, ARRAY_SIZE(spi0_board_info));
OK,完成。本次写的不好,但是都是自己看了很多源代码之后的成果,如有疑问,欢迎讨论。guq@microarray.com.cn
相关文章推荐
- 【Cubieboard2】配置编译内核支持SPI全双工通信驱动
- # A31s开发板 SPI驱动配置
- linux自带spi驱动 ,可自己配置CS
- 【巨窝】 stm32c8t6 驱动st7735 LCD SPI显示屏,HAL库,cubeMX配置。
- 【巨窝】stm32c8t6 驱动ssd1306 oled IIC显示屏,HAL库,cubeMX配置。
- [转]uboot中SPI Flash Booting配置
- 有关STC15W系列硬件SPI的配置问题
- tomcat+mysql+jsp关于数据库驱动的配置
- CentOS 5.5 安装配置全攻略 (无线上网 更新源 显卡驱动 firefox3.6 flash插件 编译boost1.43.0 雅黑字体
- window 内核驱动开发环境配置
- Cc26xx系列spi驱动失败的解决办法
- linux spi子系统驱动分析
- linux驱动---用I/O命令访问PCI总线设备配置空间
- mac chrome 驱动配置
- Linux内核中SPI总线驱动分析
- 关于64位 Ubuntu 13.04 安装Android Studio的一些问题及ADB驱动配置
- IBM SPSS Modeler 配置使用 SDAP 驱动
- Linux下的硬件驱动――USB设备(上)(驱动配置部分)
- 一个比较高效的SPI方式SD卡的驱动
- Ubuntu 12.04 SiS(矽统)显卡驱动及配置方法