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