1*e67497f9SRouven Czerwinski/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause) */ 2*e67497f9SRouven Czerwinski/* 3*e67497f9SRouven Czerwinski * Copyright (C) 2020 STMicroelectronics - All Rights Reserved 4*e67497f9SRouven Czerwinski * Copyright (C) 2021 Rouven Czerwinski, Pengutronix 5*e67497f9SRouven Czerwinski */ 6*e67497f9SRouven Czerwinski 7*e67497f9SRouven Czerwinski/dts-v1/; 8*e67497f9SRouven Czerwinski 9*e67497f9SRouven Czerwinski#include "stm32mp157.dtsi" 10*e67497f9SRouven Czerwinski#include "stm32mp15xc.dtsi" 11*e67497f9SRouven Czerwinski#include "stm32mp15-ddr3-1x4Gb-1066-binG.dtsi" 12*e67497f9SRouven Czerwinski#include "stm32mp15xx-osd32.dtsi" 13*e67497f9SRouven Czerwinski#include "stm32mp15xxac-pinctrl.dtsi" 14*e67497f9SRouven Czerwinski 15*e67497f9SRouven Czerwinski/ { 16*e67497f9SRouven Czerwinski model = "Linux Automation Test Automation Controller (TAC)"; 17*e67497f9SRouven Czerwinski compatible = "lxa,stm32mp157c-tac", "oct,stm32mp15xx-osd32", "st,stm32mp157"; 18*e67497f9SRouven Czerwinski 19*e67497f9SRouven Czerwinski aliases { 20*e67497f9SRouven Czerwinski mmc1 = &sdmmc2; 21*e67497f9SRouven Czerwinski serial0 = &uart4; 22*e67497f9SRouven Czerwinski }; 23*e67497f9SRouven Czerwinski 24*e67497f9SRouven Czerwinski 25*e67497f9SRouven Czerwinski chosen { 26*e67497f9SRouven Czerwinski stdout-path = &uart4; 27*e67497f9SRouven Czerwinski }; 28*e67497f9SRouven Czerwinski 29*e67497f9SRouven Czerwinski led-controller-0 { 30*e67497f9SRouven Czerwinski compatible = "gpio-leds"; 31*e67497f9SRouven Czerwinski 32*e67497f9SRouven Czerwinski led-0 { 33*e67497f9SRouven Czerwinski label = "tac:green:user1"; 34*e67497f9SRouven Czerwinski gpios = <&gpiof 10 1>; 35*e67497f9SRouven Czerwinski linux,default-trigger = "heartbeat"; 36*e67497f9SRouven Czerwinski }; 37*e67497f9SRouven Czerwinski }; 38*e67497f9SRouven Czerwinski 39*e67497f9SRouven Czerwinski reg_3v3: regulator_3v3 { 40*e67497f9SRouven Czerwinski compatible = "regulator-fixed"; 41*e67497f9SRouven Czerwinski regulator-name = "3V3"; 42*e67497f9SRouven Czerwinski regulator-min-microvolt = <3300000>; 43*e67497f9SRouven Czerwinski regulator-max-microvolt = <3300000>; 44*e67497f9SRouven Czerwinski regulator-always-on; 45*e67497f9SRouven Czerwinski vin-supply = <&v3v3>; 46*e67497f9SRouven Czerwinski }; 47*e67497f9SRouven Czerwinski}; 48*e67497f9SRouven Czerwinski 49*e67497f9SRouven Czerwinski&pinctrl { 50*e67497f9SRouven Czerwinski tac_sdmmc2_d47_pins_b: tac-sdmmc2-d47-1 { 51*e67497f9SRouven Czerwinski pins { 52*e67497f9SRouven Czerwinski pinmux = <STM32_PINMUX('A', 8, AF9)>, /* SDMMC2_D4 */ 53*e67497f9SRouven Czerwinski <STM32_PINMUX('A', 9, AF10)>, /* SDMMC2_D5 */ 54*e67497f9SRouven Czerwinski <STM32_PINMUX('C', 6, AF10)>, /* SDMMC2_D6 */ 55*e67497f9SRouven Czerwinski <STM32_PINMUX('C', 7, AF10)>; /* SDMMC2_D7 */ 56*e67497f9SRouven Czerwinski slew-rate = <1>; 57*e67497f9SRouven Czerwinski drive-push-pull; 58*e67497f9SRouven Czerwinski bias-disable; 59*e67497f9SRouven Czerwinski }; 60*e67497f9SRouven Czerwinski }; 61*e67497f9SRouven Czerwinski}; 62*e67497f9SRouven Czerwinski 63*e67497f9SRouven Czerwinski/* VCO = 624 MHz => P = 208, Q = 48, R = 104 */ 64*e67497f9SRouven Czerwinski&pll3 { 65*e67497f9SRouven Czerwinski st,pll = <&pll3_cfg2>; 66*e67497f9SRouven Czerwinski 67*e67497f9SRouven Czerwinski pll3_cfg2: pll3-cfg2 { 68*e67497f9SRouven Czerwinski st,pll_vco = <&pll3_vco_624Mhz>; 69*e67497f9SRouven Czerwinski st,pll_div_pqr = <2 12 5>; 70*e67497f9SRouven Czerwinski }; 71*e67497f9SRouven Czerwinski}; 72*e67497f9SRouven Czerwinski 73*e67497f9SRouven Czerwinski/* VCO = 750.0 MHz => P = 125, Q = 75, R = 62.5 */ 74*e67497f9SRouven Czerwinski&pll4 { 75*e67497f9SRouven Czerwinski st,pll = <&pll4_cfg2>; 76*e67497f9SRouven Czerwinski 77*e67497f9SRouven Czerwinski pll4_cfg2: pll4-cfg2 { 78*e67497f9SRouven Czerwinski st,pll_vco = <&pll4_vco_750Mhz>; 79*e67497f9SRouven Czerwinski st,pll_div_pqr = <5 9 11>; 80*e67497f9SRouven Czerwinski }; 81*e67497f9SRouven Czerwinski}; 82*e67497f9SRouven Czerwinski 83*e67497f9SRouven Czerwinski&rcc { 84*e67497f9SRouven Czerwinski /* change parent clocks */ 85*e67497f9SRouven Czerwinski st,clksrc = < 86*e67497f9SRouven Czerwinski CLK_MPU_PLL1P 87*e67497f9SRouven Czerwinski CLK_AXI_PLL2P 88*e67497f9SRouven Czerwinski CLK_MCU_PLL3P 89*e67497f9SRouven Czerwinski CLK_RTC_LSE 90*e67497f9SRouven Czerwinski CLK_MCO1_DISABLED 91*e67497f9SRouven Czerwinski CLK_MCO2_DISABLED 92*e67497f9SRouven Czerwinski CLK_CKPER_HSE 93*e67497f9SRouven Czerwinski CLK_FMC_ACLK 94*e67497f9SRouven Czerwinski CLK_QSPI_ACLK 95*e67497f9SRouven Czerwinski CLK_ETH_PLL4P 96*e67497f9SRouven Czerwinski CLK_SDMMC12_PLL3R 97*e67497f9SRouven Czerwinski CLK_DSI_DSIPLL 98*e67497f9SRouven Czerwinski CLK_STGEN_HSE 99*e67497f9SRouven Czerwinski CLK_USBPHY_HSE 100*e67497f9SRouven Czerwinski CLK_SPI2S1_PLL3Q 101*e67497f9SRouven Czerwinski CLK_SPI2S23_PLL3Q 102*e67497f9SRouven Czerwinski CLK_SPI45_HSI 103*e67497f9SRouven Czerwinski CLK_SPI6_HSI 104*e67497f9SRouven Czerwinski CLK_I2C46_HSI 105*e67497f9SRouven Czerwinski CLK_SDMMC3_DISABLED 106*e67497f9SRouven Czerwinski CLK_USBO_USBPHY 107*e67497f9SRouven Czerwinski CLK_ADC_CKPER 108*e67497f9SRouven Czerwinski CLK_CEC_DISABLED 109*e67497f9SRouven Czerwinski CLK_I2C12_HSI 110*e67497f9SRouven Czerwinski CLK_I2C35_HSI 111*e67497f9SRouven Czerwinski CLK_UART1_HSI 112*e67497f9SRouven Czerwinski CLK_UART24_HSI 113*e67497f9SRouven Czerwinski CLK_UART35_HSI 114*e67497f9SRouven Czerwinski CLK_UART6_HSI 115*e67497f9SRouven Czerwinski CLK_UART78_HSI 116*e67497f9SRouven Czerwinski CLK_SPDIF_DISABLED 117*e67497f9SRouven Czerwinski CLK_FDCAN_PLL3Q 118*e67497f9SRouven Czerwinski CLK_SAI1_DISABLED 119*e67497f9SRouven Czerwinski CLK_SAI2_DISABLED 120*e67497f9SRouven Czerwinski CLK_SAI3_DISABLED 121*e67497f9SRouven Czerwinski CLK_SAI4_DISABLED 122*e67497f9SRouven Czerwinski CLK_RNG1_LSI 123*e67497f9SRouven Czerwinski CLK_RNG2_LSI 124*e67497f9SRouven Czerwinski CLK_LPTIM1_PCLK1 125*e67497f9SRouven Czerwinski CLK_LPTIM23_PCLK3 126*e67497f9SRouven Czerwinski CLK_LPTIM45_LSE 127*e67497f9SRouven Czerwinski >; 128*e67497f9SRouven Czerwinski 129*e67497f9SRouven Czerwinski st,pll_vco { 130*e67497f9SRouven Czerwinski pll3_vco_624Mhz: pll3-vco-624Mhz { 131*e67497f9SRouven Czerwinski src = <CLK_PLL3_HSE>; 132*e67497f9SRouven Czerwinski divmn = <1 51>; 133*e67497f9SRouven Czerwinski }; 134*e67497f9SRouven Czerwinski 135*e67497f9SRouven Czerwinski pll4_vco_750Mhz: pll4-vco-750Mhz { 136*e67497f9SRouven Czerwinski src = <CLK_PLL4_HSE>; 137*e67497f9SRouven Czerwinski divmn = <3 124>; 138*e67497f9SRouven Czerwinski }; 139*e67497f9SRouven Czerwinski }; 140*e67497f9SRouven Czerwinski}; 141*e67497f9SRouven Czerwinski 142*e67497f9SRouven Czerwinski&sdmmc2 { 143*e67497f9SRouven Czerwinski pinctrl-names = "default"; 144*e67497f9SRouven Czerwinski pinctrl-0 = <&sdmmc2_b4_pins_a &tac_sdmmc2_d47_pins_b>; 145*e67497f9SRouven Czerwinski bus-width = <8>; 146*e67497f9SRouven Czerwinski mmc-ddr-3_3v; 147*e67497f9SRouven Czerwinski no-1-8-v; 148*e67497f9SRouven Czerwinski no-sd; 149*e67497f9SRouven Czerwinski no-sdio; 150*e67497f9SRouven Czerwinski non-removable; 151*e67497f9SRouven Czerwinski st,neg-edge; 152*e67497f9SRouven Czerwinski vmmc-supply = <®_3v3>; 153*e67497f9SRouven Czerwinski status = "okay"; 154*e67497f9SRouven Czerwinski}; 155*e67497f9SRouven Czerwinski 156*e67497f9SRouven Czerwinski&uart4 { 157*e67497f9SRouven Czerwinski pinctrl-names = "default"; 158*e67497f9SRouven Czerwinski pinctrl-0 = <&uart4_pins_a>; 159*e67497f9SRouven Czerwinski status = "okay"; 160*e67497f9SRouven Czerwinski}; 161