在设备树中width-mm什么意思
时间: 2024-03-11 11:49:31 浏览: 173
在设备树中,"width-mm" 是一个属性(property),用于描述一个设备或者一个设备的某个部分的宽度,单位同样是毫米(mm)。它通常用于描述图形设备(如显示器、摄像头等)的显示区域的尺寸,以便系统能够正确地显示图像内容。在设备树的节点中,可以通过添加 "width-mm" 属性及其值来进行描述。例如:
```
display_panel {
compatible = "acme,panel";
width-mm = <300>;
height-mm = <200>;
...
};
```
这里的 "width-mm" 属性值为 300,表示显示面板的宽度为 300 毫米。
相关问题
DMA读取DDR的设备树配置
在设备树中配置DMA读取DDR需要做以下几步:
1. 配置DMA控制器节点
在设备树中配置一个DMA控制器节点,例如:
```
dma@f8003000 {
compatible = "xlnx,zynq-dma-1.00.a";
reg = <0xf8003000 0x1000>;
interrupts = <0 30 4>;
xlnx,device-id = <0x0>;
xlnx,include-sg ;
xlnx,sg-length-width = <0x10>;
dma-channel@40400000 {
compatible = "xlnx,axi-dma-mm2s-channel";
interrupts = <0 30 4>;
xlnx,datawidth = <0x20>;
xlnx,device-id = <0x0>;
xlnx,max-transfer-size = <0x800000>;
xlnx,sg-length-offset = <0x4>;
xlnx,scatter-gather-enable;
xlnx,include-dre;
};
};
```
2. 配置DDR控制器节点
在设备树中配置一个DDR控制器节点,例如:
```
ddr@3ed00000 {
compatible = "xlnx,zynq-ddr-3.10.a";
reg = <0x3ed00000 0x10000>;
clocks = <&clkc 12>;
clock-names = "ddrc";
phys = <&ps7_ddr_0>;
memory-controller {
device_type = "memory-controller";
reg = <0x0 0x10000>;
xlnx,ddr-phyclock-800mhz;
xlnx,ddr-num-ranks = <0x1>;
xlnx,ddr-memory-depth = <0x10000000>;
xlnx,ddr-row-width = <0x14>;
xlnx,ddr-bank-width = <0x3>;
xlnx,ddr-data-width = <0x40>;
xlnx,ddr-cas-latency = <0x4>;
xlnx,ddr-bank-groups = <0x1>;
xlnx,ddr-timing = <0x0000305a 0x00001d18 0x0000018e 0x00000030>;
xlnx,ddr-calibration = <0x0000016e 0x00000080 0x00000084>;
xlnx,ddr-device-id = <0x1>;
};
};
```
3. 配置DMA读取节点
在设备树中配置一个DMA读取节点,例如:
```
dma_read@43c00000 {
compatible = "xlnx,dma-read";
reg = <0x43c00000 0x10000>;
interrupts = <0 53 4>;
xlnx,device-id = <0x0>;
xlnx,dma-channel = <&dma 0>;
xlnx,ddr-address = <0x3ed00000>;
xlnx,ddr-length = <0x1000000>;
};
```
其中,`xlnx,dma-channel`属性需要指定DMA控制器节点中的DMA通道节点,`xlnx,ddr-address`属性需要指定DDR控制器节点的物理地址,`xlnx,ddr-length`属性需要指定读取的数据长度。
drm_of_find_panel_or_bridge函数原型和读取的设备树节点实例
函数原型:
```
struct device_node *drm_of_find_panel_or_bridge(struct device *dev, int index,
int type, int *return_type,
const char **name, size_t *len);
```
其中,`struct device_node` 是 Linux 内核中表示设备树节点的结构体。
设备树节点实例:
以下是一个例子,展示了设备树中的一个面板节点的定义:
```
panel {
compatible = "my-panel";
reg = <0x0>;
width-mm = <200>;
height-mm = <150>;
refresh-rate = <60>;
port {
panel_in: endpoint {
remote-endpoint = <&bridge_out>;
};
};
};
```
在这个例子中,`panel` 是一个面板节点,它具有以下属性:
- `compatible`: 表示面板的兼容性字符串,用于驱动程序匹配。
- `reg`: 表示面板的寄存器地址。
- `width-mm` 和 `height-mm`: 表示面板的物理尺寸。
- `refresh-rate`: 表示面板的刷新率。
此外,`port` 是一个节点,它表示面板的输入端口。在这个例子中,它定义了一个名为 `panel_in` 的输入端点,并指定了其远程端点为 `bridge_out`。
阅读全文