colibri_t30.c 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. // SPDX-License-Identifier: GPL-2.0+
  2. /*
  3. * (C) Copyright 2014-2016
  4. * Stefan Agner <stefan@agner.ch>
  5. */
  6. #include <common.h>
  7. #include <asm/arch/gp_padctrl.h>
  8. #include <asm/arch/pinmux.h>
  9. #include <asm/arch-tegra/ap.h>
  10. #include <asm/arch-tegra/tegra.h>
  11. #include <asm/gpio.h>
  12. #include <asm/io.h>
  13. #include <i2c.h>
  14. #include "pinmux-config-colibri_t30.h"
  15. #include "../common/tdx-common.h"
  16. int arch_misc_init(void)
  17. {
  18. if (readl(NV_PA_BASE_SRAM + NVBOOTINFOTABLE_BOOTTYPE) ==
  19. NVBOOTTYPE_RECOVERY)
  20. printf("USB recovery mode\n");
  21. return 0;
  22. }
  23. int checkboard(void)
  24. {
  25. puts("Model: Toradex Colibri T30 1GB\n");
  26. return 0;
  27. }
  28. #if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
  29. int ft_board_setup(void *blob, bd_t *bd)
  30. {
  31. return ft_common_board_setup(blob, bd);
  32. }
  33. #endif
  34. /*
  35. * Routine: pinmux_init
  36. * Description: Do individual peripheral pinmux configs
  37. */
  38. void pinmux_init(void)
  39. {
  40. pinmux_config_pingrp_table(tegra3_pinmux_common,
  41. ARRAY_SIZE(tegra3_pinmux_common));
  42. pinmux_config_pingrp_table(unused_pins_lowpower,
  43. ARRAY_SIZE(unused_pins_lowpower));
  44. /* Initialize any non-default pad configs (APB_MISC_GP regs) */
  45. pinmux_config_drvgrp_table(colibri_t30_padctrl,
  46. ARRAY_SIZE(colibri_t30_padctrl));
  47. }
  48. /*
  49. * Enable AX88772B USB to LAN controller
  50. */
  51. void pin_mux_usb(void)
  52. {
  53. /* Reset ASIX using LAN_RESET */
  54. gpio_request(TEGRA_GPIO(DD, 0), "LAN_RESET");
  55. gpio_direction_output(TEGRA_GPIO(DD, 0), 0);
  56. udelay(5);
  57. gpio_set_value(TEGRA_GPIO(DD, 0), 1);
  58. }