linux/arch/arm/boot/dts/st/ste-ux500-samsung-golden.dts
Rob Herring 724ba67515 ARM: dts: Move .dts files to vendor sub-directories
The arm dts directory has grown to 1559 boards which makes it a bit
unwieldy to maintain and use. Past attempts stalled out due to plans to
move .dts files out of the kernel tree. Doing that is no longer planned
(any time soon at least), so let's go ahead and group .dts files by
vendors. This move aligns arm with arm64 .dts file structure.

There's no change to dtbs_install as the flat structure is maintained on
install.

The naming of vendor directories is roughly in this order of preference:
- Matching original and current SoC vendor prefix/name (e.g. ti, qcom)
- Current vendor prefix/name if still actively sold (SoCs which have
  been aquired) (e.g. nxp/imx)
- Existing platform name for older platforms not sold/maintained by any
  company (e.g. gemini, nspire)

The whole move was scripted with the exception of MAINTAINERS and a few
makefile fixups.

Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Acked-by: Michal Simek <michal.simek@amd.com> #Xilinx
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Acked-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Paul Barker <paul.barker@sancloud.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Acked-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Acked-by: Heiko Stuebner <heiko@sntech.de>
Acked-by: Wei Xu <xuwei5@hisilicon.com> #hisilicon
Acked-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Nick Hawkins <nick.hawkins@hpe.com>
Acked-by: Baruch Siach <baruch@tkos.co.il>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Acked-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Acked-by: Peter Rosin <peda@axentia.se>
Acked-by: Jesper Nilsson <jesper.nilsson@axis.com>
Acked-by: Sudeep Holla <sudeep.holla@arm.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com> #broadcom
Acked-by: Manivannan Sadhasivam <mani@kernel.org>
Reviewed-by: Jisheng Zhang <jszhang@kernel.org>
Acked-by: Patrice Chotard <patrice.chotard@foss.st.com>
Acked-by: Romain Perier <romain.perier@gmail.com>
Acked-by: Alexandre TORGUE <alexandre.torgue@st.com>
Acked-by: Shawn Guo <shawnguo@kernel.org>
Acked-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Acked-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Rob Herring <robh@kernel.org>
2023-06-21 11:39:50 -06:00

734 lines
16 KiB
Plaintext

