Hi, I’m developing a touchscreen driver with Hikey.
I added the hi6220.dtsi, followed the example of i2c2, as below:
i2c1: i2c@f7101000 {
compatible = "snps,designware-i2c";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x0 0xf7101000 0x0 0x1000>;
interrupts = <0 45 4>;
clocks = <&clock_sys HI6220_i2c1_CLK>;
clock-names = "clk_i2c1";
i2c-sda-hold-time-ns = <300>;
delay-reg = <0x0 0x0e8 0x0 4>;
reset-controller-reg = <0x320 0x324 0x328 3>;
pinctrl-names = "default";
pinctrl-0 = <&i2c1_pmx_func &i2c1_cfg_func>;
status = "ok";
focaltech_ts@38 {
compatible= "focaltech,focaltech_ts";
reg = <0x38>;
interrupt-parent = <&gpio2>;
interrupts = <2 2>;
};
}
i2c2: i2c@f7102000 {
compatible = "snps,designware-i2c";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x0 0xf7102000 0x0 0x1000>;
interrupts = <0 46 4>;
clocks = <&clock_sys HI6220_i2c2_CLK>;
clock-names = "clk_i2c2";
i2c-sda-hold-time-ns = <300>;
delay-reg = <0x0 0x0f8 0x0 4>;
reset-controller-reg = <0x330 0x334 0x338 3>;
pinctrl-names = "default";
pinctrl-0 = <&i2c2_pmx_func &i2c2_cfg_func>;
status = "ok";
adv7533: adv7533@39 {
compatible = "adi,adv7533";
reg = <0x39>;
interrupt-parent = <&gpio1>;
interrupts = <1 2>;
pd-gpio = <&gpio0 4 0>;
adi,input-depth = <8>;
adi,input-colorspace = "rgb";
adi,input-clock = "1x";
adi,clock-delay = <0>;
adi,embedded-sync;
};
};
as the kernel log showed:
[ 2.813844] i2c_designware f7101000.i2c: could not find pctldev for node /smb/pinmux@f7010000/i2c1_pmx_func, deferring probe
[ 2.813871] i2c_designware f7102000.i2c: could not find pctldev for node /smb/pinmux@f7010000/i2c2_pmx_func, deferring probe
I tried to access the i2c1, but i got a 121(remote i/o error).
[ 6.947623] [FTS] fts_i2c_read_universal. line: 112. i2c read error.
[ 6.954061] FTS, read 0xA8: ret: -121, 00, 00, 00
[ 6.958773] FTS, i2c_client.addr: 38, i2c_client.irq: 80
So can someone help out of this?