TCC8935 HDMI output

Mali & UMP memory allocation Project:                Android 4.2.2 @ 8935 Description: 阅读详情

This post describes how to send HDMI signal out on tcc8935.


The LCDC's output can be configured to route to different target modules, like LCD panel (RGB I/F), HDMI, TV Encoder (NTSC/PAL), Analog (LVDS), via OUTPUT MUX.



The route is setup by writing appropriate bits of registers CFG_MISC1 and MISC within VIOC block.

The comments of above register is not clear. But in source code (lk/platform/tcc893x/tcc_lcd_interface.c), we know that writing 'b00 to bit 24-25 can route lcdc output to lcd panel, whereas writing 'b01 to 26-27 routes lcdc output to HDMI module.

int tca_fb_output_path_init(void)
{
    int CFG_MISC_DISP_OUTPUT = (unsigned int)(CFG_MISC);

    BITCSET(CFG_MISC_DISP_OUTPUT, LCD0_SEL, 0 << 24 );    // DISP 0 - LCD,
    BITCSET(CFG_MISC_DISP_OUTPUT, LCD1_SEL, 1 << 26);    // DISP 1 - HDMI
}


Related code: lk/platform/tcc893x/vioc_power.c

void VIOC_OUTCFG_SetOutConfig (unsigned nType, unsigned nDisp)
{
    static VIOC_OUTCFG *gpOutConfig = (VIOC_OUTCFG *)HwVIOC_OUTCFG;

    switch (nType)
    {
        case VIOC_OUTCFG_HDMI :
            gpOutConfig->uMISCCFG.bREG.HDMISEL   = nDisp;
            break;
        case VIOC_OUTCFG_SDVENC :
            gpOutConfig->uMISCCFG.bREG.SDVESEL   = nDisp;
            break;
        case VIOC_OUTCFG_HDVENC :
            gpOutConfig->uMISCCFG.bREG.HDVESEL   = nDisp;
            break;
        case VIOC_OUTCFG_M80 :
            gpOutConfig->uMISCCFG.bREG.M80SEL    = nDisp;
            break;
        case VIOC_OUTCFG_MRGB :
            gpOutConfig->uMISCCFG.bREG.MRGBSEL   = nDisp;
            break;
        default :
            printf ("Not supported type ...");
            break;
    }
}

Regarding TCC8935,  the LCDC 0 is used as LCD panel video source; the LCDC 1 is used as HDMI video source.



HDMI module is comprised of a Tx Controller (LINK) with I2S/SPDIF input interface, a PHY (controlled by I2C), as well as HPD, CES.


HDMI initialization flow in bootloader:

        --- SYSTEM POWER ON ---

        --- platform/tcc893x/platform.c, void platform_init(void) ---

#if defined(DISPLAY_SPLASH_SCREEN) || defined(DISPLAY_SPLASH_SCREEN_DIRECT)
    #ifndef DEFAULT_DISPLAY_OUTPUT_DUAL
        display_init();
        dprintf(INFO, "Display initialized\n");
    #endif


        ---  platform/tcc893x/platform.c,

