1c9ccf3a3SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2c9ccf3a3SEmmanuel Vadot/* 3c9ccf3a3SEmmanuel Vadot * sc7280 fragment for devices with Chrome bootloader 4c9ccf3a3SEmmanuel Vadot * 5c9ccf3a3SEmmanuel Vadot * This file mainly tries to abstract out the memory protections put into 6c9ccf3a3SEmmanuel Vadot * place by the Chrome bootloader which are different than what's put into 7c9ccf3a3SEmmanuel Vadot * place by Qualcomm's typical bootloader. It also has a smattering of other 8c9ccf3a3SEmmanuel Vadot * things that will hold true for any conceivable Chrome design 9c9ccf3a3SEmmanuel Vadot * 10c9ccf3a3SEmmanuel Vadot * Copyright 2022 Google LLC. 11c9ccf3a3SEmmanuel Vadot */ 12c9ccf3a3SEmmanuel Vadot 13c9ccf3a3SEmmanuel Vadot/* 14c9ccf3a3SEmmanuel Vadot * Reserved memory changes 15c9ccf3a3SEmmanuel Vadot * 16c9ccf3a3SEmmanuel Vadot * Delete all unused memory nodes and define the peripheral memory regions 17c9ccf3a3SEmmanuel Vadot * required by the setup for Chrome boards. 18c9ccf3a3SEmmanuel Vadot */ 19c9ccf3a3SEmmanuel Vadot 20c9ccf3a3SEmmanuel Vadot/delete-node/ &hyp_mem; 21c9ccf3a3SEmmanuel Vadot/delete-node/ &xbl_mem; 22c9ccf3a3SEmmanuel Vadot/delete-node/ &reserved_xbl_uefi_log; 23c9ccf3a3SEmmanuel Vadot/delete-node/ &sec_apps_mem; 24c9ccf3a3SEmmanuel Vadot 25c9ccf3a3SEmmanuel Vadot/ { 26c9ccf3a3SEmmanuel Vadot reserved-memory { 27c9ccf3a3SEmmanuel Vadot adsp_mem: memory@86700000 { 28c9ccf3a3SEmmanuel Vadot reg = <0x0 0x86700000 0x0 0x2800000>; 29c9ccf3a3SEmmanuel Vadot no-map; 30c9ccf3a3SEmmanuel Vadot }; 31c9ccf3a3SEmmanuel Vadot 32c9ccf3a3SEmmanuel Vadot camera_mem: memory@8ad00000 { 33c9ccf3a3SEmmanuel Vadot reg = <0x0 0x8ad00000 0x0 0x500000>; 34c9ccf3a3SEmmanuel Vadot no-map; 35c9ccf3a3SEmmanuel Vadot }; 36c9ccf3a3SEmmanuel Vadot 37c9ccf3a3SEmmanuel Vadot venus_mem: memory@8b200000 { 38c9ccf3a3SEmmanuel Vadot reg = <0x0 0x8b200000 0x0 0x500000>; 39c9ccf3a3SEmmanuel Vadot no-map; 40c9ccf3a3SEmmanuel Vadot }; 41c9ccf3a3SEmmanuel Vadot 42c9ccf3a3SEmmanuel Vadot wpss_mem: memory@9ae00000 { 43c9ccf3a3SEmmanuel Vadot reg = <0x0 0x9ae00000 0x0 0x1900000>; 44c9ccf3a3SEmmanuel Vadot no-map; 45c9ccf3a3SEmmanuel Vadot }; 46c9ccf3a3SEmmanuel Vadot }; 47c9ccf3a3SEmmanuel Vadot}; 48c9ccf3a3SEmmanuel Vadot 49*84943d6fSEmmanuel Vadot&lpass_aon { 50*84943d6fSEmmanuel Vadot status = "okay"; 51*84943d6fSEmmanuel Vadot}; 52*84943d6fSEmmanuel Vadot 53*84943d6fSEmmanuel Vadot&lpass_core { 54*84943d6fSEmmanuel Vadot status = "okay"; 55*84943d6fSEmmanuel Vadot}; 56*84943d6fSEmmanuel Vadot 57*84943d6fSEmmanuel Vadot&lpass_hm { 58*84943d6fSEmmanuel Vadot status = "okay"; 59*84943d6fSEmmanuel Vadot}; 60*84943d6fSEmmanuel Vadot 61*84943d6fSEmmanuel Vadot&lpasscc { 62*84943d6fSEmmanuel Vadot status = "okay"; 63*84943d6fSEmmanuel Vadot}; 64*84943d6fSEmmanuel Vadot 65*84943d6fSEmmanuel Vadot&pdc_reset { 66*84943d6fSEmmanuel Vadot status = "okay"; 67*84943d6fSEmmanuel Vadot}; 68*84943d6fSEmmanuel Vadot 69c9ccf3a3SEmmanuel Vadot/* The PMIC PON code isn't compatible w/ how Chrome EC/BIOS handle things. */ 70c9ccf3a3SEmmanuel Vadot&pmk8350_pon { 71c9ccf3a3SEmmanuel Vadot status = "disabled"; 72c9ccf3a3SEmmanuel Vadot}; 73c9ccf3a3SEmmanuel Vadot 74c9ccf3a3SEmmanuel Vadot/* 75c9ccf3a3SEmmanuel Vadot * Chrome designs always boot from SPI flash hooked up to the qspi. 76c9ccf3a3SEmmanuel Vadot * 77c9ccf3a3SEmmanuel Vadot * It's expected that all boards will support "dual SPI" at 37.5 MHz. 78c9ccf3a3SEmmanuel Vadot * If some boards need a different speed or have a package that allows 79c9ccf3a3SEmmanuel Vadot * Quad SPI together with WP then those boards can easily override. 80c9ccf3a3SEmmanuel Vadot */ 81c9ccf3a3SEmmanuel Vadot&qspi { 82c9ccf3a3SEmmanuel Vadot status = "okay"; 83fac71e4eSEmmanuel Vadot pinctrl-names = "default", "sleep"; 84fac71e4eSEmmanuel Vadot pinctrl-0 = <&qspi_clk>, <&qspi_cs0>, <&qspi_data0>, <&qspi_data1>; 85fac71e4eSEmmanuel Vadot pinctrl-1 = <&qspi_sleep>; 86c9ccf3a3SEmmanuel Vadot 87c9ccf3a3SEmmanuel Vadot spi_flash: flash@0 { 88c9ccf3a3SEmmanuel Vadot compatible = "jedec,spi-nor"; 89c9ccf3a3SEmmanuel Vadot reg = <0>; 90c9ccf3a3SEmmanuel Vadot 91c9ccf3a3SEmmanuel Vadot spi-max-frequency = <37500000>; 92c9ccf3a3SEmmanuel Vadot spi-tx-bus-width = <2>; 93c9ccf3a3SEmmanuel Vadot spi-rx-bus-width = <2>; 94c9ccf3a3SEmmanuel Vadot }; 95c9ccf3a3SEmmanuel Vadot}; 96c9ccf3a3SEmmanuel Vadot 97b97ee269SEmmanuel Vadot&remoteproc_wpss { 98b97ee269SEmmanuel Vadot status = "okay"; 99b97ee269SEmmanuel Vadot firmware-name = "ath11k/WCN6750/hw1.0/wpss.mdt"; 100c9ccf3a3SEmmanuel Vadot}; 101c9ccf3a3SEmmanuel Vadot 102fac71e4eSEmmanuel Vadot&scm { 103fac71e4eSEmmanuel Vadot /* TF-A firmware maps memory cached so mark dma-coherent to match. */ 104fac71e4eSEmmanuel Vadot dma-coherent; 105fac71e4eSEmmanuel Vadot}; 106fac71e4eSEmmanuel Vadot 107*84943d6fSEmmanuel Vadot&watchdog { 108*84943d6fSEmmanuel Vadot status = "okay"; 109*84943d6fSEmmanuel Vadot}; 110*84943d6fSEmmanuel Vadot 111b97ee269SEmmanuel Vadot&wifi { 112b97ee269SEmmanuel Vadot status = "okay"; 113b97ee269SEmmanuel Vadot 114b97ee269SEmmanuel Vadot wifi-firmware { 115b97ee269SEmmanuel Vadot iommus = <&apps_smmu 0x1c02 0x1>; 116b97ee269SEmmanuel Vadot }; 117b97ee269SEmmanuel Vadot}; 118fac71e4eSEmmanuel Vadot 119fac71e4eSEmmanuel Vadot/* PINCTRL - chrome-common pinctrl */ 120fac71e4eSEmmanuel Vadot 121fac71e4eSEmmanuel Vadot&tlmm { 122fac71e4eSEmmanuel Vadot qspi_sleep: qspi-sleep-state { 123fac71e4eSEmmanuel Vadot pins = "gpio12", "gpio13", "gpio14", "gpio15"; 124fac71e4eSEmmanuel Vadot 125fac71e4eSEmmanuel Vadot /* 126fac71e4eSEmmanuel Vadot * When we're not actively transferring we want pins as GPIOs 127fac71e4eSEmmanuel Vadot * with output disabled so that the quad SPI IP block stops 128fac71e4eSEmmanuel Vadot * driving them. We rely on the normal pulls configured in 129fac71e4eSEmmanuel Vadot * the active state and don't redefine them here. Also note 130fac71e4eSEmmanuel Vadot * that we don't need the reverse (output-enable) in the 131fac71e4eSEmmanuel Vadot * normal mode since the "output-enable" only matters for 132fac71e4eSEmmanuel Vadot * GPIO function. 133fac71e4eSEmmanuel Vadot */ 134fac71e4eSEmmanuel Vadot function = "gpio"; 135fac71e4eSEmmanuel Vadot output-disable; 136fac71e4eSEmmanuel Vadot }; 137fac71e4eSEmmanuel Vadot}; 138