On Fri, Nov 16, 2018 at 03:56:50PM -0800, Jolly Shah wrote:
> Base firmware node and clock child node binding are part of mainline kernel. 
> This patchset adds documentation to describe rest of the firmware child node 
> bindings. 
> Complete firmware DT node example is shown below for ease of understanding:

Shouldn't there be a fpga mgr node too? Called pcap IIRC.

> 
> firmware {
>       zynqmp_firmware: zynqmp-firmware {
>               compatible = "xlnx,zynqmp-firmware";
>               method = "smc";
>               #power-domain-cells = <1>;
>               #reset-cells = <1>;
> 
>               zynqmp_clk: clock-controller {
>                       #clock-cells = <1>;
>                       compatible = "xlnx,zynqmp-clk";
>                       clocks = <&pss_ref_clk>, <&video_clk>, 
> <&pss_alt_ref_clk>, <&aux_ref_clk>, <&gt_crx_ref_clk>;
>                       clock-names = "pss_ref_clk", "video_clk", 
> "pss_alt_ref_clk","aux_ref_clk", "gt_crx_ref_clk";
>               };
> 
>               zynqmp_power: zynqmp-power {
>                       compatible = "xlnx,zynqmp-power";
>                       interrupts = <0 35 4>;
>               };
> 
>               nvmem_firmware {
>                       compatible = "xlnx,zynqmp-nvmem-fw";
>                       #address-cells = <1>;
>                       #size-cells = <1>;
> 
>                       /* Data cells */
>                       soc_revision: soc_revision {
>                               reg = <0x0 0x4>;
>                       };
>               };
> 
>               afi0: afi0 {
>                       compatible = "xlnx,afi-fpga";
>                       config-afi = <0 2>, <1 1>, <2 1>;
>               };
> 
>               qspi: spi@ff0f0000 {

Why is this under firmware node?

>                       compatible = "xlnx,zynqmp-qspi-1.0";
>                       clock-names = "ref_clk", "pclk";
>                       clocks = <&misc_clk &misc_clk>;
>                       interrupts = <0 15 4>;
>                       interrupt-parent = <&gic>;
>                       num-cs = <1>;
>                       reg = <0x0 0xff0f0000 0x1000>,<0x0 0xc0000000 
> 0x8000000>;
>               };
> 
>               serdes: zynqmp_phy@fd400000 {

And this?

>                       compatible = "xlnx,zynqmp-psgtr";
>                       status = "okay";
>                       reg = <0x0 0xfd400000 0x0 0x40000>, <0x0 0xfd3d0000 0x0 
> 0x1000>,
>                               <0x0 0xff5e0000 0x0 0x1000>;
>                       reg-names = "serdes", "siou", "lpd";
> 
>                       lane0: lane@0 {
>                               #phy-cells = <4>;
>                       };
>                       lane1: lane@1 {
>                               #phy-cells = <4>;
>                       };
>                       lane2: lane@2 {
>                               #phy-cells = <4>;
>                       };
>                       lane3: lane@3 {
>                               #phy-cells = <4>;
>                       };
>               };
> 
>               pinctrl_uart1_default: uart1-default {

This goes under a pinctrl node.

>                       mux {
>                               groups = "uart0_4_grp";
>                               function = "uart0";
>                       };
> 
>                       conf {
>                               groups = "uart0_4_grp";
>                               slew-rate = <SLEW_RATE_SLOW>;
>                               io-standard = <IO_STANDARD_LVCMOS18>;
>                       };
> 
>                       conf-rx {
>                               pins = "MIO18";
>                               bias-high-impedance;
>                       };
> 
>                       conf-tx {
>                               pins = "MIO19";
>                               bias-disable;
>                               schmitt-cmos = <PIN_INPUT_TYPE_CMOS>;
>                       };
>               };
>               zynqmp-r5-remoteproc@0 {

Wrong unit-address and this doesn't belong here.

>                       compatible = "xlnx,zynqmp-r5-remoteproc-1.0";

'remoteproc' is what the h/w block is called?

>                       reg = <0x0 0xFFE00000 0x0 0x10000>,
>                               <0x0 0xFFE20000 0x0 0x10000>,
>                               <0x0 0xff340000 0x0 0x100>;
>                       reg-names = "tcm_a", "tcm_b", "ipi";
>                       dma-ranges;
>                       core_conf = "split0";
>                       memory-region = <&rproc_0_fw_reserved>,
>                                       <&rproc_0_dma_reserved>;
>                       tcm-pnode-id = <0xf>, <0x10>;
>                       rpu-pnode-id = <0x7>;
>                       interrupt-parent = <&gic>;
>                       interrupts = <0 29 4>;
>               };
>       };
> };

Reply via email to