当前位置: 首页 > news >正文

MAX96718打pattern方法

效果

code

$cat pattern_generator_max96718.c /* SPDX-License-Identifier: GPL-2.0 */ #ifndef __MAXIM2C_API_H__ #define __MAXIM2C_API_H__ #include <stdbool.h> //#include "maxim2c_i2c.h" #ifndef __MAXIM2C_I2C_H__ #define __MAXIM2C_I2C_H__ //#include <linux/i2c.h> #include <stdint.h> #define u8 uint8_t #define u16 uint16_t #define u32 uint32_t /* register address: 8bit or 16bit */ #define MAXIM2C_I2C_REG_ADDR_08BITS 1 #define MAXIM2C_I2C_REG_ADDR_16BITS 2 /* register value: 8bit or 16bit or 24bit */ #define MAXIM2C_I2C_REG_VALUE_08BITS 1 #define MAXIM2C_I2C_REG_VALUE_16BITS 2 #define MAXIM2C_I2C_REG_VALUE_24BITS 3 /* I2C Device ID */ enum { MAXIM2C_I2C_DES_DEF, /* Deserializer I2C address: Default */ MAXIM2C_I2C_SER_DEF, /* Serializer I2C address: Default */ MAXIM2C_I2C_SER_MAP, /* Serializer I2C address: Mapping */ MAXIM2C_I2C_CAM_DEF, /* Camera I2C address: Default */ MAXIM2C_I2C_CAM_MAP, /* Camera I2C address: Mapping */ MAXIM2C_I2C_DEV_MAX, }; /* i2c register array end */ #define MAXIM2C_REG_NULL 0xFFFF struct maxim2c_i2c_regval { u16 reg_len; u16 reg_addr; u32 val_len; u32 reg_val; u32 val_mask; u8 delay; }; /* seq_item_size = reg_len + val_len * 2 + 1 */ struct maxim2c_i2c_init_seq { struct maxim2c_i2c_regval *reg_init_seq; u32 reg_seq_size; u32 seq_item_size; u32 reg_len; u32 val_len; }; #endif /* __MAXIM2C_I2C_H__ */ //#include "maxim2c_link.h" #ifndef __MAXIM2C_LINK_H__ #define __MAXIM2C_LINK_H__ //#include "maxim2c_i2c.h" /* Link cable */ enum maxim2c_link_cable { MAXIM2C_CABLE_COAX = 0, MAXIM2C_CABLE_STP, }; /* Link Type */ enum maxim2c_link_type { MAXIM2C_GMSL1 = 0, MAXIM2C_GMSL2, }; /* Link Mode */ enum maxim2c_link_mode { MAXIM2C_GMSL_PIXEL = 0, MAXIM2C_GMSL_TUNNEL, }; /* I2C Remote Control Port */ enum { MAXIM2C_I2C_PORT0 = 0, MAXIM2C_I2C_PORT1, MAXIM2C_I2C_PORT2, MAXIM2C_I2C_PORT_MAX, }; /* Link SIO ID: 0 ~ 3 */ enum { MAXIM2C_LINK_ID_A = 0, MAXIM2C_LINK_ID_B, MAXIM2C_LINK_ID_MAX, }; /* Link Bit Mask: bit0 ~ bit3 */ #define MAXIM2C_LINK_MASK_A BIT(MAXIM2C_LINK_ID_A) #define MAXIM2C_LINK_MASK_B BIT(MAXIM2C_LINK_ID_B) #define MAXIM2C_LINK_MASK_ALL GENMASK(MAXIM2C_LINK_ID_B, MAXIM2C_LINK_ID_A) /* Link Receiver Rate */ enum maxim2c_link_rx_rate { MAXIM2C_LINK_RX_RATE_3GBPS = 0, MAXIM2C_LINK_RX_RATE_6GBPS, }; /* Link Transmitter Rate */ enum maxim2c_link_tx_rate { MAXIM2C_LINK_TX_RATE_187_5MPS = 0, }; struct maxim2c_link_cfg { u8 link_enable; u8 link_type; u8 link_rx_rate; u8 link_tx_rate; struct maxim2c_i2c_init_seq link_init_seq; }; typedef struct maxim2c_gmsl_link { u8 link_enable_mask; u8 link_type_mask; u8 link_locked_mask; u8 link_vdd_ldo1_en; struct maxim2c_link_cfg link_cfg[MAXIM2C_LINK_ID_MAX]; } maxim2c_gmsl_link_t; #endif /* __MAXIM2C_LINK_H__ */ //#include "maxim2c_video_pipe.h" #ifndef __MAXIM2C_VIDEO_PIPE_H__ #define __MAXIM2C_VIDEO_PIPE_H__ //#include "maxim2c_i2c.h" /* Video Pipe In ID: 0 ~ 3 */ enum { MAXIM2C_PIPE_I_ID_X = 0, MAXIM2C_PIPE_I_ID_Y, MAXIM2C_PIPE_I_ID_Z, MAXIM2C_PIPE_I_ID_U, MAXIM2C_PIPE_I_ID_MAX, }; /* Video Pipe Out ID: 0 ~ 1 */ enum { MAXIM2C_PIPE_O_ID_Y = 0, MAXIM2C_PIPE_O_ID_Z, MAXIM2C_PIPE_O_ID_MAX, }; /* Video Pipe Out Config */ struct maxim2c_pipe_cfg { u8 pipe_enable; u8 pipe_idx; u8 link_idx; struct maxim2c_i2c_init_seq pipe_init_seq; }; typedef struct maxim2c_video_pipe { u8 pipe_enable_mask; struct maxim2c_pipe_cfg pipe_cfg[MAXIM2C_PIPE_O_ID_MAX]; struct maxim2c_i2c_init_seq parallel_init_seq; } maxim2c_video_pipe_t; #endif /* __MAXIM2C_VIDEO_PIPE_H__ */ //#include "maxim2c_mipi_txphy.h" #ifndef __MAXIM2C_MIPI_TXPHY_H__ #define __MAXIM2C_MIPI_TXPHY_H__ /* MIPI TXPHY ID: 0 ~ 3 */ enum { MAXIM2C_TXPHY_ID_A = 0, MAXIM2C_TXPHY_ID_B, MAXIM2C_TXPHY_ID_C, MAXIM2C_TXPHY_ID_D, MAXIM2C_TXPHY_ID_MAX, }; /* MIPI TXPHY Bit Mask: bit0 ~ bit3 */ #define MAXIM2C_TXPHY_MASK_A BIT(MAXIM2C_TXPHY_ID_A) #define MAXIM2C_TXPHY_MASK_B BIT(MAXIM2C_TXPHY_ID_B) #define MAXIM2C_TXPHY_MASK_C BIT(MAXIM2C_TXPHY_ID_C) #define MAXIM2C_TXPHY_MASK_D BIT(MAXIM2C_TXPHY_ID_D) #define MAXIM2C_TXPHY_MASK_ALL GENMASK(MAXIM2C_TXPHY_ID_D, MAXIM2C_TXPHY_ID_A) /* MIPI TXPHY Type */ enum { MAXIM2C_TXPHY_TYPE_DPHY = 0, MAXIM2C_TXPHY_TYPE_CPHY, }; /* MIPI TXPHY Mode */ enum { MAXIM2C_TXPHY_MODE_2X4LANES = 0, /* PortA: 1x4Lanes, PortB: 1x4Lanes */ MAXIM2C_TXPHY_MODE_2X2LANES, /* PortA: 2Lanes, PortB: 2Lanes */ }; /* MIPI TXPHY DPLL */ enum { MAXIM2C_TXPHY_DPLL_PREDEF = 0, MAXIM2C_TXPHY_DPLL_FINE_TUNING, }; struct maxim2c_txphy_cfg { u8 phy_enable; u8 phy_type; u8 auto_deskew; u8 data_lane_num; u8 data_lane_map; u8 vc_ext_en; u8 tunnel_enable; u8 tunnel_vs_wait; u8 tunnel_dest; u8 clock_master; u8 clock_mode; }; typedef struct maxim2c_mipi_txphy { u8 phy_mode; /* mipi txphy mode */ u8 force_clock_out_en; /* Force all MIPI clocks running */ struct maxim2c_txphy_cfg phy_cfg[MAXIM2C_TXPHY_ID_MAX]; } maxim2c_mipi_txphy_t; #endif /* __MAXIM2C_MIPI_TXPHY_H__ */ //#include "maxim2c_remote.h" #ifndef __MAXIM2C_REMOTE_H__ #define __MAXIM2C_REMOTE_H__ //#include "maxim2c_i2c.h" struct maxim2c_remote; struct m
http://www.cnnetsun.cn/news/1374761.html

