Files
pebble/platform/robert/boot/src/board/board_robert_evt.h
2025-01-27 11:38:16 -08:00

134 lines
3.0 KiB
C

/*
* Copyright 2024 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
// ----------------------------------------------
// Board definitions for Robert EVT
// ----------------------------------------------
//
#include "util/size.h"
#define BOARD_LSE_MODE RCC_LSE_Bypass
static const BoardConfigButton BOARD_CONFIG_BUTTON = {
.buttons = {
[BUTTON_ID_BACK] = {
.input = {
.gpio = GPIOG,
.gpio_pin = GPIO_Pin_3,
},
.pupd = GPIO_PuPd_NOPULL,
},
[BUTTON_ID_UP] = {
.input = {
.gpio = GPIOG,
.gpio_pin = GPIO_Pin_4,
},
.pupd = GPIO_PuPd_UP,
},
[BUTTON_ID_SELECT] = {
.input = {
.gpio = GPIOG,
.gpio_pin = GPIO_Pin_5,
},
.pupd = GPIO_PuPd_UP,
},
[BUTTON_ID_DOWN] = {
.input = {
.gpio = GPIOG,
.gpio_pin = GPIO_Pin_6,
},
.pupd = GPIO_PuPd_UP,
},
},
};
static const BoardConfigPower BOARD_CONFIG_POWER = {
.rail_4V5_ctrl = {
.gpio = GPIOH,
.gpio_pin = GPIO_Pin_5,
.active_high = true,
},
.rail_6V6_ctrl = { GPIO_Port_NULL },
};
static const BoardConfigFlash BOARD_CONFIG_FLASH = {
.reset_gpio = {
.gpio = GPIOE,
.gpio_pin = GPIO_Pin_15,
.active_high = false,
},
};
static const BoardConfigAccessory BOARD_CONFIG_ACCESSORY = {
.power_en = { GPIOD, GPIO_Pin_2, true },
};
typedef enum {
QSpiPin_CS,
QSpiPin_SCLK,
QSpiPin_DQ0,
QSpiPin_DQ1,
QSpiPin_DQ2,
QSpiPin_DQ3,
QSpiPinCount,
} QSpiPin;
static const AfConfig BOARD_CONFIG_FLASH_PINS[] = {
[QSpiPin_CS] = {
.gpio = GPIOB,
.gpio_pin = GPIO_Pin_10,
.gpio_pin_source = GPIO_PinSource10,
.gpio_af = GPIO_AF9_QUADSPI,
},
[QSpiPin_SCLK] = {
.gpio = GPIOF,
.gpio_pin = GPIO_Pin_10,
.gpio_pin_source = GPIO_PinSource10,
.gpio_af = GPIO_AF9_QUADSPI,
},
[QSpiPin_DQ0] = {
.gpio = GPIOD,
.gpio_pin = GPIO_Pin_11,
.gpio_pin_source = GPIO_PinSource11,
.gpio_af = GPIO_AF9_QUADSPI,
},
[QSpiPin_DQ1] = {
.gpio = GPIOC,
.gpio_pin = GPIO_Pin_10,
.gpio_pin_source = GPIO_PinSource10,
.gpio_af = GPIO_AF9_QUADSPI,
},
[QSpiPin_DQ2] = {
.gpio = GPIOE,
.gpio_pin = GPIO_Pin_2,
.gpio_pin_source = GPIO_PinSource2,
.gpio_af = GPIO_AF9_QUADSPI,
},
[QSpiPin_DQ3] = {
.gpio = GPIOA,
.gpio_pin = GPIO_Pin_1,
.gpio_pin_source = GPIO_PinSource1,
.gpio_af = GPIO_AF9_QUADSPI,
},
};
extern I2CSlavePort * const I2C_MAX14690;
extern ICE40LPDevice * const ICE40LP;