[RK3288][Android6.0] U-boot显示模块部分流程小结

来源:互联网 发布:python爬虫实例 编辑:程序博客网 时间:2024/05/17 13:06
Platform: RK3288
OS: Android 6.0
Version: v2014.10

//mipi dsi接口为例:

drv_lcd_init ->    lcd.c
    lcd_init ->
        lcd_ctrl_init ->    rockchip_fb.c
            rk_fb_parse_dt ->    //解析屏的display-timings中的内容,如screen-type, porch等.
                rk_fb_pwr_ctr_parse_dt    //这里会解析lcdc节点中power对应的gpio.
            rk_fb_pwr_enable    //控制lcd power 输出
            rk_lcdc_init        //lcdc控制器初始化
            rk_lcdc_load_screen ->    //根据屏幕类型配置dsi以及lcdc控制器.
                rk_fb_vidinfo_to_screen    //参数copy到struct rk_screen中
                rk32_mipi_enable ->
                    rk_mipi_screen_probe ->
                        rk_mipi_screen_init_dt    //获取mipi_dsi_init,mipi_power_ctr以及screen-on-cmds里的配置
                    rk_dsi_host_parse_dt    //解析dts中mipi dsi对应信息.
                    rk_mipi_dsi_probe ->
                        register_dsi_ops    //注册dsi ops.
                        dsi_probe_current_chip    //探测当前dsi chip是否存在.
                    rk32_dsi_enable ->
                        rk_mipi_screen_standby ->    
                            rk_mipi_screen ->    //参数是0时
                                rk_mipi_screen_pwr_enable     //output lcd_rst_gpio, lcd_en_gpio, 这里其实会和rk_fb_pwr_enable()重复,所以也可以不需要再配置了.
                                dsi_enable_hs_clk    //enable high speed clock
                                dsi_enable_command_mode        //mipi 分command和video mode,发送命令用command mode即可.
                                rk_mipi_screen_cmd_init    -> //屏幕需要初始化时需要发送命令.
                                    dsi_send_packet    //循环发送dts中的所以命令,这些命令在rk_mipi_screen_init_dt()时读取.
                                dsi_enable_command_mode    //关闭command mode
                                dsi_enable_video_mode    //开启video mode.
                lcdc_msk_reg    //根据屏参数来配置lcdc
                lcdc_writel
                rk32_dsi_sync    //mipi dsi屏才会调用到.
        lcd_clear ->
            lcd_logo ->    //画logo
                bitmap_plot ->
                    rk_bitmap_from_resource ->
                        get_content ->
                            get_base_offset ->
                                get_disk_partition(RESOURCE_NAME)    //读取resoure分区
                                get_disk_partition(BOOT_NAME)    //失败的话读取boot分区
                            lcd_display_bitmap_center ->
                                lcd_display_bitmap ->
                                    lcd_pandispaly    显示
1 0
原创粉丝点击