uboot/board/gateworks/gw_ventana/common.h
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2013 Gateworks Corporation
   3 *
   4 * Author: Tim Harvey <tharvey@gateworks.com>
   5 *
   6 * SPDX-License-Identifier: GPL-2.0+
   7 */
   8
   9#ifndef _GWVENTANA_COMMON_H_
  10#define _GWVENTANA_COMMON_H_
  11
  12#include "ventana_eeprom.h"
  13
  14/* GPIO's common to all baseboards */
  15#define GP_PHY_RST      IMX_GPIO_NR(1, 30)
  16#define GP_USB_OTG_PWR  IMX_GPIO_NR(3, 22)
  17#define GP_SD3_CD       IMX_GPIO_NR(7, 0)
  18#define GP_RS232_EN     IMX_GPIO_NR(2, 11)
  19#define GP_MSATA_SEL    IMX_GPIO_NR(2, 8)
  20
  21#define UART_PAD_CTRL  (PAD_CTL_PKE | PAD_CTL_PUE |             \
  22        PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED |               \
  23        PAD_CTL_DSE_40ohm   | PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
  24
  25#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE |             \
  26        PAD_CTL_PUS_47K_UP  | PAD_CTL_SPEED_LOW |               \
  27        PAD_CTL_DSE_80ohm   | PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
  28
  29#define ENET_PAD_CTRL  (PAD_CTL_PKE | PAD_CTL_PUE |             \
  30        PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED   |             \
  31        PAD_CTL_DSE_40ohm   | PAD_CTL_HYS)
  32
  33#define SPI_PAD_CTRL (PAD_CTL_HYS |                             \
  34        PAD_CTL_PUS_100K_DOWN | PAD_CTL_SPEED_MED |             \
  35        PAD_CTL_DSE_40ohm     | PAD_CTL_SRE_FAST)
  36
  37#define I2C_PAD_CTRL  (PAD_CTL_PUS_100K_UP |                    \
  38        PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS |   \
  39        PAD_CTL_ODE | PAD_CTL_SRE_FAST)
  40
  41#define IRQ_PAD_CTRL  (PAD_CTL_PKE | PAD_CTL_PUE |              \
  42        PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED |               \
  43        PAD_CTL_DSE_34ohm | PAD_CTL_HYS | PAD_CTL_SRE_FAST)
  44
  45#define DIO_PAD_CFG   (MUX_PAD_CTRL(IRQ_PAD_CTRL) | MUX_MODE_SION)
  46
  47#define PC MUX_PAD_CTRL(I2C_PAD_CTRL)
  48
  49/*
  50 * each baseboard has 4 user configurable Digital IO lines which can
  51 * be pinmuxed as a GPIO or in some cases a PWM
  52 */
  53struct dio_cfg {
  54        iomux_v3_cfg_t gpio_padmux[2];
  55        unsigned gpio_param;
  56        iomux_v3_cfg_t pwm_padmux[2];
  57        unsigned pwm_param;
  58};
  59
  60struct ventana {
  61        /* pinmux */
  62        iomux_v3_cfg_t const *gpio_pads;
  63        int num_pads;
  64        /* DIO pinmux/val */
  65        struct dio_cfg dio_cfg[4];
  66        int num_gpios;
  67        /* various gpios (0 if non-existent) */
  68        int leds[3];
  69        int pcie_rst;
  70        int mezz_pwren;
  71        int mezz_irq;
  72        int rs485en;
  73        int gps_shdn;
  74        int vidin_en;
  75        int dioi2c_en;
  76        int pcie_sson;
  77        int usb_sel;
  78        int wdis;
  79};
  80
  81extern struct ventana gpio_cfg[GW_UNKNOWN];
  82
  83/* configure i2c iomux */
  84void setup_ventana_i2c(void);
  85/* configure uart iomux */
  86void setup_iomux_uart(void);
  87/* conifgure PMIC */
  88void setup_pmic(void);
  89/* configure gpio iomux/defaults */
  90void setup_iomux_gpio(int board, struct ventana_board_info *);
  91/* late setup of GPIO (configuration per baseboard and env) */
  92void setup_board_gpio(int board, struct ventana_board_info *);
  93
  94#endif /* #ifndef _GWVENTANA_COMMON_H_ */
  95