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 mpss_mem: memory@8b800000 { 43c9ccf3a3SEmmanuel Vadot reg = <0x0 0x8b800000 0x0 0xf600000>; 44c9ccf3a3SEmmanuel Vadot no-map; 45c9ccf3a3SEmmanuel Vadot }; 46c9ccf3a3SEmmanuel Vadot 47c9ccf3a3SEmmanuel Vadot wpss_mem: memory@9ae00000 { 48c9ccf3a3SEmmanuel Vadot reg = <0x0 0x9ae00000 0x0 0x1900000>; 49c9ccf3a3SEmmanuel Vadot no-map; 50c9ccf3a3SEmmanuel Vadot }; 51c9ccf3a3SEmmanuel Vadot 52c9ccf3a3SEmmanuel Vadot mba_mem: memory@9c700000 { 53c9ccf3a3SEmmanuel Vadot reg = <0x0 0x9c700000 0x0 0x200000>; 54c9ccf3a3SEmmanuel Vadot no-map; 55c9ccf3a3SEmmanuel Vadot }; 56c9ccf3a3SEmmanuel Vadot }; 57c9ccf3a3SEmmanuel Vadot}; 58c9ccf3a3SEmmanuel Vadot 59c9ccf3a3SEmmanuel Vadot/* The PMIC PON code isn't compatible w/ how Chrome EC/BIOS handle things. */ 60c9ccf3a3SEmmanuel Vadot&pmk8350_pon { 61c9ccf3a3SEmmanuel Vadot status = "disabled"; 62c9ccf3a3SEmmanuel Vadot}; 63c9ccf3a3SEmmanuel Vadot 64c9ccf3a3SEmmanuel Vadot/* 65c9ccf3a3SEmmanuel Vadot * Chrome designs always boot from SPI flash hooked up to the qspi. 66c9ccf3a3SEmmanuel Vadot * 67c9ccf3a3SEmmanuel Vadot * It's expected that all boards will support "dual SPI" at 37.5 MHz. 68c9ccf3a3SEmmanuel Vadot * If some boards need a different speed or have a package that allows 69c9ccf3a3SEmmanuel Vadot * Quad SPI together with WP then those boards can easily override. 70c9ccf3a3SEmmanuel Vadot */ 71c9ccf3a3SEmmanuel Vadot&qspi { 72c9ccf3a3SEmmanuel Vadot status = "okay"; 73c9ccf3a3SEmmanuel Vadot pinctrl-names = "default"; 74c9ccf3a3SEmmanuel Vadot pinctrl-0 = <&qspi_clk>, <&qspi_cs0>, <&qspi_data01>; 75c9ccf3a3SEmmanuel Vadot 76c9ccf3a3SEmmanuel Vadot spi_flash: flash@0 { 77c9ccf3a3SEmmanuel Vadot compatible = "jedec,spi-nor"; 78c9ccf3a3SEmmanuel Vadot reg = <0>; 79c9ccf3a3SEmmanuel Vadot 80c9ccf3a3SEmmanuel Vadot spi-max-frequency = <37500000>; 81c9ccf3a3SEmmanuel Vadot spi-tx-bus-width = <2>; 82c9ccf3a3SEmmanuel Vadot spi-rx-bus-width = <2>; 83c9ccf3a3SEmmanuel Vadot }; 84c9ccf3a3SEmmanuel Vadot}; 85c9ccf3a3SEmmanuel Vadot 86c9ccf3a3SEmmanuel Vadot/* Modem setup is different on Chrome setups than typical Qualcomm setup */ 87c9ccf3a3SEmmanuel Vadot&remoteproc_mpss { 88c9ccf3a3SEmmanuel Vadot status = "okay"; 89c9ccf3a3SEmmanuel Vadot compatible = "qcom,sc7280-mss-pil"; 90c9ccf3a3SEmmanuel Vadot iommus = <&apps_smmu 0x124 0x0>, <&apps_smmu 0x488 0x7>; 91*b97ee269SEmmanuel Vadot interconnects = <&mc_virt MASTER_LLCC 0 &mc_virt SLAVE_EBI1 0>; 92c9ccf3a3SEmmanuel Vadot memory-region = <&mba_mem>, <&mpss_mem>; 93*b97ee269SEmmanuel Vadot firmware-name = "qcom/sc7280-herobrine/modem/mba.mbn", 94*b97ee269SEmmanuel Vadot "qcom/sc7280-herobrine/modem/qdsp6sw.mbn"; 95*b97ee269SEmmanuel Vadot}; 96*b97ee269SEmmanuel Vadot 97*b97ee269SEmmanuel Vadot&remoteproc_wpss { 98*b97ee269SEmmanuel Vadot status = "okay"; 99*b97ee269SEmmanuel Vadot firmware-name = "ath11k/WCN6750/hw1.0/wpss.mdt"; 100c9ccf3a3SEmmanuel Vadot}; 101c9ccf3a3SEmmanuel Vadot 102c9ccf3a3SEmmanuel Vadot/* Increase the size from 2.5MB to 8MB */ 103c9ccf3a3SEmmanuel Vadot&rmtfs_mem { 104c9ccf3a3SEmmanuel Vadot reg = <0x0 0x9c900000 0x0 0x800000>; 105c9ccf3a3SEmmanuel Vadot}; 106*b97ee269SEmmanuel Vadot 107*b97ee269SEmmanuel Vadot&wifi { 108*b97ee269SEmmanuel Vadot status = "okay"; 109*b97ee269SEmmanuel Vadot 110*b97ee269SEmmanuel Vadot wifi-firmware { 111*b97ee269SEmmanuel Vadot iommus = <&apps_smmu 0x1c02 0x1>; 112*b97ee269SEmmanuel Vadot }; 113*b97ee269SEmmanuel Vadot}; 114