Re: [PATCH 17/17] ARM: dts: exynos: Add DTS file for exynos5260-rexred

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jan 28, 2019 at 11:07:00PM +0000, Stuart Menefy wrote:
> Add support for the RexNos REX-RED board which is based on the
> Exynos5260.
> 
> Signed-off-by: Stuart Menefy <stuart.menefy@xxxxxxxxxxxxxxxx>
> ---
>  .../bindings/arm/samsung/samsung-boards.txt        |   2 +
>  .../devicetree/bindings/vendor-prefixes.txt        |   1 +
>  arch/arm/boot/dts/Makefile                         |   1 +
>  arch/arm/boot/dts/exynos5260-rexred.dts            | 396 +++++++++++++++++++++
>  4 files changed, 400 insertions(+)
>  create mode 100644 arch/arm/boot/dts/exynos5260-rexred.dts
>

Hi Stuart,

I thought you are going to resend remaining patches because you already
started to send v2 of some of them. If not, let me do a quick review
here so it will not get lost.

> diff --git a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt
> index 56021bf2a916..f7dc2f9e3e57 100644
> --- a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt
> +++ b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt
> @@ -70,6 +70,8 @@ Required root node properties:
>  				    Octa board.
>  	- "insignal,origen"       - for Exynos4210-based Insignal Origen board.
>  	- "insignal,origen4412"   - for Exynos4412-based Insignal Origen board.
> +  * Rexnos
> +	- "rexnos,rexred"	  - for Exynos5260-based Rexnos RexRed board.
>  
>  
>  Optional nodes:
> diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
> index 389508584f48..0666385ec11e 100644
> --- a/Documentation/devicetree/bindings/vendor-prefixes.txt
> +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
> @@ -328,6 +328,7 @@ raydium	Raydium Semiconductor Corp.
>  rda	Unisoc Communications, Inc.
>  realtek Realtek Semiconductor Corp.
>  renesas	Renesas Electronics Corporation
> +rexnos	REXNOS Co., Ltd
>  richtek	Richtek Technology Corporation
>  ricoh	Ricoh Co. Ltd.
>  rikomagic	Rikomagic Tech Corp. Ltd
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index bd40148a15b2..2c6190e0834b 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -191,6 +191,7 @@ dtb-$(CONFIG_ARCH_EXYNOS5) += \
>  	exynos5250-snow.dtb \
>  	exynos5250-snow-rev5.dtb \
>  	exynos5250-spring.dtb \
> +	exynos5260-rexred.dtb \
>  	exynos5260-xyref5260.dtb \
>  	exynos5410-odroidxu.dtb \
>  	exynos5410-smdk5410.dtb \
> diff --git a/arch/arm/boot/dts/exynos5260-rexred.dts b/arch/arm/boot/dts/exynos5260-rexred.dts
> new file mode 100644
> index 000000000000..46187ad0c696
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos5260-rexred.dts
> @@ -0,0 +1,396 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * RexNos REX-RED Exynos5260 board device tree source
> + *
> + * Copyright (c) 2018 Garrison Technology Limited
> + * derived from exynos5260-xyref5260.dts which was:
> + * Copyright (c) 2013 Samsung Electronics Co., Ltd.
> + */
> +
> +/dts-v1/;
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +#include "exynos5260.dtsi"
> +
> +/ {
> +	model = "Rexnos RexRed board based on EXYNOS5260";
> +	compatible = "rexnos,rexred", "samsung,exynos5260", "samsung,exynos5";
> +
> +	memory@20000000 {
> +		device_type = "memory";
> +		reg = <0x20000000 0x80000000>;
> +	};
> +
> +	chosen {
> +		bootargs = "console=ttySAC2,115200";

Please use the stdout-path string (with baudrate, like in Arndale).

> +	};
> +
> +	gpio_keys {
> +		compatible = "gpio-keys";
> +
> +		wakeup {
> +			label = "SW1";
> +			gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_WAKEUP>;
> +			wakeup-source;
> +		};
> +
> +		home {
> +			label = "S1";
> +			gpios = <&gpx0 3 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_HOME>;
> +			wakeup-source;

All keys below do not look like typical wakeup sources.

> +		};
> +
> +		back {
> +			label = "S2";
> +			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_BACK>;
> +			wakeup-source;
> +		};
> +
> +		menu {
> +			label = "S3";
> +			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_MENU>;
> +			wakeup-source;
> +		};
> +
> +		up {
> +			label = "S4";
> +			gpios = <&gpx2 4 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_UP>;
> +			wakeup-source;
> +		};
> +
> +		down {
> +			label = "S5";
> +			gpios = <&gpx2 5 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_DOWN>;
> +			wakeup-source;
> +		};
> +	};
> +
> +	fin_pll: xxti {
> +		compatible = "fixed-clock";
> +		clock-frequency = <24000000>;
> +		clock-output-names = "fin_pll";
> +		#clock-cells = <0>;
> +	};
> +
> +	firmware@02073000 {

No leading zeros. Compile DTS with W=1, so it will print you the
warnings.

> +		compatible = "samsung,secure-firmware";
> +		reg = <0x02073000 0x1000>;
> +	};
> +
> +	xrtcxti: xrtcxti {
> +		compatible = "fixed-clock";

This should go from PMIC.

> +		clock-frequency = <32768>;
> +		clock-output-names = "xrtcxti";
> +		#clock-cells = <0>;
> +	};
> +};
> +
> +&pinctrl_0 {
> +	s2mpa01_irq: s2mpa01-irq {
> +		samsung,pins = "gpx0-2";
> +		samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
> +		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
> +		samaung,pin-drv = <EXYNOS5260_PIN_DRV_LV1>;
> +	};
> +};
> +
> +&uart0 {
> +	status = "okay";
> +};
> +
> +&uart1 {
> +	status = "okay";
> +};
> +
> +&uart2 {
> +	status = "okay";
> +};
> +
> +&uart3 {
> +	status = "okay";
> +};
> +
> +&hsi2c_0 {

Please put all the label-nodes (after root {}) in alphabetical order.

> +	status = "okay";
> +	samsung,polling-mode;

Not used binding.

> +	clock-frequency = <100000>;
> +
> +	s2mpa01_pmic@66 {

Node name - just pmic because it must be a generic name for class of
devices.

> +		compatible = "samsung,s2mpa01-pmic";
> +		reg = <0x66>;
> +		interrupt-parent = <&gpx0>;
> +		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&s2mpa01_irq>;
> +
> +		regulators {
> +			buck1_reg: BUCK1 {
> +				regulator-name = "vdd_mif range";

The name, just "vdd_mif". Space is unusual.

> +				regulator-min-microvolt = <600000>;
> +				regulator-max-microvolt = <1400000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-ramp-delay = <12000>;

This does not look like proper value for ramp delay. Please check if it
is really used.

> +			};
> +
> +			buck2_reg: BUCK2 {
> +				regulator-name = "vdd_eagle";
> +				regulator-min-microvolt = <600000>;
> +				regulator-max-microvolt = <1400000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-ramp-delay = <12000>;
> +			};
> +
> +			buck3_reg: BUCK3 {
> +				regulator-name = "vdd_int range";

Name - ditto... and in other places as well.

> +				regulator-min-microvolt = <600000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-ramp-delay = <12000>;
> +			};
> +
> +			buck4_reg: BUCK4 {
> +				regulator-name = "vdd_g3d range";
> +				regulator-min-microvolt = <600000>;
> +				regulator-max-microvolt = <1400000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-ramp-delay = <12000>;
> +			};
> +
> +			buck5_reg: BUCK5 {
> +				regulator-name = "must-be-on-buck5";

If you have datasheet - please give it proper name. If not, just "buck5"
and write a comment that it just has to be on.

> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-ramp-delay = <12000>;
> +			};
> +
> +			buck6_reg: BUCK6 {
> +				regulator-name = "vdd_kfc";
> +				regulator-min-microvolt = <600000>;
> +				regulator-max-microvolt = <1400000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-ramp-delay = <12000>;
> +			};
> +
> +			buck7_reg: BUCK7 {
> +				regulator-name = "vdd_disp range";
> +				regulator-min-microvolt = <600000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-ramp-delay = <1000>;
> +			};
> +
> +			buck8_reg: BUCK8 {
> +				regulator-name = "must-be-on-buck8";

Ditto name... and in other places as well.

Provide also constraints (voltage) or document why they have to be
missing.

> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-ramp-delay = <12000>;
> +			};
> +
> +			buck9_reg: BUCK9 {
> +				regulator-name = "must-be-on-buck9";
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-ramp-delay = <12000>;
> +			};
> +
> +			ldo1_reg: LDO1 {
> +				regulator-name = "must-be-on-ldo1";
> +				regulator-min-microvolt = <1000000>;
> +				regulator-max-microvolt = <1000000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo2_reg: LDO2 {
> +				regulator-name = "vddq_mmc2";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo3_reg: LDO3 {
> +				regulator-name = "vcc_1.8v_AP";

Don't mix lower case and uppercase, keep lower. The same in other
places.

> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo4_reg: LDO4 {
> +				regulator-name = "must-be-on-ldo4";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo5_reg: LDO5 {
> +				regulator-name = "must-be-on-ldo5";
> +				regulator-min-microvolt = <1000000>;
> +				regulator-max-microvolt = <1000000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo6_reg: LDO6 {
> +				regulator-name = "vcc_1.0v_MIPI";
> +				regulator-min-microvolt = <1000000>;
> +				regulator-max-microvolt = <1000000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo7_reg: LDO7 {
> +				regulator-name = "vcc_1.8v_MIPI";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo10_reg: LDO10 {
> +				regulator-name = "vddq_mmc01";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo11_reg: LDO11 {
> +				regulator-name = "vcc_3.3v_LCD";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo13_reg: LDO13 {
> +				regulator-name = "vmmc2";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +			};
> +
> +			ldo14_reg: LDO14 {
> +				regulator-name = "Main Camera IO (1.8V)";

Unify the name style with others.

> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo15_reg: LDO15 {
> +				regulator-name = "Camera Sensor (2.8V)";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo16_reg: LDO16 {
> +				regulator-name = "Main Camera AF (2.8V)";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo17_reg: LDO17 {
> +				regulator-name = "VT Camera Core (1.8V)";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo18_reg: LDO18 {
> +				regulator-name = "tsp_avdd_3.3v";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo21_reg: LDO21 {
> +				regulator-name = "usb_vdd_3.0";
> +				regulator-min-microvolt = <3000000>;
> +				regulator-max-microvolt = <3000000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo22_reg: LDO22 {
> +				regulator-name = "usb_vdd_3.3";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo19_reg: LDO19 {
> +				regulator-name = "vcc_3.0_evt1";
> +				regulator-min-microvolt = <3000000>;
> +				regulator-max-microvolt = <3000000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo20_reg: LDO20 {
> +				regulator-name = "vcc_1.8_evt1";
> +				regulator-min-microvolt = <1800000>;
> +				regulator-max-microvolt = <1800000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo24_reg: LDO24 {
> +				regulator-name = "tsp_io range";
> +				regulator-min-microvolt = <2800000>;
> +				regulator-max-microvolt = <2800000>;
> +				regulator-always-on;
> +			};
> +
> +			ldo25_reg: LDO25 {
> +				regulator-name = "vcc_1.2v_cam";
> +				regulator-min-microvolt = <1200000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +			};
> +
> +			ldo26_reg: LDO26 {
> +				regulator-name = "vcc_1.2v_usb range";
> +				regulator-min-microvolt = <1200000>;
> +				regulator-max-microvolt = <1200000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +			};
> +		};
> +	};
> +};
> +
> +&mmc_0 {
> +	status = "okay";
> +	non-removable;
> +	cap-mmc-highspeed;
> +	supports-hs200-mode; /* 200 MHz */

Comment not needed.

> +	card-detect-delay = <200>;
> +	samsung,dw-mshc-ciu-div = <3>;
> +	samsung,dw-mshc-sdr-timing = <0 4>;
> +	samsung,dw-mshc-ddr-timing = <0 2>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&sd0_rdqs &sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
> +	bus-width = <8>;
> +	vqmmc-supply = <&ldo10_reg>;

Please add vmmc-supply. Probably you also need mmc-hs200-1_8v.

> +};
> +
> +/* mmc1 is connected to J1 for the SDIO WiFi */
> +
> +&mmc_2 {
> +	status = "okay";
> +	cap-sd-highspeed;

Optionally you might want to check sd-uhs-sdr50, sd-uhs-ddr50 and few
others. However this might require User Manual.

Best regards,
Krzysztof

> +	card-detect-delay = <200>;
> +	samsung,dw-mshc-ciu-div = <3>;
> +	samsung,dw-mshc-sdr-timing = <2 3>;
> +	samsung,dw-mshc-ddr-timing = <1 2>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
> +	bus-width = <4>;
> +	disable-wp;
> +	vmmc-supply = <&ldo13_reg>;
> +	vqmmc-supply = <&ldo2_reg>;
> +};
> -- 
> 2.13.6
> 



[Index of Archives]     [Linux SoC Development]     [Linux Rockchip Development]     [Linux for Synopsys ARC Processors]    
  • [Linux on Unisoc (RDA Micro) SoCs]     [Linux Actions SoC]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Linux SCSI]     [Yosemite News]

  •   Powered by Linux