高通SDM450平台配置SPI0接口

news/2024/11/16 4:24:32/

一、查看原理图,需要将GPIO_0、GPIO_1、GPIO_2、GPIO_3配置成SPI接口

 

二、查看安SDM450平台的数据手册,文档号:80-PC173-1,查看相关的手册可知,GPIO_0、GPIO_1、GPIO_2、GPIO_3可以复用成SPI1,

三、查看高通的文档号:80-NU767-1,SDM450使用的是MSM8953,设备树相关的地址要按照如下的方式配置和使用

四、DTS的设置,相关的地址配置是根据三的地址设置的:

diff --git a/arch/arm64/boot/dts/qcom/msm8953-pinctrl.dtsi b/arch/arm64/boot/dts/qcom/msm8953-pinctrl.dtsi
index 070c558..aa6b0e2 100644
--- a/arch/arm64/boot/dts/qcom/msm8953-pinctrl.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8953-pinctrl.dtsi
@@ -1227,6 +1227,68 @@};};+               spi1 {
+                       spi1_default: spi1_default {
+                               /* active state */
+                               mux {
+                                       /* MOSI, MISO, CLK */
+                                       pins = "gpio0", "gpio1", "gpio3";
+                                       function = "blsp_spi1";
+                               };
+
+                               config {
+                                       pins = "gpio0", "gpio1", "gpio3";
+                                       drive-strength = <12>; /* 12 MA */
+                                       bias-disable = <0>; /* No PULL */
+                               };
+                       };
+
+                       spi1_sleep: spi1_sleep {
+                               /* suspended state */
+                               mux {
+                                       /* MOSI, MISO, CLK */
+                                       pins = "gpio0", "gpio1", "gpio3";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio0", "gpio1", "gpio3";
+                                       drive-strength = <2>; /* 2 MA */
+                                       bias-pull-down; /* PULL Down */
+                               };
+                       };
+
+                       spi1_cs0_active: cs0_active {
+                               /* CS */
+                               mux {
+                                       pins = "gpio2";
+                                       function = "blsp_spi1";
+                               };
+
+                               config {
+                                       pins = "gpio2";
+                                       drive-strength = <2>;
+                                       bias-disable = <0>;
+                               };
+                       };
+
+                       spi1_cs0_sleep: cs0_sleep {
+                               /* CS */
+                               mux {
+                                       pins = "gpio2";
+                                       function = "gpio";
+                               };
+
+                               config {
+                                       pins = "gpio2";
+                                       drive-strength = <2>;
+                                       bias-disable = <0>;
+                               };
+                       };
+               };
+
+
+spi3 {spi3_default: spi3_default {/* active state */
diff --git a/arch/arm64/boot/dts/qcom/msm8953.dtsi b/arch/arm64/boot/dts/qcom/msm8953.dtsi
index ab85d27..535ec9e 100644
--- a/arch/arm64/boot/dts/qcom/msm8953.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8953.dtsi
@@ -194,6 +194,7 @@i2c2 = &i2c_2;i2c3 = &i2c_3;i2c5 = &i2c_5;
+               spi1 = &spi_1;spi3 = &spi_3;};@@ -644,6 +645,34 @@qcom,summing-threshold = <10>;};+       spi_1: spi@78b5000 { /* BLSP1 QUP3 */
+               compatible =  "qcom,spi-qup-v2";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg-names = "spi_physical", "spi_bam_physical";
+               reg = <0x78b5000 0x600>,
+                       <0x7884000 0x1f000>;
+               interrupt-names = "spi_irq", "spi_bam_irq";
+               interrupts = <0 95 0>, <0 238 0>;
+               spi-max-frequency = <50000000>;
+               pinctrl-names = "spi_default", "spi_sleep";
+               pinctrl-0 = <&spi1_default &spi1_cs0_active>;
+               pinctrl-1 = <&spi1_sleep &spi1_cs0_sleep>;
+               clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>,
+                       <&clock_gcc clk_gcc_blsp1_qup1_spi_apps_clk>;
+               clock-names = "iface_clk", "core_clk";
+               qcom,infinite-mode = <0>;
+               qcom,use-bam;
+               qcom,use-pinctrl;
+               qcom,ver-reg-exists;
+               qcom,bam-consumer-pipe-index = <4>;
+               qcom,bam-producer-pipe-index = <5>;
+               qcom,master-id = <86>;
+               status = "disabled";
+       };
+
+
+spi_3: spi@78b7000 { /* BLSP1 QUP3 */compatible = "qcom,spi-qup-v2";#address-cells = <1>;
diff --git a/arch/arm64/boot/dts/qcom/sdm450-qrd-sku4.dtsi b/arch/arm64/boot/dts/qcom/sdm450-qrd-sku4.dtsi
index 57b54a7..536e4da 100644
--- a/arch/arm64/boot/dts/qcom/sdm450-qrd-sku4.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm450-qrd-sku4.dtsi
@@ -247,6 +247,18 @@};*/+&spi_1{
+        status = "ok";
+        spi_ir@1 {
+                compatible = "qcom,spi-msm-codec-slave";
+                reg = <1>;
+                spi-max-frequency = <50000000>;
+                spi-cpol;
+                status = "ok";
+        };
+};
+
+/*WT-fangzhihua.TP.Function, 20198/07/14, add for  noflash*/&spi_3 {/* Novatek device tree node */

五、如果一配置完相关的gpio,烧录boot.img之后系统进入900E模式,是由于在TZ限制了访问权限导致的,到相关的目录修改GPIO的访问权限从cp侧调整到ap侧

 


http://www.ppmy.cn/news/724916.html

相关文章

高通SDM450平台的LDO 输出与电压调节

开始之前,首先我们要知道什么是LDO?有什么作用?LDO调试需要调哪些? 什么是LDO,有什么作用? LDO为 低压线性稳压器,高通平台有多路LDO电压输出,以SDM450 为例 共有 LDO1~LDO23 23路。用于给外设提供电源。 LDO需要调什么? LDO的调试主要 有 打开和关闭 LDO电压 和 …

GO中file文件操作

一、File文件操作 首先&#xff0c;file类是在os包中的&#xff0c;封装了底层的文件描述符和相关信息&#xff0c;同时封装了Read和Write的实现。 1、FileInfo接口 FileInfo接口中定义了File信息相关的方法。 type FileInfo interface {Name() string // base name …

C#(四十六)之基于流的文件操作(FileStream)

FileStream类属性和方法 属性 CanRead 指示当前文件流是否支持读取 CanWrite 指示当前文件流是否支持写入 CanSeek 指示当前文件流是否支持查找 IsAsync FileStream是同步打开还是异步打开 Length 流的长度&#xff08;字节数&#xff09; CanTimeOut 当前文件流是否可以…

【github】Github内置Visual Studio Code

打开内置VScode 1s.dev https://github1s.dev 对比 原始 https://github.com/vuejs/vue 内置Vscode https://github1s.dev/vuejs/vue

【RPC】—Protobuf入门

Protobuf入门 ⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ Spring专栏&#x1f449;https://blog.csdn.net/weixin_53580595/category_12279588.html SpringMVC专栏&a…

二叉树刷题总结

题单&#xff1a; 一&#xff0c;相同的树 题目&#xff1a; 给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 题目接口&#xff1a; /*** Defin…

Linux——进程信号(上)

目录 前文 一&#xff0c;什么是进程信号 二&#xff0c;信号的产生 2.1 通过按键终端产生信号 2.2 调用系统函数向进程发信号 2.3 由软条件产生信号 2.4 硬件异常产生信号 总结 前文 上文主要讲了一下进程间用管道通信的相关知识&#xff0c;本文主要带领大家深度认识一…

手机号码归属地及运营商查询

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL;public class NewMobile {public stati…