📄 i2c.c.svn-base
字号:
/* * i2c for frv , cmmb * ===================================================================================== * Version: 1.0 * Created: 2008年01月25日 11时50分01秒 CST * Compiler: gcc * Author: kf701 (linux), kf701.ye AT gmail.com * Company: CodeRepertory * CopyRight: Copyright (c) 2008 kf701 * SVNinfo: $Id$ * ===================================================================================== */#include "i2c.h"#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <sys/ioctl.h>#include <unistd.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>uint8_t read_i2c(int port){ int fd = open("/dev/frvcmmb", O_RDWR); i2c_t buf = {port, 0x7f}; ioctl( fd, 1, &buf ); close(fd); return buf.value;}void write_i2c(int port, int value){ int fd = open("/dev/frvcmmb", O_RDWR); i2c_t buf = {port, value}; ioctl( fd, 2, &buf ); close(fd);}void enable_cmmb_device(void){ int fd = open("/dev/frvcmmb", O_RDWR); ioctl( fd, 3, 1 ); close(fd);}void disable_cmmb_device(void){ int fd = open("/dev/frvcmmb", O_RDWR); ioctl( fd, 3, 0 ); close(fd);}void cmmbip_change(uint32_t addr_type, char *ip, uint16_t port){#define I2C_IP_ADDR1 0x7#define I2C_IP_ADDR2 0x8#define I2C_IP_ADDR3 0x9#define I2C_IP_ADDR4 0xA#define I2C_IP_ADDR5 0xB#define I2C_IP_ADDR6 0xC#define I2C_IP_ADDR7 0xD#define I2C_IP_ADDR8 0xE#define I2C_IPPM_PORT 0xF#define I2C_IP_PROTOCOL 0x18 if( 1 == addr_type ) /* ipv4 */ { /* step 1 */ write_i2c( I2C_IPPM_PORT, addr_type - 1 ); /* step 2 */ uint32_t netaddr = inet_addr(ip); netaddr = ntohl(netaddr); uint16_t left, right; left = netaddr & 0xFFFF; right = (netaddr >> 16) & 0xFFFF; write_i2c( I2C_IP_ADDR7, left ); write_i2c( I2C_IP_ADDR8, right ); /* step 3 */ write_i2c( I2C_IPPM_PORT, port ); } else if( 2 == addr_type ) /* ipv6 */ { printf("IPV6 not implement now\n"); }}void cmmb_set_fb_fps(){ int frvpmp_dev; frvpmp_dev = open("/dev/frvpmp", O_RDWR); ioctl(frvpmp_dev, CMMB_CHANGE_FB, FB_FPS_25);}void cmmb_restore_fb_fps(){ int frvpmp_dev; frvpmp_dev = open("/dev/frvpmp", O_RDWR); ioctl(frvpmp_dev, CMMB_CHANGE_FB, FB_FPS_15);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -