• 周六. 5月 3rd, 2025

rk3288 — USB USB-PHY DTS配置

关键词: rk3288; rockchip,rk3188-dwc-control-usb; rockchip,rk3288-dwc-control-usb; 

rk3288 — USB USB-PHY DTS配置

完整版 rk3288 usb dwc 配置:可参考以下dts文件:

veyron版本:rk3288-veyron-minnie.dts

FPGA版本:rk3288-fpga.dts

1、必须设置的属性值:

 - compatible : 根据主控芯片可以设置成 "rockchip,rk3188-dwc-control-usb"
   或者 "rockchip,rk3288-dwc-control-usb"。
 - reg : 设置寄存器物理基地址,以及寄存器的空间大小,这里会设置,USB-PHY GRF寄存器,包括GRF_SOC_STATUSX和GRF_UOCX_BASE寄存器
 - reg-names : 设置寄存器的名字与reg对应。
 - interrupts : 设置中断ID号
 - interrupt-names : 设置中断名称
 - clocks : 设置clock id. 与clock-names 一一对应。
 - clock-names : 设置clock 的名称。

2、设置usb_bc 子节点:

 - compatible : 子节点的compatible取 "synopsys,phy", "inno,phy" 或者
   "rockchip,ctrl" 。

然后设置以下属性值 :

 - rk_usb,bvalid
 - rk_usb,dcdenb
 - rk_usb,dcdenb
 - rk_usb,vdatdetenb
 - rk_usb,chrgsel
 - rk_usb,chgdet
 - rk_usb,fsvminus
 - rk_usb,fsvplus
 - rk_usb,line
 - rk_usb,softctrl
 - rk_usb,opmode
 - rk_usb,xcvrsel
 - rk_usb,termsel

以上所有的值,都采用u32整数。

3、以rk3288为例:

 - RK3288

	dwc_control_usb: dwc-control-usb@ff770284 {
		compatible = "rockchip,rk3288-dwc-control-usb";
		reg = <0xff770284 0x04>, <0xff770288 0x04>,
		      <0xff7702cc 0x04>, <0xff7702d4 0x04>,
		      <0xff770320 0x14>, <0xff770334 0x14>,
		      <0xff770348 0x10>, <0xff770358 0x08>,
		      <0xff770360 0x08>;
		reg-names = "GRF_SOC_STATUS1" ,"GRF_SOC_STATUS2",
			    "GRF_SOC_STATUS19", "GRF_SOC_STATUS21",
			    "GRF_UOC0_BASE", "GRF_UOC1_BASE",
			    "GRF_UOC2_BASE", "GRF_UOC3_BASE",
			    "GRF_UOC4_BASE";
		interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-names = "otg_id",
				  "otg_bvalid",
				  "otg_linestate",
				  "host0_linestate",
				  "host1_linestate";
		clocks = <&clk_gates7 9>, <&usbphy_480m>,
			 <&otgphy1_480m>, <&otgphy2_480m>;
		clock-names = "hclk_usb_peri", "usbphy_480m",
			      "usbphy1_480m", "usbphy2_480m";

		usb_bc{
			compatible = "synopsys,phy";
			/* offset bit mask */
			rk_usb,bvalid     = <0x288 14 1>;
			rk_usb,dcdenb     = <0x328 14 1>;
			rk_usb,vdatsrcenb = <0x328  7 1>;
			rk_usb,vdatdetenb = <0x328  6 1>;
			rk_usb,chrgsel    = <0x328  5 1>;
			rk_usb,chgdet     = <0x2cc 23 1>;
			rk_usb,fsvminus   = <0x2cc 25 1>;
			rk_usb,fsvplus    = <0x2cc 24 1>;
		};
		usb_uart {
			status = "okay";
		};
	}; 

发表评论

您的电子邮箱地址不会被公开。