1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 3 #include <boot/coreboot_tables.h> 4 #include <device/device.h> 5 #include <gpio.h> 6 #include <soc/clock.h> 7 #include <soc/soc_services.h> 8 #include <soc/usb.h> 9 #include <soc/blsp.h> 10 #include <symbols.h> 11 12 #include <vendorcode/google/chromeos/chromeos.h> 13 #include "mmu.h" 14 15 #define USB_ENABLE_GPIO 51 16 setup_usb(void)17static void setup_usb(void) 18 { 19 usb_clock_config(); 20 21 setup_usb_host1(); 22 } 23 mainboard_init(struct device * dev)24static void mainboard_init(struct device *dev) 25 { 26 /* disable mmu and d-cache before setting up secure world.*/ 27 dcache_mmu_disable(); 28 start_tzbsp(); 29 /* Setup mmu and d-cache again as non secure entries. */ 30 setup_mmu(DRAM_INITIALIZED); 31 setup_usb(); 32 33 /* Copy WIFI calibration data into CBMEM. */ 34 if (CONFIG(CHROMEOS)) 35 cbmem_add_vpd_calibration_data(); 36 37 /* 38 * Make sure bootloader can issue sounds The frequency is calculated 39 * as "<frame_rate> * <bit_width> * <channels> * 4", i.e. 40 * 41 * 48000 * 2 * 16 * 4 = 6144000 42 */ 43 //audio_clock_config(6144000); 44 } 45 mainboard_enable(struct device * dev)46static void mainboard_enable(struct device *dev) 47 { 48 dev->ops->init = &mainboard_init; 49 } 50 51 struct chip_operations mainboard_ops = { 52 .enable_dev = mainboard_enable, 53 }; 54 lb_board(struct lb_header * header)55void lb_board(struct lb_header *header) 56 { 57 struct lb_range *dma; 58 59 dma = (struct lb_range *)lb_new_record(header); 60 dma->tag = LB_TAG_DMA; 61 dma->size = sizeof(*dma); 62 dma->range_start = (uintptr_t)_dma_coherent; 63 dma->range_size = REGION_SIZE(dma_coherent); 64 65 if (CONFIG(CHROMEOS)) { 66 /* Retrieve the switch interface MAC addresses. */ 67 lb_table_add_macs_from_vpd(header); 68 } 69 } 70