1 /* 2 * (C) Copyright 2014 CompuLab, Ltd. <www.compulab.co.il> 3 * 4 * Authors: Igor Grinberg <grinberg@compulab.co.il> 5 * 6 * SPDX-License-Identifier: GPL-2.0+ 7 */ 8 9 #include <common.h> 10 #include <asm/bootm.h> 11 #include <asm/gpio.h> 12 13 #include "common.h" 14 #include "eeprom.h" 15 16 void cl_print_pcb_info(void) 17 { 18 u32 board_rev = get_board_rev(); 19 u32 rev_major = board_rev / 100; 20 u32 rev_minor = board_rev - (rev_major * 100); 21 22 if ((rev_minor / 10) * 10 == rev_minor) 23 rev_minor = rev_minor / 10; 24 25 printf("PCB: %u.%u\n", rev_major, rev_minor); 26 } 27 28 #ifdef CONFIG_SERIAL_TAG 29 void __weak get_board_serial(struct tag_serialnr *serialnr) 30 { 31 /* 32 * This corresponds to what happens when we can communicate with the 33 * eeprom but don't get a valid board serial value. 34 */ 35 serialnr->low = 0; 36 serialnr->high = 0; 37 }; 38 #endif 39 40 #ifdef CONFIG_CMD_USB 41 int cl_usb_hub_init(int gpio, const char *label) 42 { 43 if (gpio_request(gpio, label)) { 44 printf("Error: can't obtain GPIO%d for %s", gpio, label); 45 return -1; 46 } 47 48 gpio_direction_output(gpio, 0); 49 udelay(10); 50 gpio_set_value(gpio, 1); 51 udelay(1000); 52 return 0; 53 } 54 55 void cl_usb_hub_deinit(int gpio) 56 { 57 gpio_free(gpio); 58 } 59 #endif 60