[U-Boot] [PATCH 1/2] ARM: dts: zynq: Update dts for Z-turn board

Alexander Graf agraf at suse.de
Wed Mar 14 13:09:29 UTC 2018


On 03/14/2018 02:05 PM, Michal Simek wrote:
> On 13.3.2018 22:21, Alexander Graf wrote:
>>
>> On 13.03.18 21:35, tossel at gmail.com wrote:
>>> From: Anton Gerasimov <tossel at gmail.com>
>>>
>>> Delete devices implemented in PL, stylistic changes.
>>>
>>> Signed-off-by: Anton Gerasimov <tossel at gmail.com>
>>> ---
>>>   arch/arm/dts/zynq-zturn-myir.dts | 64 ++++++++--------------------------------
>>>   1 file changed, 13 insertions(+), 51 deletions(-)
>>>
>>> diff --git a/arch/arm/dts/zynq-zturn-myir.dts b/arch/arm/dts/zynq-zturn-myir.dts
>>> index a5ecfcc1d7..b6661d0205 100644
>>> --- a/arch/arm/dts/zynq-zturn-myir.dts
>>> +++ b/arch/arm/dts/zynq-zturn-myir.dts
>>> @@ -1,3 +1,4 @@
>>> +// SPDX-License-Identifier: GPL-2.0
>>>   /*
>>>    *  Copyright (C) 2015 Andrea Merello <adnrea.merello at gmail.com>
>>>    *  Copyright (C) 2017 Alexander Graf <agraf at suse.de>
>>> @@ -6,87 +7,49 @@
>>>    *  Copyright (C) 2011 - 2014 Xilinx
>>>    *  Copyright (C) 2012 National Instruments Corp.
>>>    *
>>> - * This software is licensed under the terms of the GNU General Public
>>> - * License version 2, as published by the Free Software Foundation, and
>>> - * may be copied, distributed, and modified under those terms.
>>> - *
>>> - * This program is distributed in the hope that it will be useful,
>>> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
>>> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>>> - * GNU General Public License for more details.
>>>    */
>>> +
>>>   /dts-v1/;
>>>   /include/ "zynq-7000.dtsi"
>>>   
>>>   / {
>>>   	model = "Zynq Z-Turn MYIR Board";
>>> -	compatible = "xlnx,zynq-7000";
>>> +	compatible = "myir,zynq-zturn", "xlnx,zynq-7000";
>> ack.
>>
>>>   
>>>   	aliases {
>>>   		ethernet0 = &gem0;
>>>   		serial0 = &uart1;
>>>   		serial1 = &uart0;
>>> -		spi0 = &qspi;
>>> -		mmc0 = &sdhci0;
>>>   	};
>>>   
>>> -	memory {
>>> +	memory at 0 {
>> Why?
> node with regs should have @number. DTC is checking that W=1.
>
>>>   		device_type = "memory";
>>>   		reg = <0x0 0x40000000>;
>>>   	};
>>>   
>>>   	chosen {
>>> -		stdout-path = "serial0:115200n8";
>> Nack. By default graphical output is quite unusable on this board, so we
>> want to output to serial.
>>
>> If your Linux submitted device tree doesn't contain this part, please
>> fix it there.
>>
>>> +		bootargs = "console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rootwait";
>> This is even worse. Please don't prepopulate any bootargs, otherwise
>> people may end up assuming that they're actually getting used.
>>
>>>   	};
>>>   
>>>   	gpio-leds {
>>>   		compatible = "gpio-leds";
>>> -		led_r {
>>> -			label = "led_r";
>>> -			gpios = <&gpio0 0x72 0x1>;
>>> -			default-state = "on";
>>> -			linux,default-trigger = "heartbeat";
>>> -		};
>>> -
>>> -		led_g {
>>> -			label = "led_g";
>>> -			gpios = <&gpio0 0x73 0x1>;
>>> -			default-state = "on";
>>> -			linux,default-trigger = "heartbeat";
>>> -		};
>>> -
>>> -		led_b {
>>> -			label = "led_b";
>>> -			gpios = <&gpio0 0x74 0x1>;
>>> -			default-state = "on";
>>> -			linux,default-trigger = "heartbeat";
>>> -		};
>> Why remove them? They're hard wired on the board, no?
> zynq has 54 MIO and all numbers above are routed via PL. It means this
> depends on PL.
>
>
>>> -
>>> -		usr_led1 {
>>> -			label = "usr_led1";
>>> +		usr-led1 {
>>> +			label = "usr-led1";
>>>   			gpios = <&gpio0 0x0 0x1>;
>>>   			default-state = "off";
>>> -			linux,default-trigger = "none";
>>>   		};
>>>   
>>> -		usr_led2 {
>>> -			label = "usr_led2";
>>> +		usr-led2 {
>>> +			label = "usr-led2";
>>>   			gpios = <&gpio0 0x9 0x1>;
>>>   			default-state = "off";
>>> -			linux,default-trigger = "none";
>>>   		};
>>>   	};
>>>   
>>> -	gpio-beep {
>>> -		compatible = "gpio-beeper";
>>> -		label = "pl-beep";
>>> -		gpios = <&gpio0 0x75 0x0>;
>>> -	};
>> This one is in PL, so ack.
>>
>>> -
>>>   	gpio-keys {
>>>   		compatible = "gpio-keys";
>>> -		#address-cells = <0x1>;
>>> -		#size-cells = <0x0>;
>>> +		#address-cells = <1>;
>>> +		#size-cells = <0>;
>> ack
>>
>>>   		autorepeat;
>>>   		K1 {
>>>   			label = "K1";
>>> @@ -100,7 +63,6 @@
>>>   
>>>   &clkc {
>>>   	ps-clk-frequency = <33333333>;
>>> -	fclk-enable = <0xf>;
>> Why?
> fclk-enable is enabling clocks for PL. It exactly means enable all 4
> clocks to PL which is PL dependent that's why it shouldn't be here.

IIRC on my Z-Turn, I had to take a PL clock back into the PS as AXI 
reference clock. See "Connect clocks" here:

   https://wiki.hackerspace.pl/projects:zturn-hackers:helloworld

So we need to have the PL clock enabled, no? Or is that only needed for 
PL AXI peripherals?


Alex



More information about the U-Boot mailing list