实例介绍
【实例简介】
RockChip_RK616开发文档v1.1 详细介绍RK616驱动开发
1、概述 等、etB是为R平台设计的颗配套心片,他包含LMs、HDMI、MPI、 CODEC 块。该芯片对外提供如下接口: ●两个RGB接口LCD0、LCD1,其中LCD0只能用作输入,LCD1是双向口 可以用作输入也可以用作输出。 个LⅦDS输出口,该接口支持双通道LVDS,并可复用为RGB输出接口, 在软件上可配置,RK616在该通道上不支持RGB输出。 个MIPI输出接口,RK616日前不支持该接口,将在后续封装的芯片上 支持 个HDMI输出接口。 2个I2S/PCM接口。一个是4通道,另一个单通道 个I2C控制接凵,I2C地址为0x50(该地址是不带读写标志位的7bit 2c地址)。 2、程序框架及实现 由于 Jetta是多功能设备,所以在软件上按照MFD框架组织相关驱动 21、核心控制部分代码 drivers/mfd/rk616-corec drivers/uld/rk616-vif c 22、lvds驱动代码 drivers/video/rockchip/transmitter/rk616 lvdsc 2.3、MIPI驱动代码 drivers/video/rockchip/transmitter/rk616 mipi dsi. c 24、HDMI驱动代码 drivers/video/rockchip/hdmi/chips/rk616 25、 CODEC驱动相关代码 sound/ soc/codecs/rk616 codec C sound/soc/codecs/rk616 codec h sound/soc/rk29/rk rk616c 2.6、板级配置参考代码 arch/arm/mach-rk30/board-rk3168-tb c 3、 make menuconfig相关配置 1)山于 jetta为MFD设备,所以首先要做如下选项 Device drivers k Multifunction device drivers [x* RK616(Jetta B) Multifunction device support Enable 12M clock for timing reconstruction RK616 (JettaB) debug enable 只有配置了该选项,后续LVDS、IDMI、 MIPPI、 CODEC的选项才会显示 利用12 M MCLK进行信号重建可以提高HDMI的稳定性,所以在使川HDMI的项 目中要打开该选项,并且要确保在HDMI接入的时候MCLK(i2s0)的时钟为12M. 如果开发过程中遇到了问题,需要显示相关DEBG信息,请打开 debug enable 配置,该选项默认不打开,以减少相关1og的打印。 (2)LVDS配置 Graphics support Display device support <*> Frame buffer support for rockchip [ak RockChip display transmitter support [= RK616 (JettaB) lvds, Icd, scaler vido interface support 如果有使用 Jetta输出显示信号(RGB/LⅦDS)到LCD屏幕,要选上该选项。 (3)HDMⅠ配置 Graphics support L* Rockchip HDMI support Lsk RK616 HDMI support 如果有使用 Jetta的HDMI功能,需要配上该选项 (4) CODEC配置 Device Drivers K=> Sound card support 〈*〉 Advanced Linux Sound Architecture 4 <*k> ALSA for SoC audio support Set audio support for HDMI(HDMI use SPDIF Ki>SoC I2S Audio support for rockchip- RK616 如果有使用 jetta的COEC功能,需要配上该选项 如果在HDMI的时候,开启了12M信号重建功能,HDMI状态下的音频要用 SPDIE实现,所以要选中 hdMI use SPdiF选项 (5)MIPI配置 如果使用MIPI接口,需要配置下面选项 Device drivers Graphics support K*) Frame buffer support for Rockchip > [* RockChip display transmitter support [* Rockchip MIPI DSI support 〈水>RK616( Jetta) mipi dsi support 4、板级配置 板级配置以 board-rk3168-tb.c为例,相关代码如下: if defined (CONFIG MFD RK616 #include <linux/mfd/rk616h>//head file tender #if defined(CONFIG MFD RK616) #define RK616 RST Pin RK30 PIN3 PB2 tdefine RK616 PWREN PIN RK3O PINO PA3 tdefine rK616 SCl rate (100*1000) //12c scl rate staticint rk616 power on init(void) int ret if(RK616 PWREN PIN ! INVALID GPIO ret- gpio request(RK616 PWREN PIN, rk616 pwren") f(ret) printk(Kern err rk616 pwrengpio request fail\n") e⊥se gpio direction output(RK616 PWREN PIN, GPIO HIGH) 5 if (RK616 RST PIN ! INVALID GPIO rel- gpio request(RK616 RST PIN, rk616 resel") if (ret printk (Kern errrk616 reset gpio request fail\n") e⊥se gpio direction output(RK616 RST PIN, GPIO HIGI InSlee gpio direction output(RK616 RST PIN, GPIO LOW) sleep (10) gpio set value(rK616 RST PIN, GPIO HIGH) return O staticint rk616 power deinit(void gpio set value(rK616 PWREN PIN, GPIO LoW) gpio set value(rK616 RST PIN, GPIo Low) gpio free(rK616 PWREN PIn gpio free(rK616 RST PIn) return staticstruct rk616 platform data rk616 pdata =[ power init= rk616 power on init power deinit= rk616 power reinit scI rate RK616 SCL RATE I cdo func- INPUT //port Icdo as input I cd1 func= INPUT //port Icdl as input lvds ch nr=1 /the number of used Ivds channel hdmi irg =rK30 PIN2 PD6 spk ctl gpio= RK30 PIN2 PD7 np_ctl gpio-RK30 PIN2 PD7 tendil 6 # fdef CONFIG I2C4 RK30 staticstruct i2c board info initdata i2c4 info[ #if defined (CONFIG MFD RK616) type rk616", addr 0x50 flags platform data= &rk616 pdata, tendil tendif 其中RK616 RST PIN、RK616 PWREN PIN为 Jetta复位和电源控制pin脚, 需要根据硬件设计进行相应的定义。 RK616 SCL RATE是I2C通信的速率定义,默认设置为100k,如果板子质量 不好,导致I2C通信出错,可以相应降低速率 rk616 power on Init和rk616 power reinit是 jetta对应的上电和下电 控制函数。它们分别在系统启动和关机的时候被调用。如果硬件上有特殊的设计, 可以根据实际需要调整这两个函数。 hdmi irg是HDMI检测中断引脚,如果该值定义为对应的GPI0pin脚,则 使用中断的方式检测IDI插拔,如果定义为 INVALID GPI0则使用轮询的方式检 测HDMI插拔。 k ctl gpio为 codec speaker输出使能管脚 hυ ctl gpio是耳机输出使能管脚。 lcd0func、lcd1func、 lvds ch nr为显示相关的配置选项。这个需要根 据硬件连接和显示需要进行相关设置。 Jetta显小系统框架图如图(1)所小。 7 LCD RGB SCALER LVDS/ RGB LCDO M⊥PI 图(1) Jetta显示系统框图 如第一部分概述所描述, Jetta内部集成∫两个LCD口(ICDO、LCD1), 个LDS/RGB复用接口,一个MIPI接口,一个HDMI接口。为软硬件提供了灵活 的设计支持 其中LCD0是单向接口,只接收主控输出的RGB数据,LCD1为双向接口,可 以接收主控输岀的RGB数据,还可以作为输岀口,输出数据给RGB接口的屏幕。 所以我们在显示上有两种实现方案 (1)双LCDC实现双显,显示通路如下 LCDl—》MUX2——》HDMI LCDO——》MUX1——》LVDS/MIPI 2)一个LCDC加 scaler实现双显,这个根据屏幕接的位置,有两种显 示通路 a.屏幕接在LVDS或者MIPI接口上 LCD——》MUX2——》HDMI LCDO——》MUXO——》 SCALER一—》MX1——》LWDS/MIPI b.RGB屏幕接在LCDI上 LCD0——》MUX2——》HDMI LCD0——》MUXO——》 SCALER——》MUX1——》LCD1/RGB 对于这种使用 scaler实现双显的方案,需要使用 jetta scaler config 工具计算各种HDMI分辨率下对应的pll、 scaler配置参数。然后填写到屏幕配 置文件中,可参考86v的屏幕配置文件,或者RK30SDK板子上面的屏幕配置文 8 件1cdb0lew05.C. LwDS接口支持双通道和单通道LVDS,该选项通过 lvds ch nr配置,对于 使用单通道LⅦDS的屏幕,该值设置为1,对于使用双通道LVDS的屏幕,改值设 置为2,如果该接口不使用则设置为0。在使用单通道LⅦDS的时候,只能使用 lvds的 channe0。 LCD0和LCD的使用情况和功能,通过1 cdo func和 lcdi func设置。 由于LCD0是单冋接口,所以如果LCD0有和主控的LCDC相连接,则LCD0O 设置为ⅠNPUT,如果LCDO没有和主控的LCDC相连接,则设置为 UNUSED,即未使 用 LCDⅠ口是双问口,所以LCDl口有三种值,如果LCDl和主控的LCDC相连接, 则LCDl作为输入口,接收主控输出的RGB数据,则LCD应设置为ⅠNPUT。如果 LCD1口外接RGB屏幕,则LCD1作为输出口,他把LCD0口输入的数据输出到RGB 屏幕,LCDl应设置为 OUTPUT。如果LCDl没有使用,则设置为 UNUSED。 另外,对于使用刭 jetta的LWDS或者RGB接口的项日,需要在屏幕配置文 件中的 set lcd info函数中做如下配置: Hif defined ( conFIG RK610 Lvds) defined (CONFIG RK616 LVDS) screen->screen set= rk610 lcd scaler set param fendi 更加详细的修改,请参考lcdb0lew05c中和 CONFIG RK616LWDS宏相关 的修改 5.系统启动相关log及 debug 下面是打开 Debug选项后的正常内核log L 0.542737 rk616-lvds rk616-Ivds: rk616 lvds probe success L 0. 542971] rk616 4-0050: rk616 core probe success! [0.543199 Switching to clocksource rk timer 0.518187] Switched to NOHz mode on CPU #0 L.549130 Switched to NOHz mode on CPL #2 0. 549152 Switched to NOHz mode on CPU#1 [.549165 Switched to NOHz mode on CPU #3 0.550305 Icdc1: reg phy base =0x1010e000, reg vir base: 0xf70a0000 [0.550387]b0:win0 [0.550392]fb1:win1 [0.550396]fb2:win2 0.550484 rk3188 Icdcl clk enable L 0.618344 rk 3188 Icdcl clk disable 0.647998]fb0:phy:90c00000ir:f8000000len:0xc00000 0.618259 rk fb register>>>>>fbO L 0.648538 rk fb register>>>>>fb1 648585 rk3188 Icdcl clk enable 0.648672」 I cdc 1:dclk:66500000fps:58 L 0.648707 rk616 4-0050: rk616 use dual input for dual display! 0.683986 rk616 4-0050: rk616 viro disable [0.723983]rk6164-0050:-k616 vifi disable 0.726122 rk616 4-0050: rk616 use single Ivds channel. L 2.038984] asoc: rk616-hifi <-> rk29 12s I mapping ok 2.043738 asoc: rk616-voice <- rk29 i2s 1 mapping ok L 2.044191 ALsa device list [2.044214]#0:RKRK616 错误log 1.563775 ALsa device list 1. 563793 No soundcards found 出现这种情况:如果12C没有报错,可以确定是 sound/soc/rk29/rkrk616.c中的: 232 static struct snd soc dai link rk dai[ 233 34 name=RK616 I2SI stream name =RK616 PCM 29 codec name=rk616 codec 40050 237 platform name=rockchip-audio cpu dai name rk29 12s I codec dai name=rk6l6-hifi 240 init= rk616 init 241 ops= &rk616 hifi ops 212 243 244 name=RK616 I2S2 245 stream name-RK616 PCM 246 codec name=rk616- codec. 4-0050 217 platform name rockchip-audio 248 cpu dai name=rk29 12s I 249 codec dai name=rk616-voice 250 ops-&rk616 voice ops 251 10 【实例截图】
【核心代码】
RockChip_RK616开发文档v1.1 详细介绍RK616驱动开发
1、概述 等、etB是为R平台设计的颗配套心片,他包含LMs、HDMI、MPI、 CODEC 块。该芯片对外提供如下接口: ●两个RGB接口LCD0、LCD1,其中LCD0只能用作输入,LCD1是双向口 可以用作输入也可以用作输出。 个LⅦDS输出口,该接口支持双通道LVDS,并可复用为RGB输出接口, 在软件上可配置,RK616在该通道上不支持RGB输出。 个MIPI输出接口,RK616日前不支持该接口,将在后续封装的芯片上 支持 个HDMI输出接口。 2个I2S/PCM接口。一个是4通道,另一个单通道 个I2C控制接凵,I2C地址为0x50(该地址是不带读写标志位的7bit 2c地址)。 2、程序框架及实现 由于 Jetta是多功能设备,所以在软件上按照MFD框架组织相关驱动 21、核心控制部分代码 drivers/mfd/rk616-corec drivers/uld/rk616-vif c 22、lvds驱动代码 drivers/video/rockchip/transmitter/rk616 lvdsc 2.3、MIPI驱动代码 drivers/video/rockchip/transmitter/rk616 mipi dsi. c 24、HDMI驱动代码 drivers/video/rockchip/hdmi/chips/rk616 25、 CODEC驱动相关代码 sound/ soc/codecs/rk616 codec C sound/soc/codecs/rk616 codec h sound/soc/rk29/rk rk616c 2.6、板级配置参考代码 arch/arm/mach-rk30/board-rk3168-tb c 3、 make menuconfig相关配置 1)山于 jetta为MFD设备,所以首先要做如下选项 Device drivers k Multifunction device drivers [x* RK616(Jetta B) Multifunction device support Enable 12M clock for timing reconstruction RK616 (JettaB) debug enable 只有配置了该选项,后续LVDS、IDMI、 MIPPI、 CODEC的选项才会显示 利用12 M MCLK进行信号重建可以提高HDMI的稳定性,所以在使川HDMI的项 目中要打开该选项,并且要确保在HDMI接入的时候MCLK(i2s0)的时钟为12M. 如果开发过程中遇到了问题,需要显示相关DEBG信息,请打开 debug enable 配置,该选项默认不打开,以减少相关1og的打印。 (2)LVDS配置 Graphics support Display device support <*> Frame buffer support for rockchip [ak RockChip display transmitter support [= RK616 (JettaB) lvds, Icd, scaler vido interface support 如果有使用 Jetta输出显示信号(RGB/LⅦDS)到LCD屏幕,要选上该选项。 (3)HDMⅠ配置 Graphics support L* Rockchip HDMI support Lsk RK616 HDMI support 如果有使用 Jetta的HDMI功能,需要配上该选项 (4) CODEC配置 Device Drivers K=> Sound card support 〈*〉 Advanced Linux Sound Architecture 4 <*k> ALSA for SoC audio support Set audio support for HDMI(HDMI use SPDIF Ki>SoC I2S Audio support for rockchip- RK616 如果有使用 jetta的COEC功能,需要配上该选项 如果在HDMI的时候,开启了12M信号重建功能,HDMI状态下的音频要用 SPDIE实现,所以要选中 hdMI use SPdiF选项 (5)MIPI配置 如果使用MIPI接口,需要配置下面选项 Device drivers Graphics support K*) Frame buffer support for Rockchip > [* RockChip display transmitter support [* Rockchip MIPI DSI support 〈水>RK616( Jetta) mipi dsi support 4、板级配置 板级配置以 board-rk3168-tb.c为例,相关代码如下: if defined (CONFIG MFD RK616 #include <linux/mfd/rk616h>//head file tender #if defined(CONFIG MFD RK616) #define RK616 RST Pin RK30 PIN3 PB2 tdefine RK616 PWREN PIN RK3O PINO PA3 tdefine rK616 SCl rate (100*1000) //12c scl rate staticint rk616 power on init(void) int ret if(RK616 PWREN PIN ! INVALID GPIO ret- gpio request(RK616 PWREN PIN, rk616 pwren") f(ret) printk(Kern err rk616 pwrengpio request fail\n") e⊥se gpio direction output(RK616 PWREN PIN, GPIO HIGH) 5 if (RK616 RST PIN ! INVALID GPIO rel- gpio request(RK616 RST PIN, rk616 resel") if (ret printk (Kern errrk616 reset gpio request fail\n") e⊥se gpio direction output(RK616 RST PIN, GPIO HIGI InSlee gpio direction output(RK616 RST PIN, GPIO LOW) sleep (10) gpio set value(rK616 RST PIN, GPIO HIGH) return O staticint rk616 power deinit(void gpio set value(rK616 PWREN PIN, GPIO LoW) gpio set value(rK616 RST PIN, GPIo Low) gpio free(rK616 PWREN PIn gpio free(rK616 RST PIn) return staticstruct rk616 platform data rk616 pdata =[ power init= rk616 power on init power deinit= rk616 power reinit scI rate RK616 SCL RATE I cdo func- INPUT //port Icdo as input I cd1 func= INPUT //port Icdl as input lvds ch nr=1 /the number of used Ivds channel hdmi irg =rK30 PIN2 PD6 spk ctl gpio= RK30 PIN2 PD7 np_ctl gpio-RK30 PIN2 PD7 tendil 6 # fdef CONFIG I2C4 RK30 staticstruct i2c board info initdata i2c4 info[ #if defined (CONFIG MFD RK616) type rk616", addr 0x50 flags platform data= &rk616 pdata, tendil tendif 其中RK616 RST PIN、RK616 PWREN PIN为 Jetta复位和电源控制pin脚, 需要根据硬件设计进行相应的定义。 RK616 SCL RATE是I2C通信的速率定义,默认设置为100k,如果板子质量 不好,导致I2C通信出错,可以相应降低速率 rk616 power on Init和rk616 power reinit是 jetta对应的上电和下电 控制函数。它们分别在系统启动和关机的时候被调用。如果硬件上有特殊的设计, 可以根据实际需要调整这两个函数。 hdmi irg是HDMI检测中断引脚,如果该值定义为对应的GPI0pin脚,则 使用中断的方式检测IDI插拔,如果定义为 INVALID GPI0则使用轮询的方式检 测HDMI插拔。 k ctl gpio为 codec speaker输出使能管脚 hυ ctl gpio是耳机输出使能管脚。 lcd0func、lcd1func、 lvds ch nr为显示相关的配置选项。这个需要根 据硬件连接和显示需要进行相关设置。 Jetta显小系统框架图如图(1)所小。 7 LCD RGB SCALER LVDS/ RGB LCDO M⊥PI 图(1) Jetta显示系统框图 如第一部分概述所描述, Jetta内部集成∫两个LCD口(ICDO、LCD1), 个LDS/RGB复用接口,一个MIPI接口,一个HDMI接口。为软硬件提供了灵活 的设计支持 其中LCD0是单向接口,只接收主控输出的RGB数据,LCD1为双向接口,可 以接收主控输岀的RGB数据,还可以作为输岀口,输出数据给RGB接口的屏幕。 所以我们在显示上有两种实现方案 (1)双LCDC实现双显,显示通路如下 LCDl—》MUX2——》HDMI LCDO——》MUX1——》LVDS/MIPI 2)一个LCDC加 scaler实现双显,这个根据屏幕接的位置,有两种显 示通路 a.屏幕接在LVDS或者MIPI接口上 LCD——》MUX2——》HDMI LCDO——》MUXO——》 SCALER一—》MX1——》LWDS/MIPI b.RGB屏幕接在LCDI上 LCD0——》MUX2——》HDMI LCD0——》MUXO——》 SCALER——》MUX1——》LCD1/RGB 对于这种使用 scaler实现双显的方案,需要使用 jetta scaler config 工具计算各种HDMI分辨率下对应的pll、 scaler配置参数。然后填写到屏幕配 置文件中,可参考86v的屏幕配置文件,或者RK30SDK板子上面的屏幕配置文 8 件1cdb0lew05.C. LwDS接口支持双通道和单通道LVDS,该选项通过 lvds ch nr配置,对于 使用单通道LⅦDS的屏幕,该值设置为1,对于使用双通道LVDS的屏幕,改值设 置为2,如果该接口不使用则设置为0。在使用单通道LⅦDS的时候,只能使用 lvds的 channe0。 LCD0和LCD的使用情况和功能,通过1 cdo func和 lcdi func设置。 由于LCD0是单冋接口,所以如果LCD0有和主控的LCDC相连接,则LCD0O 设置为ⅠNPUT,如果LCDO没有和主控的LCDC相连接,则设置为 UNUSED,即未使 用 LCDⅠ口是双问口,所以LCDl口有三种值,如果LCDl和主控的LCDC相连接, 则LCDl作为输入口,接收主控输出的RGB数据,则LCD应设置为ⅠNPUT。如果 LCD1口外接RGB屏幕,则LCD1作为输出口,他把LCD0口输入的数据输出到RGB 屏幕,LCDl应设置为 OUTPUT。如果LCDl没有使用,则设置为 UNUSED。 另外,对于使用刭 jetta的LWDS或者RGB接口的项日,需要在屏幕配置文 件中的 set lcd info函数中做如下配置: Hif defined ( conFIG RK610 Lvds) defined (CONFIG RK616 LVDS) screen->screen set= rk610 lcd scaler set param fendi 更加详细的修改,请参考lcdb0lew05c中和 CONFIG RK616LWDS宏相关 的修改 5.系统启动相关log及 debug 下面是打开 Debug选项后的正常内核log L 0.542737 rk616-lvds rk616-Ivds: rk616 lvds probe success L 0. 542971] rk616 4-0050: rk616 core probe success! [0.543199 Switching to clocksource rk timer 0.518187] Switched to NOHz mode on CPU #0 L.549130 Switched to NOHz mode on CPL #2 0. 549152 Switched to NOHz mode on CPU#1 [.549165 Switched to NOHz mode on CPU #3 0.550305 Icdc1: reg phy base =0x1010e000, reg vir base: 0xf70a0000 [0.550387]b0:win0 [0.550392]fb1:win1 [0.550396]fb2:win2 0.550484 rk3188 Icdcl clk enable L 0.618344 rk 3188 Icdcl clk disable 0.647998]fb0:phy:90c00000ir:f8000000len:0xc00000 0.618259 rk fb register>>>>>fbO L 0.648538 rk fb register>>>>>fb1 648585 rk3188 Icdcl clk enable 0.648672」 I cdc 1:dclk:66500000fps:58 L 0.648707 rk616 4-0050: rk616 use dual input for dual display! 0.683986 rk616 4-0050: rk616 viro disable [0.723983]rk6164-0050:-k616 vifi disable 0.726122 rk616 4-0050: rk616 use single Ivds channel. L 2.038984] asoc: rk616-hifi <-> rk29 12s I mapping ok 2.043738 asoc: rk616-voice <- rk29 i2s 1 mapping ok L 2.044191 ALsa device list [2.044214]#0:RKRK616 错误log 1.563775 ALsa device list 1. 563793 No soundcards found 出现这种情况:如果12C没有报错,可以确定是 sound/soc/rk29/rkrk616.c中的: 232 static struct snd soc dai link rk dai[ 233 34 name=RK616 I2SI stream name =RK616 PCM 29 codec name=rk616 codec 40050 237 platform name=rockchip-audio cpu dai name rk29 12s I codec dai name=rk6l6-hifi 240 init= rk616 init 241 ops= &rk616 hifi ops 212 243 244 name=RK616 I2S2 245 stream name-RK616 PCM 246 codec name=rk616- codec. 4-0050 217 platform name rockchip-audio 248 cpu dai name=rk29 12s I 249 codec dai name=rk616-voice 250 ops-&rk616 voice ops 251 10 【实例截图】
【核心代码】
标签:
好例子网口号:伸出你的我的手 — 分享!
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论