相关文章:

  • aubo-i5机械臂运动学避坑指南:改进DH表参数设置与Matlab验证技巧
  • Open3D-GUI实战指南(一)构建你的第一个3D可视化桌面应用
  • 重新定义文档转演示:md2pptx如何实现技术内容的高效视觉化表达
  • Qwen3.5-9B实战落地:HR招聘简历图智能解析——证件照+证书图+履历图联合分析
  • 实测HY-MT1.8B翻译效果:小模型大能力,边缘设备流畅运行
  • MedGemma Medical Vision Lab开源可部署:提供FHIR接口适配器与HL7消息桥接模块
  • 飞书机器人集成指南:OpenClaw对接Qwen3-32B实现智能对话
  • 4大维度掌握强化学习框架:从理论到实践的完整路径
  • Ubuntu20.04系统部署RetinaFace完整指南
  • 妊娠引起的肠道菌群改变驱动巨噬细胞焦亡和脓毒症炎症反应
  • C++类中 函数后面加const 是什么意思
  • MediaPipe TouchDesigner:一站式GPU加速视觉交互系统构建实战
  • 【2026年蚂蚁春招算法岗- 3月19日 -第二题- 文本数值混合特征工程】(题目+思路+JavaC++Python解析+在线测试)
  • Qwen-Image镜像实际效果:多语言混合图文(中英日)理解与统一中文输出
  • 无人机、农机与手机:GNSS相位平滑技术如何悄悄提升你身边的定位体验?
  • 从《2025 AI 应用发展报告》看行业真相:技术落地、产业格局与开发者机遇
  • Qwen3.5-9B GPU部署教程:多卡并行推理与模型分片加载实操详解
  • Nanbeige 4.1-3B实战教程:集成LangChain实现多步骤RPG任务规划与执行
  • Qwen1.5-1.8B GPTQ与Transformer架构解析:从原理到部署
  • Qwen3.5-9B开源镜像快速启动:一行命令完成GPU服务部署
  • 长晶科技推出ZBG系列3W稳压二极管,覆盖6.8V至100V宽电压范围
  • CGAN在图像翻译中的5个惊艳应用:从黑白上色到虚拟换装
  • 一数资源合集(第二辑)
  • 通义千问3-VL-Reranker-8B效果展示:智能排序让搜索更精准
  • 番茄小说下载器技术实现与多平台部署方案
  • 闲鱼运营效率倍增:自动化工具如何重构二手交易管理流程
  • 3秒破解百度网盘提取码:让资源获取从此告别繁琐搜索
  • 中国香港中文大学深圳分校全球首创视频广告植入新技术
  • 嵌入式安全通信生死线,C语言CAN FD协议栈开发必避的8个致命陷阱及FMEA验证清单
  • 基于STM32定时器外部触发模式实现高精度频率测量