void display_init(void)
{
#if defined(TCC_LCD_USE)
    fb_config = lcdc_init();
    ASSERT(fb_config);
    fbcon_setup(fb_config);    
#endif
}

        --- platform/tcc893x/lcdc.c

             Note that there are two definitions of function lcdc_init(), one for DEFAULT_DISPLAY_LCD (defined in rules.mk), the other one for other cases.

             The first definition mainly setup parameters related to LCD panel, such as GPIOs (BL, POWER), clock source (according to panel's pixel clock and image sizes.

             Given the fact that HDMI signal always output to TV or computer display but not a panel, such parameters are ignored by second definition. Instead, it calls

             lcdc_io_init_hdmi/component/composite() respectively according to system's configuration. We focus on the later definition in this post.

            

             In case of HDMI output, telechips created a driver for HDMI display,  platform/tcc893x/HDMI_1280x720.c. The driver calls,

             platform/tcc893x/tcc_lcd_interface.c ---> lcdc_initialize() to setup timing registers;

             platform/tcc893x/tcc_lcd_interface.c ---> LCDC_IO_Set() to setup data port (GPIOs)


 In SparkPos project, use LCDC 0 as HDMI source, and change DEFAULT_DISPLAY_LCD to DEFAULT_DISPLAY_HDMI in rules.mk to enable HDMI output in bootloader.

The other modifications include:

1. define panel to HDMI_1280x720 in rules.mk

2. call LCDC_IO_Set() to configure LCDC data pins, in lcdc.c ---> lcdc_init()

3. change HDMI_VIDEO_MODE_TYPE to 4 (1280x720@60Hz) in HDMI_TCC.h


HDMI initialization flow in Kernel:


TCC8935_Chip_Spec Telechip MID Dual SOC TCC8935 立即下载

相关推荐

Telechips芯片烧录工具FWDN

Telechips芯片烧录工具FWDN,V7,V260版,支持烧录WinCE及Android,内含驱动程序。

Telechips,车载方案,以及其车载芯片,TCC8931、TCC8935等介绍,NEXTCHIP+TELECHIPS方案推荐

Telechips是一家韩国MP3芯片研发公司,现已经进军车载市场,提供完美SOC方案TCC893x是一个系统级芯片,具有强大的多媒体解决方案和高性能的双解码等。TCC892x是一个系统芯片,其中包括功能强大的多媒体解决方案和高性能。它是为高端多媒体设备,如汽车AVN,平板电脑,便携式多媒体播放器,多媒体网络设备,以及家庭娱乐的理想选择。 TCC892x多媒体应用处理器是基于Corte...

bjgymtkj的博客 7191

TCC8935_demo_D3_V01.pdf

TCC8935_demo_D3_V01的电路原理图,对于设计PCB板采用Telechips芯片的,有参考价值,有详细的芯片pin脚连线。

详解tcc8935的GPIO寄存器

一、tcc8935的GPIO寄存器的基地址 Base Address = 0x74200000 二、tcc8935的GPIO寄存器——datasheet 243页 1、GPIO Data Register 数据寄存器,在这里可以读取到当前PIN的值。比如,GPIO_A00为输入模式的话,并且外部输入为高,那么我们读取GPADAT的bit0,就是为1.如果为输出模式的话,在这里设置相

努力创作有价值的文章 3196

TCC8925x_35_M805S_D3_08X4_V11A_130219-9526 原理图

TCC8925x_35_M805S_D3_08X4_V11A_130219-9526 原理图 里面含有TCC8925x 的芯片资料含有芯片有关的原理图

TCC8900_Android2.3开发指南.pdf

TCC8900.。

8935 CLOCK subsystem

The CLOCK system is an essential/fundamental component of any system

TechMax的专栏 1549

Fortify SCA 24.4 最新可用版

Fortify Static Code Analyzer(Fortify SCA) 是一款由 Micro Focus(原惠普旗下)开发的 静态应用安全测试(SAST)工具,专注于在软件开发早期通过分析源代码或编译后的二进制文件,识别潜在的安全漏洞、代码缺陷和合规性问题。以下是其核心特点与功能:核心功能 静态代码分析 在不运行程序的情况下,通过语法、语义分析检测代码中的安全漏洞(如 SQL 注入、跨站脚本(XSS)、缓冲区溢出等)和代码质量问题。

棉花糖的博客 3181

Android 4.2 Shutdown procedure

The shutdown procedure within Linux (based on BSP v13.05):         1.     Android call __reboot( LINUX_REBOOT_MAGIC1,                                                             LINUX_REBOOT_MAGIC2,

TechMax的专栏 718

强化学习赋能宇树机器狗:Isaac Gym与MuJoCo仿真训练全解析

本文详细解析了如何利用Isaac Gym和MuJoCo两大仿真平台为宇树机器狗构建强化学习训练管道。内容涵盖环境配置、模型导入、PPO算法框架设计、奖励函数构建以及从仿真到实机的策略迁移技巧,为开发者提供了一套完整的宇树狗仿真训练实践方案。

zeta9的博客 619

西门子S7-1200 PLC控制步进电机实战:从I/O分配到梯形图,手把手教你实现正反转与调速

本文详细介绍了如何使用西门子S7-1200 PLC控制步进电机,从硬件接线到梯形图编程,实现正反转与三档调速功能。通过I/O分配、脉冲生成逻辑和方向控制等核心步骤,帮助工程师快速掌握PLC控制步进电机的关键技术,提升工业自动化项目的实施效率。

weixin_28733777的博客 535

根据设备树节点创建平台设备

文件路径:kernel\arch\arm\mach-tcc803x\board-tcc803x.c struct of_dev_auxdata { char *compatible; resource_size_t phys_addr; char *name; void *platform_data; }; #define OF_DEV_AUXDATA(_compat,_phys,_name,_pdata) \ { .compatible = _compat, .phys_addr =..

ask_true的博客 756

手把手教学|用飞书+扣子工作流实现自动化批量图片生成,效率提升99%!体验完整操作流程

在先前的文章中,我们已经深入探讨了扣子智能体的多种应用场景,以及如何创建和使用工作流进行高效管理。本文将引领大家通过一个具体案例,将扣子的工作流功能嵌入飞书应用中,实现操作的自动化与高效化。

weixin_66485800的博客 6028

camera驱动

tcc803x平台camera驱动小记。 videoinput0: videoinput@0 { compatible = "telechips,video-input"; clocks = <&clk_ddi DDIBUS_VIOC>; rdma = <&vioc_rdma VIOC_RDMA16&gt

ask_true的博客 573

阿里云大模型ACP认证模拟考试(二)

摘要:在阿里云大模型高级工程师 ACP 认证暂无真题题库的现状下,模拟题具有重要意义。其依照真实考试设计,涵盖题型、题量与分值分布,助力考生熟悉考试框架,合理分配答题时间精力,提升效率。同时,模拟题紧扣官方课程,能帮助考生精准定位知识盲点,如大模型架构原理和通义千问应用实践等重点内容,以便针对性完善知识体系。此外,通过练习模拟题,考生可掌握不同题型的解题思维与技巧,快速洞察复杂题目本质,提高答题准确率。

davidkorhenn的博客 2072

优快云 2

2

qq_62260432的博客 5236

tcc编译linux内核,tcc893x基于Linux内核的普普通通GPIO操作总结

tcc893x基于Linux内核的普通GPIO操作总结采用非平台方式进行配置GPIO引脚采用非平台方式进行配置gpio引脚,是直接对其gpio组寄存器进行读写。由于不能直接对寄存器物理地址进行操作,所有需要利用ioremap将gpio寄存器的物理地址映射成虚拟地址写寄存器:writel(value,对应寄存器的虚拟地址);读寄存器:value = readl(对应寄存器的虚拟地址);采用tcc89...

weixin_28278377的博客 433

Python爬虫实战:爬取ETF基金持仓变化

在python复制编辑本文详细介绍了如何使用Python的Scrapy框架爬取ETF基金的持仓变化信息,包括项目的搭建、数据的提取与存储、以及数据的可视化分析。通过本项目,读者可以掌握基本的网页爬虫技术,并应用于实际的财经数据采集与分析中。

2201_76125261的博客 629

tcc893x基于Linux内核的I2C总结(I2C基础、I2C适配器驱动分析)

I2C总线基本知识 I2C总线物理拓扑结构 I2C总线在物理连接上非常简单,分别有SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,这两个线一般被上面所接的上拉电阻拉高,保持着高电平。 I2C总线特征 I2C总线上的每一个设备都可以作为主设备或者从设备,而且

努力创作有价值的文章 2923

23 RAG 为什么答不准:召回、分块、排序的常见坑

RAG 答不准时,不要先怪模型。本文把常见失败拆成召回不到、召回不准、分块不完整、排序靠后、上下文污染和生成不忠实六类,并给出从 Top-K 检查到评估集的排查流程。

老于的笔记的专栏 246

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Porting MT6620 driver to EDesk board

NOTE: Build based on Yusurf's release: v1305+patches+MT6620 ******************************************************************************* PART 1. compile original code: /root/EDeskYusurf/      

TechMax的专栏 2206

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

m805_893x memory layout

The system memory layout looks like this: Physical/Virtual address description size comment 80000100 - 80007FFF / c0000100 - c0007FFF ATAG 32KB   80008000 -           

TechMax的专栏 1797

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Display system in bootloader

This document depicts the bootloader's display subsystem: Part 1: related files a. target/tcc893x_evm/rules.mk       1. (DEFINES += FLD0800    # 1024x600                                     /* D

TechMax的专栏 1431

How Android handles KEY_POWER?

Within axp202 device driver, the driver sends  KEY_POWER to Android when         user press POWER button on board, no matter that a long OR short press.         while, the Android responds respectiv

TechMax的专栏 1188
上一篇: 8935 CLOCK subsystem
下一篇: How Linux Initializes Memory - TCC8900
TechMax
博客等级 码龄16年 5粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值