// SPDX-License-Identifier: GPL-2.0-only
/dts-v1/;
#include "ste-db8500.dtsi"
#include "ste-ab8505.dtsi"
#include "ste-dbx5x0-pinctrl.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
/*
* Note: This device tree cannot be booted directly with the Samsung bootloader.
* You need an intermediate, device-tree compatible bootloader
* that locks the L2 cache. Otherwise the kernel will crash after decompression.
*
* There is a port of (mainline) U-Boot, see
* https://wiki.postmarketos.org/wiki/ST-Ericsson_NovaThor_U8500#U-Boot
*/
/ {
model = "Samsung Galaxy S III mini (GT-I8190)";
compatible = "samsung,golden", "st-ericsson,u8500";
chosen {
stdout-path = &serial2;
};
battery: battery {
compatible = "samsung,eb-l1m7flu";
};
thermal-zones {
battery-thermal {
/* This zone will be polled by the battery temperature code */
polling-delay = <0>;
polling-delay-passive = <0>;
thermal-sensors = <&bat_therm>;
trips {
battery-crit-hi {
temperature = <70000>;
hysteresis = <2000>;
type = "critical";
};
};
};
};
bat_therm: thermistor {
compatible = "samsung,1404-001221";
io-channels = <&gpadc 0x02>; /* BatTemp */
pullup-uv = <1800000>;
pullup-ohm = <230000>;
pulldown-ohm = <0>;
#thermal-sensor-cells = <0>;
};
i2c-gpio-0 {
compatible = "i2c-gpio";
sda-gpios = <&gpio2 14 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
scl-gpios = <&gpio2 13 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
pinctrl-names = "default";
pinctrl-0 = <&i2c_gpio_0_default>;
#address-cells = <1>;
#size-cells = <0>;
touchkey@20 {
compatible = "coreriver,tc360-touchkey";
reg = <0x20>;
vdd-supply = <&ab8500_ldo_aux4_reg>;
vcc-supply = <&ab8500_ldo_aux6_reg>;
interrupt-parent = <&gpio2>;
interrupts = <15 IRQ_TYPE_EDGE_FALLING>;
pinctrl-names = "default";
pinctrl-0 = <&touchkey_default>;
linux,keycodes = <KEY_MENU KEY_BACK>;
};
};
i2c-gpio-1 {
compatible = "i2c-gpio";
sda-gpios = <&gpio4 24 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
scl-gpios = <&gpio4 23 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
pinctrl-names = "default";
pinctrl-0 = <&i2c_gpio_1_default>;
#address-cells = <1>;
#size-cells = <0>;
magnetometer@c {
compatible = "alps,hscdtd008a";
reg = <0x0c>;
avdd-supply = <&ab8500_ldo_aux1_reg>;
dvdd-supply = <&ab8500_ldo_aux8_reg>;
};
};
soc {
/* External Micro SD card slot */
mmc@80126000 {
status = "okay";
arm,primecell-periphid = <0x10480180>;
max-frequency = <100000000>;
bus-width = <4>;
non-removable;
/*
* Unfortunately, there is no way to enable the UHS
* modes due to a limitation of the SD level translator:
* It will either translate to 2.9V or disconnect the
* DATA lines, so switching to 1.8V signal voltage fails.
*/
cap-sd-highspeed;
cap-mmc-highspeed;
st,sig-pin-fbclk;
full-pwr-cycle;
vmmc-supply = <&ab8500_ldo_aux3_reg>;
vqmmc-supply = <&sd_level_translator>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&mc0_a_2_default>;
pinctrl-1 = <&mc0_a_2_sleep>;
};
/* WLAN SDIO */
mmc@80118000 {
status = "okay";
arm,primecell-periphid = <0x10480180>;
max-frequency = <50000000>;
bus-width = <4>;
non-removable;
cap-sd-highspeed;
vmmc-supply = <&wl_reg_on>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&mc1_a_2_default>;
pinctrl-1 = <&mc1_a_2_sleep>;
#address-cells = <1>;
#size-cells = <0>;
wifi@1 {
compatible = "brcm,bcm4334-fmac", "brcm,bcm4329-fmac";
reg = <1>;
/* GPIO216 (WLAN_HOST_WAKE) */
interrupt-parent = <&gpio6>;
interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
interrupt-names = "host-wake";
pinctrl-names = "default";
pinctrl-0 = <&wlan_default>;
};
};
/* eMMC */
mmc@80005000 {
status = "okay";
arm,primecell-periphid = <0x10480180>;
max-frequency = <100000000>;
bus-width = <8>;
non-removable;
cap-mmc-highspeed;
mmc-ddr-1_8v;
no-sdio;
no-sd;
vmmc-supply = <&vmem_3v3>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&mc2_a_1_default>;
pinctrl-1 = <&mc2_a_1_sleep>;
};
/* BT UART */
serial@80120000 {
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&u0_a_1_default>;
pinctrl-1 = <&u0_a_1_sleep>;
bluetooth {
/* BCM4334B0 actually */
compatible = "brcm,bcm4330-bt";
/* GPIO222 (BT_VREG_ON) */
shutdown-gpios = <&gpio6 30 GPIO_ACTIVE_HIGH>;
/* GPIO199 (BT_WAKE) */
device-wakeup-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
/* GPIO97 (BT_HOST_WAKE) */
host-wakeup-gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&bluetooth_default>;
};
};
/* GPF UART */
serial@80121000 {
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&u1rxtx_a_1_default &u1ctsrts_a_1_default>;
pinctrl-1 = <&u1rxtx_a_1_sleep &u1ctsrts_a_1_sleep>;
};
/* Debugging console UART */
serial@80007000 {
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&u2rxtx_c_1_default>;
pinctrl-1 = <&u2rxtx_c_1_sleep>;
};
i2c@80004000 {
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&i2c0_a_1_default>;
pinctrl-1 = <&i2c0_a_1_sleep>;
proximity@44 {
compatible = "sharp,gp2ap002s00f";
reg = <0x44>;
/* GPIO146 (PS_INT) */
interrupt-parent = <&gpio4>;
interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
vdd-supply = <&ab8500_ldo_aux1_reg>;
vio-supply = <&ab8500_ldo_aux8_reg>;
pinctrl-names = "default";
pinctrl-0 = <&proximity_default>;
sharp,proximity-far-hysteresis = <0x40>;
sharp,proximity-close-hysteresis = <0x0f>;
};
};
i2c@80128000 {
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&i2c2_b_2_default>;
pinctrl-1 = <&i2c2_b_2_sleep>;
imu@68 {
compatible = "invensense,mpu6050";
reg = <0x68>;
/* GPIO206 (ACC_INT) */
interrupt-parent = <&gpio6>;
interrupts = <14 IRQ_TYPE_EDGE_RISING>;
mount-matrix = "0", "1", "0",
"-1", "0", "0",
"0", "0", "1";
vdd-supply = <&ab8500_ldo_aux1_reg>;
vddio-supply = <&ab8500_ldo_aux8_reg>;
pinctrl-names = "default";
pinctrl-0 = <&imu_default>;
};
};
i2c@80110000 {
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&i2c3_c_2_default>;
pinctrl-1 = <&i2c3_c_2_sleep>;
touchscreen@4a {
compatible = "atmel,maxtouch";
reg = <0x4a>;
/* GPIO218 (TSP_INT_1V8) */
interrupt-parent = <&gpio6>;
interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
/* VDDA is "analog supply", 2.57-3.47 V */
vdda-supply = <&ab8500_ldo_aux2_reg>;
/* VDD is "digital supply" 1.71-3.47V */
vdd-supply = <&ab8500_ldo_aux5_reg>;
pinctrl-names = "default";
pinctrl-0 = <&tsp_default>;
};
};
prcmu@80157000 {
ab8505 {
phy {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&usb_a_1_default>;
pinctrl-1 = <&usb_a_1_sleep>;
};
ab8500_fg {
line-impedance-micro-ohms = <36000>;
};
regulator {
ab8500_ldo_aux1 {
regulator-name = "sensor_3v";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
};
ab8500_ldo_aux2 {
regulator-name = "vreg_tsp_a3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
ab8500_ldo_aux3 {
regulator-name = "vdd_tf_2v91";
};
ab8500_ldo_aux4 {
regulator-name = "key_led_3.3v";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
ab8500_ldo_aux5 {
regulator-name = "vreg_tsp_1v8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
ab8500_ldo_aux6 {
regulator-name = "touch_key_2.2v";
regulator-min-microvolt = <2200000>;
regulator-max-microvolt = <2200000>;
};
ab8500_ldo_aux8 {
regulator-name = "sensor_1v8";
};
};
};
};
mcde@a0350000 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&dsi_default_mode>;
dsi@a0351000 {
panel@0 {
compatible = "samsung,s6e63m0";
reg = <0>;
max-brightness = <15>;
vdd3-supply = <&panel_reg_3v0>;
vci-supply = <&panel_reg_1v8>;
reset-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
/* ESD (electrostatic discharge) detection interrupt */
interrupt-parent = <&gpio2>;
interrupts = <18 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "esd";
pinctrl-names = "default";
pinctrl-0 = <&display_default_mode>;
};
};
};
};
gpio-keys {
compatible = "gpio-keys";
pinctrl-names = "default";
pinctrl-0 = <&gpio_keys_default>;
label = "GPIO Buttons";
volume-up {
label = "Volume Up";
/* GPIO67 (VOL_UP) */
gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEUP>;
};
volume-down {
label = "Volume Down";
/* GPIO92 (VOL_DOWN) */
gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
linux,code = <KEY_VOLUMEDOWN>;
};
home {
label = "Home";
/* GPIO91 (HOME_KEY) */
gpios = <&gpio2 27 GPIO_ACTIVE_LOW>;
linux,code = <KEY_HOMEPAGE>;
};
};
/* Richtek RT8515GQW Flash LED Driver IC */
flash {
compatible = "richtek,rt8515";
/* GPIO 140 */
enf-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
/* GPIO 141 */
ent-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
/*
* RFS is 16 kOhm and RTS is 100 kOhm giving
* the flash max current 343mA and torch max
* current 55 mA.
*/
richtek,rfs-ohms = <16000>;
richtek,rts-ohms = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&gpio_flash_default_mode>;
led {
function = LED_FUNCTION_FLASH;
color = <LED_COLOR_ID_WHITE>;
flash-max-timeout-us = <250000>;
flash-max-microamp = <343750>;
led-max-microamp = <55000>;
};
};
vibrator {
compatible = "gpio-vibrator";
/* GPIO195 (MOT_EN) */
enable-gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&vibrator_default>;
};
/* External LDO for eMMC */
vmem_3v3: regulator-vmem {
compatible = "regulator-fixed";
regulator-name = "vmem_3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
startup-delay-us = <200>;
/* GPIO223 (MEM_LDO_EN) */
gpio = <&gpio6 31 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-names = "default";
pinctrl-0 = <&mem_ldo_default>;
};
/* TI TXS0206-29 level translator for 2.9 V */
sd_level_translator: regulator-sd-level-translator {
compatible = "regulator-fixed";
regulator-name = "sd-level-translator";
regulator-min-microvolt = <2900000>;
regulator-max-microvolt = <2900000>;
startup-delay-us = <200>;
/* GPIO87 (TXS0206-29_EN) */
gpios = <&gpio2 23 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-names = "default";
pinctrl-0 = <&sd_level_translator_default>;
};
/*
* WL_REG_ON takes WLAN out of reset and enables the internal regulators.
* The voltage specified here is only used to determine the OCR mask,
* the BCM chip is actually connected directly to VBAT.
*/
wl_reg_on: regulator-wl-reg-on {
compatible = "regulator-fixed";
regulator-name = "wl-reg-on";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
startup-delay-us = <100000>;
/* GPIO215 (WLAN_EN) */
gpio = <&gpio6 23 GPIO_ACTIVE_HIGH>;
enable-active-high;
pinctrl-names = "default";
pinctrl-0 = <&wlan_en_default>;
};
/* MIC5366 GPIO-controlled regulator */
panel_reg_1v8: regulator-panel-1v8 {
compatible = "regulator-fixed";
regulator-name = "panel-fixed-supply";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
/* GPIO219 */
gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
startup-delay-us = <200>;
enable-active-high;
pinctrl-names = "default";
pinctrl-0 = <&panel_reg_default_mode>;
};
/* MIC5366 GPIO-controlled regulator */
panel_reg_3v0: regulator-panel-3v0 {
compatible = "regulator-fixed";
regulator-name = "panel-fixed-supply";
regulator-min-microvolt = <3000000>;
regulator-max-microvolt = <3000000>;
/* GPIO219 */
gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
startup-delay-us = <200>;
enable-active-high;
pinctrl-names = "default";
pinctrl-0 = <&panel_reg_default_mode>;
};
};
&pinctrl {
gpio-keys {
gpio_keys_default: gpio_keys_default {
golden_cfg1 {
pins = "GPIO67", /* VOL_UP */
"GPIO91", /* HOME_KEY */
"GPIO92"; /* VOL_DOWN */
ste,config = <&gpio_in_pu>;
};
};
};
i2c-gpio-0 {
i2c_gpio_0_default: i2c_gpio_0 {
golden_cfg1 {
pins = "GPIO77", /* TOUCHKEY_SCL */
"GPIO78"; /* TOUCHKEY_SDA */
ste,config = <&gpio_in_nopull>;
};
};
};
flash {
gpio_flash_default_mode: flash_default {
golden_cfg1 {
pins = "GPIO140_B11", "GPIO141_C12";
ste,config = <&gpio_out_lo>;
};
};
};
i2c-gpio-1 {
i2c_gpio_1_default: i2c_gpio_1 {
golden_cfg1 {
pins = "GPIO151", /* COMP_SCL */
"GPIO152"; /* COMP_SDA */
ste,config = <&gpio_in_nopull>;
};
};
};
touchkey {
touchkey_default: touchkey_default {
golden_cfg1 {
pins = "GPIO79"; /* TOUCHKEY_INT */
ste,config = <&gpio_in_nopull>;
};
};
};
sdi0 {
sd_level_translator_default: sd_level_translator_default {
golden_cfg1 {
pins = "GPIO87_B3"; /* TXS0206-29_EN */
ste,config = <&gpio_out_lo>;
};
};
};
sdi2 {
mem_ldo_default: mem_ldo_default {
golden_cfg1 {
pins = "GPIO223_AH9"; /* MEM_LDO_EN */
ste,config = <&gpio_out_hi>;
};
};
};
mcde {
dsi_default_mode: dsi_default {
default_mux1 {
/* Mux in VSI0 used for DSI TE */
function = "lcd";
groups =
"lcdvsi0_a_1"; /* VSI0 for LCD */
};
default_cfg1 {
pins =
"GPIO68_E1"; /* VSI0 */
ste,config = <&in_nopull>;
};
};
};
display {
display_default_mode: display_default {
golden_cfg1 {
pins = "GPIO139_C9"; /* MIPI_DSI0_RESET_N */
ste,config = <&gpio_out_lo>;
};
golden_cfg2 {
pins = "GPIO82_C1"; /* LDI_ESD_DET */
ste,config = <&gpio_in_pu>;
};
};
panel_reg_default_mode: panel_reg_default {
golden_cfg1 {
pins = "GPIO219_AG10"; /* LCD_PWR_EN */
ste,config = <&gpio_out_lo>;
};
};
};
proximity {
proximity_default: proximity_default {
golden_cfg1 {
pins = "GPIO146_D13"; /* PS_INT */
ste,config = <&gpio_in_nopull>;
};
};
};
imu {
imu_default: imu_default {
golden_cfg1 {
pins = "GPIO206_AG24"; /* ACC_INT */
ste,config = <&gpio_in_pd>;
};
};
};
tsp {
tsp_default: tsp_default {
golden_cfg1 {
pins = "GPIO218_AH11"; /* TSP_INT_1V8 */
ste,config = <&gpio_in_nopull>;
};
};
};
wlan {
wlan_default: wlan_default {
golden_cfg1 {
pins = "GPIO216_AG12"; /* WLAN_HOST_WAKE */
ste,config = <&gpio_in_pd>;
};
};
wlan_en_default: wlan_en_default {
golden_cfg1 {
pins = "GPIO215_AH13"; /* WLAN_EN */
ste,config = <&gpio_out_lo>;
};
};
};
bluetooth {
bluetooth_default: bluetooth_default {
golden_cfg1 {
pins = "GPIO199_AH23", /* BT_WAKE */
"GPIO222_AJ9"; /* BT_VREG_ON */
ste,config = <&gpio_out_lo>;
};
golden_cfg2 {
pins = "GPIO97_D9"; /* BT_HOST_WAKE */
ste,config = <&gpio_in_nopull>;
};
};
};
vibrator {
vibrator_default: vibrator_default {
golden_cfg1 {
pins = "GPIO195_AG28"; /* MOT_EN */
ste,config = <&gpio_out_lo>;
};
};
};
};
&ab8505_gpio {
/* Hog a few default settings */
pinctrl-names = "default";
pinctrl-0 = <&gpio_default>;
gpio {
gpio_default: gpio_default {
golden_mux {
/* Change unused pins to GPIO mode */
function = "gpio";
groups = "gpio3_a_1", /* default: SysClkReq4 */
"gpio14_a_1"; /* default: PWMOut1 */
};
golden_cfg1 {
pins = "GPIO11_B17", "GPIO13_D17", "GPIO50_L4";
bias-disable;
};
};
};
};