RK3288W Android8.1開發日誌(二)

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信號可能有問題。

又是到週末了,先溜~,下週繼續!!!!!!!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章