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 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"; + }; + + 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; + }; + + 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 { + compatible = "samsung,secure-firmware"; + reg = <0x02073000 0x1000>; + }; + + xrtcxti: xrtcxti { + compatible = "fixed-clock"; + 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 { + status = "okay"; + samsung,polling-mode; + clock-frequency = <100000>; + + s2mpa01_pmic@66 { + 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"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <1400000>; + regulator-always-on; + regulator-boot-on; + regulator-ramp-delay = <12000>; + }; + + 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"; + 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"; + 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"; + 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"; + 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)"; + 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 */ + 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>; +}; + +/* mmc1 is connected to J1 for the SDIO WiFi */ + +&mmc_2 { + status = "okay"; + cap-sd-highspeed; + 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