




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、T-Shark 客戶配置文檔2014-09-08Tonny.chen . 211/09/11MCP/eMCP配置客制化驅(qū)動配置Keypad配置I2c配置LCD配置TP配置Camera配置L&P-Sensor配置性能排查性能排查apkapk檢測檢測MCP/eMCP配置如何確認是NAND工程還是eMMC工程?1. 在u-boot/include/configs/ sp7731gea.h和chipram/include/configs/ sp7731gea.h#ifndef CONFIG_EMMC_BOOTNAND#ifdef CONFIG_EMMC_BOOTEMMC2. 在客置化配置的時候
2、就需要重點關(guān)注NAND/EMMC相關(guān)的宏定義,這些宏定義會控具體其他配置參加編譯。 . 3NAND/eMMC配置 . 4eMCP如何修改配置以配置成16Gb+2Gb為例說明1. chipram/include/configs/sp7731gea.h (1). DDR類型配置 /-these three macro below,only one can be open /#define DDR_LPDDR1 #define DDR_LPDDR2 /#define DDR_DDR3 (2). #define DDR_TYPE DRAM_LPDDR2_1CS_4G_X32 - #define DDR
3、_TYPE DRAM_LPDDR2_1CS_2G_X32 . 5eMCP如何修改配置2. u-boot/include/configs/sp7731gea.h(1). 定義內(nèi)存大小#define CONFIG_RAM512M - #define CONFIG_RAM256M (2). #ifdef CONFIG_RAM512M#define MEM_INIT_PARA mem=512M#elif defined(CONFIG_RAM256M)#define MEM_INIT_PARA mem=256M“ .#endif#define CONFIG_BOOTARGS MEM_INIT_PARA
4、loglevel=1 console=ttyS1,115200n8 init=/init MTDPARTS_DEFAULT . 6eMCP如何修改配置(3). #define SPRD_SYSDUMP_MAGIC (PHYS_OFFSET_ADDR & (SZ_512M - 1) + SZ_512M - SZ_1M) - #define SPRD_SYSDUMP_MAGIC (PHYS_OFFSET_ADDR & (SZ_256M - 1) + SZ_256M - SZ_1M) . 7eMCP如何修改配置3. 在kernel/arch/arm/mash-sc/include/m
5、ach/board.h修改,在下面#if中增加宏定義 使其走256M的定義:#if defined(CONFIG_MACH_SP7731GEA_LC) | defined(CONFIG_MACH_SP7731GGA_LC) | defined(CONFIG_MACH_SP7730GGA_LC)/* Nand 4+2 */#define SPRD_ION_MEM_BASE (CONFIG_PHYS_OFFSET & (SZ_256M - 1) + SZ_256M - SPRD_ION_MEM_SIZE)#else#define SPRD_ION_MEM_BASE (CONFIG_PHYS
6、_OFFSET & (SZ_512M - 1) + SZ_512M - SPRD_ION_MEM_SIZE)#endif . 8eMCP如何修改配置4. 在device/sprd/ scx35_sp7731gea/p修改,ro.board_ram_size=mid - ro.board_ram_size=low . 9eMCP如何修改配置5. emmc 大小調(diào)整 (1). emmc大小變化不需關(guān)心, 由硬件emmc自動計算出來,如emmc大小減到16G bit,一般影響的就是userdata分區(qū), 即data分區(qū)減少,分區(qū)表物理分區(qū)是自適應(yīng)的,編譯鏡像需要縮??; (
7、2). 在device/sprd/scx35_sp7731gea/BoardConfig.mk修改定義USERDATA鏡像大小 BOARD_USERDATAIMAGE_PARTITION_SIZE 的值減去 2,000,000,000(比如原來是4GB,現(xiàn)在是2GB,因為EMMC容量少了將近2GB,全部要從data分區(qū)裁掉) . 10Memory驗證處理流程1. 先確認該flash我們平臺是否已驗證過?2. 驗證認證過,出patch;3. 未驗證,提供物料申請驗證后出patch。 . 11Memory 驗證patch . 12Memory 驗證patch . 13Shark4.4已驗證的Mem
8、ory . 14在文件kernel/arch/arm/mach-sc/board-sp7731gea.c中按照如下步驟配置Keypad 1. 用如下兩個宏來定義Keypad的行列值 2. 用宏KEY 在board_keymap添加配置項 static const unsigned int board_keymap = KEY(0, 0, KEY_VOLUMEDOWN), KEY(1, 0, KEY_VOLUMEUP), KEY(0, 1, KEY_HOME), ;Keypad 配置3. 將board_keymap加到customize_keymap添加配置項4. 將customize_keym
9、ap在sci_keypad_data添加配置項 Keypad 配置5.按鍵值與硬件配對的地方u-boot/board/spreadtrum/sp7731gea/key_map.h static unsigned char board_key_map=#if 0 0 x27, KEY_HOME, 0 x42, KEY_BACK, 0 x41, KEY_VOLUMEUP,#else /0 x00, KEY_BACK,/DOWN /0 x01, KEY_HOME,/CAM /0 x10, KEY_MENU,/UP 0 x10, KEY_VOLUMEUP, / 此處是與硬件配置有關(guān)的 0 x01, K
10、EY_HOME, 0 x00, KEY_VOLUMEDOWN,#endif; Keypad 配置6. 最后還需注意最后還需注意Key的layout如何處理。device/sprd/scx35/sci-keypad.kl key鍵值 key_name權(quán)限key 116 POWER WAKEkey 114 VOLUME_DOWN WAKEkey 115 VOLUME_UP WAKEkey 9 CAMERAkey 102 HOME WAKEKeypad 配置T-shark芯片 提供了六組 i2c 口,如下:I2c 配置配置1. 在文件kernel/arch/arm/mach-sc/board-sp7
11、731gea.c中按照如下步驟配置確定設(shè)備使用那組i2c并添加配置,例如: static struct i2c_board_info i2c2_boardinfo = #if(defined(CONFIG_INPUT_LIS3DH_I2C)|defined(CONFIG_INPUT_LIS3DH_I2C_MODULE) I2C_BOARD_INFO(LIS3DH_ACC_I2C_NAME, LIS3DH_ACC_I2C_ADDR), .platform_data = &lis3dh_plat_data, #endif#if(defined(CONFIG_SENSORS_AK8975)|
12、defined(CONFIG_SENSORS_AK8975_MODULE) I2C_BOARD_INFO(AKM8975_I2C_NAME, AKM8975_I2C_ADDR), .platform_data = &akm8975_platform_d,#endif I2c 配置配置 . 21 static struct i2c_board_info i2c1_boardinfo = I2C_BOARD_INFO(sensor_main,0 x3C),I2C_BOARD_INFO(sensor_sub,0 x21),;static struct i2c_board_info i2c0_
13、boardinfo = #if(defined(CONFIG_TOUCHSCREEN_FOCALTECH)|defined(CONFIG_TOUCHSCREEN_FOCALTECH_MODULE)I2C_BOARD_INFO(FOCALTECH_TS_NAME, FOCALTECH_TS_ADDR),.platform_data = &ft5x0 x_ts_info,#endif,; I2c 配置配置2. 添加I2C資源 kernel/arch/arm/mach-sc/devices-sc8830.c static struct resource sprd_i2c_resources0
14、 = 0 = .start = SPRD_I2C0_BASE, .end = SPRD_I2C0_BASE + SPRD_I2C0_SIZE -1, .name = i2c0_res, .flags = IORESOURCE_MEM, , 1 = .start = IRQ_I2C0_INT, .end = IRQ_I2C0_INT, .flags = IORESOURCE_IRQ, ; I2c 配置配置 struct platform_device sprd_i2c_device0 = .name = sprd-i2c, .id = 0, .num_resources = ARRAY_SIZE
15、(sprd_i2c_resources0), .resource = sprd_i2c_resources0,; I2c 配置配置LCD配置配置(u-boot)1. 增加驅(qū)動文件./u-boot/drivers/video/sprdfb/lcd/lcd_nt35516_mipi.c2. 增加編譯規(guī)則./u-boot/drivers/video/sprdfb/lcd/MakefileCOBJS-$(CONFIG_FB_LCD_NT35516_MIPI) += lcd_nt35516_mipi.o3. 配置LCD編譯選項及LCD尺寸./u-boot/include/configs/sp7731ge
16、a.h#ifdef CONFIG_LCD/#define CONFIG_LCD_HVGA 1/#define CONFIG_LCD_WVGA 1#define CONFIG_LCD_QHD 1#define CONFIG_FB_LCD_NT35516_MIPI#endif / CONFIG_LCDLCDLCD配置配置LCD配置配置(u-boot)4. 關(guān)聯(lián)到內(nèi)核 在./u-boot/drivers/video/sprdfb/sprdfb_panel.c文件中extern struct panel_spec lcd_nt35516_mipi_spec;static struct panel_cf
17、g panel_cfg = #ifdef CONFIG_FB_LCD_NT35516_MIPI.lcd_id = 0 x16,.panel = &lcd_nt35516_mipi_spec,#endif.;static struct panel_spec *adapt_panel_from_readid(struct sprdfb_device *dev)LCDLCD配置配置 . 26LCD配置配置(u-boot)5. /u-boot/drivers/video/sprdfb/lcd/lcd_nt35516_mipi.c中定義lcd_nt35516_mipi_specstruct pa
18、nel_spec lcd_nt35516_mipi_spec = /.cap = PANEL_CAP_NOT_TEAR_SYNC,#ifdef CONFIG_FB_LOW_RES_SIMU.display_width = 480,.display_height= 854,#endif.width = 540,.height = 960,.fps = 60,.type = LCD_MODE_DSI,.direction = LCD_DIRECT_NORMAL,.info = .mipi = &lcd_nt35516_mipi_info,.ops = &lcd_nt35516_mi
19、pi_operations,;LCDLCD配置配置LCD配置配置(kernel)1. 添加menuconfig配置項./kernel/drivers/video/sprdfb/Kconfigconfig FB_LCD_NT35516_MIPI boolean support NT35516 mipi panel depends on FB_SC8825 | FB_SCX35 default n2. 添加driver./kernel/drivers/video/sprdfb/lcd/lcd_nt35516_mipi.c3. 添加編譯規(guī)則在./kernel/drivers/video/sprdfb
20、/lcd/Makefile文件中增加obj-$(CONFIG_FB_LCD_NT35516_MIPI) += lcd_nt35516_mipi.oLCDLCD配置配置LCD配置配置(kernel)4. 配置kernel默認LCD在./kernel/arch/arm/configs/sp7731gea-native_defconfig中添加CONFIG_FB_LCD_NT35516=yLCDLCD配置配置LCD配置配置(kernel)5. LCD panel注冊相對u-boot下的LCD driver, kernel下的代碼需要增加以下部分,來完成LCD panel注冊:./kernel/dri
21、vers/video/sprdfb/lcd/lcd_nt35516_mipi.cstruct panel_cfg lcd_nt35516_mipi = /* this panel can only be main lcd */.dev_id = SPRDFB_MAINLCD_ID,.lcd_id = 0 x16, /用于與uboot傳過來的LCD ID比較,來判斷LCD是否已經(jīng)初始化.lcd_name = lcd_nt35516_mipi,.panel = &lcd_nt35516_mipi_spec,;static int _init lcd_nt35516_mipi_init(vo
22、id) return sprdfb_panel_register(&lcd_nt35516_mipi); subsys_initcall(lcd_nt35516_mipi_init);LCDLCD配置配置TPTP配置配置TP配置配置1. 作為input設(shè)備,相應(yīng)驅(qū)動文件均放在kernel/drivers/input/目錄下kernel/drivers/input/touchscreen/focaltech/focaltech.c2. 設(shè)備是否啟用由Makefile,Kconfig,board對應(yīng)的defconfig控制。 (1). kernel/drivers/input/touchs
23、creen/focaltech/Makefileobj-$(CONFIG_TOUCHSCREEN_FOCALTECH) += focaltech_ts.o (2). kernel/drivers/input/touchscreen/Kconfigconfig TOUCHSCREEN_FOCALTECH tristate touchscreen_focaltech driver depends on I2C help Say Y here if you have a FOCALTECH based touchscreen controller. If unsure, say N. To comp
24、ile this driver as a module, choose M here: the module will be called focaltech_ts.oTP配置配置(3). Defconfig文件放在了configs目錄,如sp7731gea工程:kernel/arch/arm/configs/sp7731gea-native_defconfig 定義了該設(shè)備是否被開啟及其編譯的模式CONFIG_TOUCHSCREEN_FOCALTECH=mTP配置配置3. 配置i2c注冊信息,如sp7731gea工程:(1). kernel/arch/arm/mach-sc/board-sp
25、7731gea.c static struct i2c_board_info i2c0_boardinfo = I2C_BOARD_INFO(FOCALTECH_TS_NAME, FOCALTECH_TS_ADDR), .platform_data = &ft5x0 x_ts_info, ,;TP配置配置 (2) .詳細定義:#include static struct ft5x0 x_ts_platform_data ft5x0 x_ts_info = .irq_gpio_number = GPIO_TOUCH_IRQ,.reset_gpio_number = GPIO_TOUCH_
26、RESET,.vdd_name = vdd28,.virtualkeys = 100,1020,80,65, 280,1020,80,65, 470,1020,80,65 ,#ifdef CONFIG_FB_LOW_RES_SIMU .TP_MAX_X = 640, .TP_MAX_Y = 1138,#else .TP_MAX_X = 720, .TP_MAX_Y = 1280,#endif;TP配置配置4. tpsensor還需要其他輔助引腳,如中斷等。在sp7731gea工程中: kernel/arch/arm/mach-sc/include/mach/_board-sp7731gea.h
27、 #define GPIO_TOUCH_RESET 81 #define GPIO_TOUCH_IRQ 82 5. Pinmap用于配置gpio的初始功能,如GPIO_TOUCH_RESET ,配置如下: u-boot/board/spreadtrum/sp7731gea/pinmap-sp8830.c REG_PIN_SIMCLK2, BIT_PIN_SLP_AP|BIT_PIN_NULL|BITS_PIN_DS(1)|BITS_PIN_AF(3)|BIT_PIN_NUL|BIT_PIN_SLP_NUL|BIT_PIN_SLP_OE,/CTP_RSTvendor/sprd/open-sour
28、ce/libs/libcamera目錄按照如下步驟配置,以配置sensor ov5640為例可以通過在兩個文件夾中增加sensor的配置,實現(xiàn)自動匹配sensor。主要修改以下幾個地方:1. 將驅(qū)動代碼文件放到vendor/sprd/open-source/libs/libcamera/sensor目錄下, 主要有:sensor_ov5640.c sensor_ov5640_mipi.c sensor_ov5640_mipi_raw.c sensor_ov5640_raw.c sensor_ov5640_raw_param.c CameraCamera配置配置2. 修改文件vendor/spr
29、d/open-source/libs/libcamera/sc8830/src/sensor_cfg.c在const SENSOR_INFO_T* main_sensor_infor_tab或 sub_sensor_infor_tab中 增加對應(yīng)驅(qū)動代碼中的結(jié)構(gòu)體變量如: g_ov5640_mipi_yuv_info, 并且增加聲明:extern SENSOR_INFO_T g_ov5640_mipi_yuv_info;注意:放在main_sensor_infor_tab中最前面的sensor會最先匹配,所以我們一般把當(dāng)前使用的sensor放在第一,這樣可以節(jié)省sensor初始化的時間。 Ca
30、meraCamera配置配置3. 在vendor/sprd/open-source/libs/libcamera/Camera.mk和Camera_Utest.mk文件中,在對應(yīng)的工程中增加要編譯的驅(qū)動代碼 ifeq ($(strip $(TARGET_BOARD_PLATFORM),sc8830)LOCAL_C_INCLUDES := $(LOCAL_PATH)/ispvideo$(LOCAL_PATH)/vsp/sc8830/inc .LOCAL_SRC_FILES:= sc8830/src/SprdOEMCamera.c .sensor/sensor_ov5640.c sensor/se
31、nsor_ov5640_mipi.c /將此驅(qū)動代碼名稱添加到編譯目錄CameraCamera配置配置4. I2C配置 路徑kernel/arch/arm/mach-sc/board-sp7731gea.c確定設(shè)備使用哪組i2c并添加配置,例如:static struct i2c_board_info i2c0_boardinfo = I2C_BOARD_INFO(sensor_main,0 x3C), I2C_BOARD_INFO(sensor_sub,0 x21),; CameraCamera配置配置 . 40Camera 相關(guān)配置相關(guān)配置5. 在文件device/sprd/scx35_s
32、p7731gea/BoardConfig.mk中 (1) #snesor interfaceTARGET_BOARD_BACK_CAMERA_INTERFACE := mipiTARGET_BOARD_FRONT_CAMERA_INTERFACE := mipi(2) # select camera 2M,3M,5M,8MCAMERA_SUPPORT_SIZE := 8MFRONT_CAMERA_SUPPORT_SIZE := 3M(3) 相關(guān)功能開關(guān)配置有/無前攝TARGET_BOARD_NO_FRONT_SENSOR := falseZSL開/關(guān) #select camera zsl ca
33、p modeTARGET_BOARD_CAMERA_CAPTURE_MODE := false開/關(guān)Capture Rotation #rotation captureTARGET_BOARD_CAMERA_ROTATION_CAPTURE := falseCameraCamera配置配置 . 416. Camera視頻錄制size配置參考路徑:device/sprd/scx35_sp7731gea/media_profiles.xmlAndroid原生配置格式如下: /主camera配置 /編碼屬性,最小size /錄制視頻碼率 /編碼屬性,最大size CameraCamera配置配置Ca
34、meraCamera配置視頻錄制size配置方法以配置里面的參數(shù)為例,即主camera的配置。其中分別在前兩項用quality=low和quality=high表示支持的最大和最小尺寸的錄像,最大尺寸根據(jù)我們實際情況配置對應(yīng)的尺寸,可以配置如下幾個標準的尺寸: /176144 /352X288 /720480 /1280720 /19201080如我們默認配置最小錄像size為176144,最大錄像size是1080P, minBitRate=16000 maxBitRate=32000000 /比特率范圍,和寬高尺寸對應(yīng) minFrameWidth=“176” maxFrameWidth=“
35、1920” /寬度范圍,和前面的配置對應(yīng) minFrameHeight=“144” maxFrameHeight=“1080” /高度范圍 minFrameRate=15 maxFrameRate=60 / /幀率范圍修改好.xml文件后,將修改后的media_profiles.xml文件push到手機的/etc目錄下,再重啟手機就可以了,或者編譯system.img燒進去也可以。保證文件SprdCameraHardwareConfig.h (vendor/sprd/open-source/ibs/libcamera/sc8830/inc)中sprd_back_camera_hardware_
36、config 里面preview-size-values配置參數(shù)和xml里面對應(yīng)。即xml里面配置的最大size必須在preview-size-values的參數(shù)列表里面。 . 42 . 43CameraCamera配置配置CameraCamera配置 . 44L&Psensor客戶化配置原理圖L&Psensor客戶化配置客戶化配置1. 作為input設(shè)備,相應(yīng)驅(qū)動文件均放在kernel/drivers/input/misc/目錄下kernel/drivers/input/misc/ltr_558als.c2. 相應(yīng)的頭文件路徑:kernel/include/linux/i2c
37、/ltr_558als.h3. 設(shè)備是否啟用由Makefile,Kconfig,board對應(yīng)的defconfig控制。(1). Makefileobj-$(CONFIG_INPUT_LTR558_I2C)+= ltr_558als.o(2). Kconfigconfig INPUT_LTR558_I2Ctristate LTR558 proximity and light sensor device with I2C busdepends on I2Cdefault nhelp Say Y here if you have a LTR558 device on the board and use I2C communication, else say N.L&Psensor客戶化配置客戶化配置(3). kernel/arch/arm/configs/sp7731gea-native_defconfig sp7731gea-native_defconfig中定義了設(shè)備及編譯的模式:# CONFIG_INPUT_AL3006_I2C is not setCONFIG_INPUT_LTR558_I2C=y4. 配置i2c注冊信息,如sp7731gea工程: (1). kernel/arch/arm/mach
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計算機視覺技術(shù)知到智慧樹章節(jié)測試課后答案2024年秋重慶電子科技職業(yè)大學(xué)
- 海水的運動練習(xí) 高中地理人教版(2019)必修一
- 科技展會的數(shù)字化營銷戰(zhàn)略規(guī)劃
- 小屋租房合同范本
- 2025年湖北省孝感市單招職業(yè)適應(yīng)性測試題庫審定版
- 應(yīng)用文寫作+勞動創(chuàng)造價值的通知+講義-山東省“天一大聯(lián)考·齊魯名校教研共同體”高三年級開學(xué)質(zhì)量檢測英語試題
- 2025年撫州職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫及答案1套
- 社會支持網(wǎng)絡(luò)在退休心理調(diào)適中的作用
- 2025-2030年中國電子三防膠行業(yè)投資前景預(yù)測研究報告
- 2025-2030年中國甲基環(huán)己烷行業(yè)發(fā)展趨勢與十三五規(guī)劃研究報告
- 育嬰師培訓(xùn)課件
- 2024年揚州市職業(yè)大學(xué)單招職業(yè)適應(yīng)性測試題庫附答案
- 中藥材種植中藥材種植良種繁育技術(shù)研究與應(yīng)用
- 安徽省皖江名校聯(lián)盟2024屆高三下學(xué)期4月二?;瘜W(xué)
- 大數(shù)據(jù)分析在審計中的創(chuàng)新運用
- 激光雷達行業(yè)市場規(guī)模分析
- 高血壓性心臟病病例討論
- 規(guī)劃院所長述職報告
- 閩教版2023版3-6年級全8冊英語單詞表
- 腦卒中后吞咽障礙患者進食護理-護理團標
- 銷售人員商務(wù)禮儀培訓(xùn)通用課件
評論
0/150
提交評論