1*83d290c5STom Rini // SPDX-License-Identifier: GPL-2.0+ 2c418addfSKever Yang /* 3c418addfSKever Yang * (C) Copyright 2015 Rockchip Electronics Co., Ltd 4c418addfSKever Yang */ 5c418addfSKever Yang 6c418addfSKever Yang #include <common.h> 7c418addfSKever Yang #include <dm.h> 8c418addfSKever Yang #include <asm/io.h> 9c418addfSKever Yang #include <asm/arch/uart.h> 10c418addfSKever Yang #include <asm/arch/sdram_rk3036.h> 11c418addfSKever Yang #include <asm/gpio.h> 12c418addfSKever Yang 13c418addfSKever Yang void get_ddr_config(struct rk3036_ddr_config *config) 14c418addfSKever Yang { 15c418addfSKever Yang /* K4B4G1646Q config */ 16c418addfSKever Yang config->ddr_type = 3; 17c418addfSKever Yang config->rank = 1; 18c418addfSKever Yang config->cs0_row = 15; 19c418addfSKever Yang config->cs1_row = 15; 20c418addfSKever Yang 21c418addfSKever Yang /* 8bank */ 22c418addfSKever Yang config->bank = 3; 23c418addfSKever Yang config->col = 10; 24c418addfSKever Yang 25c418addfSKever Yang /* 16bit bw */ 26c418addfSKever Yang config->bw = 1; 27c418addfSKever Yang } 28c418addfSKever Yang 29c418addfSKever Yang #define FASTBOOT_KEY_GPIO 93 30c418addfSKever Yang 31c418addfSKever Yang int fastboot_key_pressed(void) 32c418addfSKever Yang { 33c418addfSKever Yang gpio_request(FASTBOOT_KEY_GPIO, "fastboot_key"); 34c418addfSKever Yang gpio_direction_input(FASTBOOT_KEY_GPIO); 35c418addfSKever Yang return !gpio_get_value(FASTBOOT_KEY_GPIO); 36c418addfSKever Yang } 37c418addfSKever Yang 38c418addfSKever Yang #define ROCKCHIP_BOOT_MODE_FASTBOOT 0x5242C309 39c418addfSKever Yang 4067171e13SJacob Chen int rk_board_late_init(void) 41c418addfSKever Yang { 4267171e13SJacob Chen if (fastboot_key_pressed()) { 43c418addfSKever Yang printf("enter fastboot!\n"); 44382bee57SSimon Glass env_set("preboot", "setenv preboot; fastboot usb0"); 45c418addfSKever Yang } 46c418addfSKever Yang 47c418addfSKever Yang return 0; 48c418addfSKever Yang } 49