1、犯了一個錯誤,拿到SDK忘記執行源代碼更新指令,5月8號的初始版本有挺多BUG,執行更新.repo/repo/repo sync,更新完之後編譯燒錄,之前的bug全無。
2、接上一篇文章,修改永不休眠,修改代碼alps\frameworks\base\services\core\java\com\android\server\power\PowerManagerService.java
private int getScreenOffTimeoutLocked(int sleepTimeout) {
int timeout = mScreenOffTimeoutSetting;
> //peng@ZY
> if (timeout < 0) {
> return mMaximumScreenOffTimeoutFromDeviceAdmin;
> }
if (isMaximumScreenOffTimeoutFromDeviceAdminEnforcedLocked()) {
timeout = Math.min(timeout, mMaximumScreenOffTimeoutFromDeviceAdmin);
}
if (mUserActivityTimeoutOverrideFromWindowManager >= 0) {
timeout = (int)Math.min(timeout, mUserActivityTimeoutOverrideFromWindowManager);
}
if (sleepTimeout >= 0) {
timeout = Math.min(timeout, sleepTimeout);
}
return Math.max(timeout, mMinimumScreenOffTimeoutConfig);
}
在修改alps\frameworks\packages\SettingsProvider\res\values\defaults.xml
<integer name="def_sleep_timeout">-1</integer>
3、調試以太網 RLT8211E-VB-G-CG
&gmac {
phy-supply = <&vcc_phy>;
phy-mode = "rgmii"; //100/1000M網卡
clock_in_out = "input";
snps,reset-gpio = <&gpio4 8 0>; //根據原理圖修改
snps,reset-active-low;
snps,reset-delays-us = <0 10000 50000>;
assigned-clocks = <&cru SCLK_MAC>;
assigned-clock-parents = <&ext_gmac>;
pinctrl-names = "default";
pinctrl-0 = <&rgmii_pins>;
tx_delay = <0x30>;
rx_delay = <0x10>;
max-speed = <100>;
status = "okay";
};
編譯燒錄,終端查看sys/class/net/有eth0設備,說明芯片工作正常。
執行ping 自己,沒問題,ping局域網的電腦不通,電腦ping板子,ping的通,檢查硬件
板子是無法ping出去,並非外面ping不通板子,檢查MAC_TXCLK腳。
把C2的電容去掉就正常了,同理,如果是外網ping不通板子,那就檢查RX腳。(硬件貼錯導致)
4、調試RT5640音頻模塊
驅動配置好5640模塊
sound: sound {
status = "disabled";
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,name = "rockchip,rt5640-codec";
simple-audio-card,mclk-fs = <512>;
simple-audio-card,widgets =
"Microphone", "Mic Jack",
"Headphone", "Headphone Jack",
"Speaker", "Speaker";
simple-audio-card,routing =
"Mic Jack", "MICBIAS1",
"IN2P", "Mic Jack",
"IN2N", "Mic Jack",
"Headphone Jack", "HPOL",
"Headphone Jack", "HPOR",
"Speaker", "SPOLP",
"Speaker", "SPOLN",
"Speaker", "SPORP",
"Speaker", "SPORN";
simple-audio-card,cpu {
sound-dai = <&i2s>;
};
simple-audio-card,codec {
sound-dai = <&rt5640>;
};
};
spdif_sound: spdif-sound {
status = "okay";
compatible = "simple-audio-card";
simple-audio-card,name = "rockchip,spdif";
simple-audio-card,cpu {
sound-dai = <&spdif>;
};
simple-audio-card,codec {
sound-dai = <&spdif_out>;
};
};
spdif_out: spdif-out {
status = "okay";
compatible = "linux,spdif-dit";
#sound-dai-cells = <0>;
};
&i2c2 { //硬件連接的是I2C2
status = "okay";
clock-frequency = <400000>;
rt5640: rt5640@1c {
#sound-dai-cells = <0>;
compatible = "realtek,rt5640";
reg = <0x1c>;
clocks = <&cru SCLK_I2S0_OUT>;
clock-names = "mclk";
//interrupt-parent = <&gpio6>;
//interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
};
};
根據環境切換通道,要修改hardware\rockchip\audio\tinyalsa_hal\codec_config\rt5640_config.h
5、tc358749x HDMI2MIPI轉換芯片(HDMI IN功能)
&i2c3{
status = "okay";
clock-frequency = <400000>;
tc358749x: tc358749x@0f {
compatible = "toshiba,tc358749x";
reg = <0x0f>;
power-gpios = <&gpio8 9 GPIO_ACTIVE_HIGH>; //根據硬件配置
stanby-gpios = <&gpio8 3 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio8 2 GPIO_ACTIVE_HIGH>;
int-gpios = <&gpio8 0 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&hdmiin_gpios>;
status = "okay";
};
&pinctrl {
hdmiin {
hdmiin_gpios: hdmiin_gpios {
rockchip,pins =
<8 0 RK_FUNC_GPIO &pcfg_pull_none>,
<8 2 RK_FUNC_GPIO &pcfg_pull_none>,
<8 9 RK_FUNC_GPIO &pcfg_pull_none>,
<8 3 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
};
配置hardware\rockchip\camera\Config\cam_board_rk3288.xml
<?xml version="1.0" ?>
<BoardFile>
<BoardXmlVersion version="v0.0xf.0">
</BoardXmlVersion>
<CamDevie>
<HardWareInfo>
<Sensor>
<SensorName name="TC358749XBG" ></SensorName>
<SensorDevID IDname="CAMSYS_DEVID_SENSOR_1B"></SensorDevID>
<SensorHostDevID busnum="CAMSYS_DEVID_MARVIN" ></SensorHostDevID>
<SensorI2cBusNum busnum="3"></SensorI2cBusNum> //I2C通道
<SensorI2cAddrByte byte="2"></SensorI2cAddrByte>
<SensorI2cRate rate="100000"></SensorI2cRate>
<SensorAvdd name="NC" min="0" max="0" delay="0"></SensorAvdd>
<SensorDovdd name="NC" min="0" max="0" delay="0"></SensorDovdd>
<SensorDvdd name="NC" min="0" max="0" delay="0"></SensorDvdd>
<SensorMclk mclk="27000000" delay="0"></SensorMclk>
<SensorGpioPwen ioname="NC" active="1" delay="1000"></SensorGpioPwen>
<SensorGpioRst ioname="NC" active="0" delay="1000"></SensorGpioRst>
<SensorGpioPwdn ioname="NC" active="0" delay="1000"></SensorGpioPwdn>
<SensorFacing facing="back"></SensorFacing>
<SensorInterface interface="MIPI"></SensorInterface>
<SensorMirrorFlip mirror="0"></SensorMirrorFlip>
<SensorOrientation orientation="0"></SensorOrientation>
<SensorPowerupSequence seq="1234"></SensorPowerupSequence>
<SensorFovParemeter h="60.0" v="60.0"></SensorFovParemeter>
<SensorAWB_Frame_Skip fps="0"></SensorAWB_Frame_Skip>
<SensorPhy phyMode="CamSys_Phy_Mipi" lane="4" phyIndex="1" sensorFmt="CamSys_Fmt_Yuv422_8b"></SensorPhy>/
</Sensor>
………………………………
phyIndex 根據硬件連接方式填寫,如果是連接MIPI TX/RX 選擇1,如果是MIPI TX選擇0。
編譯燒錄,發現很多這種CamerIcIspIrq: pic err first,g_ispFrameNum == 1
測量發現MIPI信號時有時無,問了redmine說是mipi信號可能有問題。
又是到週末了,先溜~,下週繼續!!!!!!!!!