On 23 April 2015 at 03:20, Mark Rutland <mark.rutland@xxxxxxx> wrote: > Hi Matthieu, > >> + main_funnel@20040000 { >> + compatible = "arm,coresight-funnel", "arm,primecell"; >> + reg = <0 0x20040000 0 0x1000>; >> + >> + clocks = <&soc_smc50mhz>; >> + clock-names = "apb_pclk"; >> + ports { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + port@0 { >> + reg = <0>; >> + main_funnel_out_port: endpoint { >> + remote-endpoint = >> + <&etf_in_port>; >> + }; >> + }; >> + >> + port@1 { >> + reg = <0>; >> + main_funnel_in_port0: endpoint { >> + slave-mode; >> + remote-endpoint = >> + <&A57_funnel_out_port>; >> + }; >> + }; >> + >> + port@2 { >> + reg = <1>; >> + main_funnel_in_port1: endpoint { >> + slave-mode; >> + remote-endpoint = <&A53_etm0_out_port>; >> + }; >> + }; > > What's going on with these reg properties? They aren't matched with > their nodes' unit-addresses, and the same reg is reused by multiple > nodes. That doesn't make sense to me. > > Is the mismatch deliberate (against DT conventions), or is this > mistaken? Thanks for the review. Coresight blocks have input and output ports and I use (and used [1]) the reg property to label the physical ports as found on device itself. Above, "port@0" doesn't have a "slave-mode" property and as such is output port "0". "port@1" and "port@2" have a "slave-mode" property and thus are input port "0" and "1", as indicated by their reg properly. [1]. http://lxr.free-electrons.com/source/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts#L426 Mathieu > > Likewise for the other funnels. > > Mark -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html