对I2C 890000 , 进行查看,怎么在dts 中建立i2c :
QRD 手机的dts
=DTS 包含关系==PATH:=kernel/msm-4.14/arch/arm64/boot/dts===
sm8150-qupv3.dtsi:
qupv3_se4_i2c: i2c@890000 {
compatible = "qcom,i2c-geni";
reg = <0x890000 0x4000>;
interrupts = <GIC_SPI 605 0>;
#address-cells = <1>;
#size-cells = <0>;
clock-names = "se-clk", "m-ahb", "s-ahb";
clocks = <&clock_gcc GCC_QUPV3_WRAP0_S4_CLK>,
<&clock_gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
<&clock_gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
dmas = <&gpi_dma0 0 4 3 64 0>,
<&gpi_dma0 1 4 3 64 0>;
dma-names = "tx", "rx";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&qupv3_se4_i2c_active>;
pinctrl-1 = <&qupv3_se4_i2c_sleep>;
qcom,wrapper-core = <&qupv3_0>;
status = "disabled";
};
=============================================
./qcom/sm8150.dtsi:#include "sm8150-qupv3.dtsi"
./qcom/sm8150-qrd.dts:#include "sm8150.dtsi" //最后的板级DTS
sm8150-qupv3.dtsi---包含于---》sm8150.dtsi----包含于----》sm8150-qrd.dtsi--包含于---->sm8150-qrd.dts
sm8150.dtsi:
aliases {
serial0 = &qupv3_se12_2uart;
hsuart0 = &qupv3_se13_4uart;
spi0 = &qupv3_se3_spi;
i2c0 = &qupv3_se4_i2c;
};
=====================================
./qcom/sm8150.dtsi:#include "sm8150-audio.dtsi"
sm8150-audio.dtsi-------包含于---->sm8150.dtsi
sm8150-audio.dtsi:
&qupv3_se4_i2c {
status = "ok";
fsa4480: fsa4480@43 {
compatible = "qcom,fsa4480-i2c";
reg = <0x43>;
pinctrl-names = "default";
pinctrl-0 = <&fsa_usbc_ana_en>;
};
};
========================================
./qcom/sm8150-qrd.dtsi:17:#include "sm8150-sde-display.dtsi"
sm8150-sde-display.dtsi-----包含于----》sm8150-qrd.dtsi----包含于---->sm8150-qrd.dts
sm8150-sde-display.dtsi:
&sde_dp {
qcom,dp-usbpd-detection = <&pm8150b_pdphy>;
qcom,ext-disp = <&ext_disp>;
qcom,dp-aux-switch = <&fsa4480>;
qcom,usbplug-cc-gpio = <&tlmm 38 0>;
pinctrl-names = "mdss_dp_active", "mdss_dp_sleep";
pinctrl-0 = <&sde_dp_usbplug_cc_active>;
pinctrl-1 = <&sde_dp_usbplug_cc_suspend>;
};
PIXEL4 XL 手机的dts
-----------------------pixel手机dts---------------------------------------------
./qcom-base/sm8150-qupv3.dtsi
qupv3_se9_i2c:
qupv3_se9_i2c: i2c@a84000 {
compatible = "qcom,i2c-geni";
reg = <0xa84000 0x4000>;
interrupts = <GIC_SPI 354 0>;
#address-cells = <1>;
#size-cells = <0>;
clock-names = "se-clk", "m-ahb", "s-ahb";
clocks = <&clock_gcc GCC_QUPV3_WRAP1_S1_CLK>,
<&clock_gcc GCC_QUPV3_WRAP_1_M_AHB_CLK>,
<&clock_gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>;
dmas = <&gpi_dma1 0 1 3 64 0>,
<&gpi_dma1 1 1 3 64 0>;
dma-names = "tx", "rx";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&qupv3_se9_i2c_active>;
pinctrl-1 = <&qupv3_se9_i2c_sleep>;
qcom,wrapper-core = <&qupv3_1>;
status = "disabled";
};
./sm8150-floral-camera-pmic.dtsi
&qupv3_se9_i2c {
/* MAX77826 */
status = "ok";
MAX77826: MAX77826@60 {
compatible = "max77826,max77826-regulator";
reg = <0x60>;
status = "ok";
pinctrl-names = "cam_pmic_en";
pinctrl-0 = <&cam_sensor_pmic_active>;
maxim,enable-gpio = <&tlmm 102 0>;
regulators {
max77826_ldo1: max77826_ldo1 {
regulator-name = "max77826_ldo1";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <2187500>;
};
}
-----pixel 手机修改--------------
diff --git a/arch/arm64/boot/dts/google/sm8150-floral-touch.dtsi b/arch/arm64/boot/dts/google/sm8150-floral-touch.dtsi
index 3085749..7f64b9f 100644
--- a/arch/arm64/boot/dts/google/sm8150-floral-touch.dtsi
+++ b/arch/arm64/boot/dts/google/sm8150-floral-touch.dtsi
@@ -34,7 +34,13 @@
};
&qupv3_se4_i2c {
- status = "ok";
+ status = "ok";
+ fsa4480: fsa4480@43 {
+ compatible = "qcom,fsa4480-i2c";
+ reg = <0x43>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&fsa_usbc_ana_en>;
+ };
};