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