boards: Add support for MEC1501 modular card ASSY 6885
This was tested with the hello world application. Signed-off-by: Jose Alberto Meza <jose.a.meza.arellano@intel.com>
This commit is contained in:
parent
17dc9e56cc
commit
3d0ae03570
9 changed files with 580 additions and 0 deletions
8
boards/arm/mec1501modular_assy6885/CMakeLists.txt
Normal file
8
boards/arm/mec1501modular_assy6885/CMakeLists.txt
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2019 Microchip Technology Inc.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
|
zephyr_library()
|
||||||
|
zephyr_library_sources(pinmux.c)
|
9
boards/arm/mec1501modular_assy6885/Kconfig.board
Normal file
9
boards/arm/mec1501modular_assy6885/Kconfig.board
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2019, Intel Corporation
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
|
config BOARD_MEC1501MODULAR_ASSY6885
|
||||||
|
bool "Microchip MEC1501 Modular ASSY 6885 Development board"
|
||||||
|
depends on SOC_MEC1501_HSZ
|
113
boards/arm/mec1501modular_assy6885/Kconfig.defconfig
Normal file
113
boards/arm/mec1501modular_assy6885/Kconfig.defconfig
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2019 Intel Corporation
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
if BOARD_MEC1501MODULAR_ASSY6885
|
||||||
|
|
||||||
|
config BOARD
|
||||||
|
default "mec1501modular_assy6885"
|
||||||
|
|
||||||
|
if UART_NS16550
|
||||||
|
|
||||||
|
config UART_NS16550_PORT_1
|
||||||
|
def_bool y if UART_CONSOLE
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
if PINMUX_XEC
|
||||||
|
|
||||||
|
config PINMUX_XEC_GPIO000_036
|
||||||
|
default y
|
||||||
|
|
||||||
|
config PINMUX_XEC_GPIO040_076
|
||||||
|
default y
|
||||||
|
|
||||||
|
config PINMUX_XEC_GPIO100_136
|
||||||
|
default y
|
||||||
|
|
||||||
|
config PINMUX_XEC_GPIO140_176
|
||||||
|
default y
|
||||||
|
|
||||||
|
config PINMUX_XEC_GPIO200_236
|
||||||
|
default n
|
||||||
|
|
||||||
|
config PINMUX_XEC_GPIO240_276
|
||||||
|
default n
|
||||||
|
|
||||||
|
endif # PINMUX_XEC
|
||||||
|
|
||||||
|
if GPIO_XEC
|
||||||
|
|
||||||
|
config GPIO_XEC_GPIO000_036
|
||||||
|
default y
|
||||||
|
|
||||||
|
config GPIO_XEC_GPIO040_076
|
||||||
|
default y
|
||||||
|
|
||||||
|
config GPIO_XEC_GPIO100_136
|
||||||
|
default y
|
||||||
|
|
||||||
|
config GPIO_XEC_GPIO140_176
|
||||||
|
default y
|
||||||
|
|
||||||
|
config GPIO_XEC_GPIO200_236
|
||||||
|
default y
|
||||||
|
|
||||||
|
config GPIO_XEC_GPIO240_276
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # GPIO_XEC
|
||||||
|
|
||||||
|
if I2C_XEC
|
||||||
|
|
||||||
|
config I2C_XEC_0
|
||||||
|
default y
|
||||||
|
|
||||||
|
config I2C_XEC_1
|
||||||
|
default y
|
||||||
|
|
||||||
|
config I2C_XEC_2
|
||||||
|
default n
|
||||||
|
|
||||||
|
endif # I2C
|
||||||
|
|
||||||
|
if ESPI
|
||||||
|
|
||||||
|
config ESPI_XEC
|
||||||
|
default y
|
||||||
|
|
||||||
|
endif # ESPI
|
||||||
|
|
||||||
|
if RTOS_TIMER
|
||||||
|
|
||||||
|
config MCHP_XEC_RTOS_TIMER
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
|
||||||
|
# XEC RTOS timer HW frequency is fixed at 32768
|
||||||
|
# The driver requires tickless mode and ticks per
|
||||||
|
# second to be 32768 for accurate operation.
|
||||||
|
|
||||||
|
config SYS_CLOCK_HW_CYCLES_PER_SEC
|
||||||
|
default 32768
|
||||||
|
|
||||||
|
config SYS_CLOCK_TICKS_PER_SEC
|
||||||
|
default 32768
|
||||||
|
|
||||||
|
endif # RTOS_TIMER
|
||||||
|
|
||||||
|
if !RTOS_TIMER
|
||||||
|
|
||||||
|
config CORTEX_M_SYSTICK
|
||||||
|
default y
|
||||||
|
|
||||||
|
config SYS_CLOCK_HW_CYCLES_PER_SEC
|
||||||
|
default 48000000
|
||||||
|
|
||||||
|
config SYS_CLOCK_TICKS_PER_SEC
|
||||||
|
default 1000
|
||||||
|
|
||||||
|
endif # RTOS_TIMER
|
||||||
|
|
||||||
|
endif # BOARD_MEC1501MODULAR_ASSY6885
|
259
boards/arm/mec1501modular_assy6885/doc/index.rst
Normal file
259
boards/arm/mec1501modular_assy6885/doc/index.rst
Normal file
|
@ -0,0 +1,259 @@
|
||||||
|
.. _mec1501modular_assy6885:
|
||||||
|
|
||||||
|
MEC1501 Modular card ASSY6885
|
||||||
|
#############################
|
||||||
|
|
||||||
|
Overview
|
||||||
|
********
|
||||||
|
|
||||||
|
The MEC1501 Modular card ASSY6885 is a development board to evaluate the Microchip
|
||||||
|
MEC15XX series microcontrollers. This board can work standalone or be mated with
|
||||||
|
any platform that complies with MECC specification.
|
||||||
|
|
||||||
|
.. image:: ./mec1501modular_assy6885.png
|
||||||
|
:width: 600px
|
||||||
|
:align: center
|
||||||
|
:alt: MEC1501 Modular ASSY 6885
|
||||||
|
|
||||||
|
Hardware
|
||||||
|
********
|
||||||
|
|
||||||
|
- MEC1501HB0SZ ARM Cortex-M4 Processor
|
||||||
|
- 256 KB RAM and 64 KB boot ROM
|
||||||
|
- GPIO headers
|
||||||
|
- UART1 using microUSB
|
||||||
|
- UART0 and UART2 exposed in headers
|
||||||
|
- FAN0, FAN1, FAN2 headers
|
||||||
|
- FAN PWM interface
|
||||||
|
- JTAG/SWD, ETM and MCHP Trace ports
|
||||||
|
- PECI interface 3.0
|
||||||
|
- I2C voltage translator
|
||||||
|
- 10 SMBUS headers
|
||||||
|
- 4 SGPIO headers
|
||||||
|
- VCI interface
|
||||||
|
- 5 independent Hardware Driven PS/2 Ports
|
||||||
|
- eSPI header
|
||||||
|
- 3 Breathing/Blinking LEDs
|
||||||
|
- 2 Sockets for SPI NOR chips
|
||||||
|
- One reset and VCC_PWRDGD pushbuttons
|
||||||
|
- One external PCA9555 I/O port with jumper selectable I2C address.
|
||||||
|
- One external LTC2489 delta-sigma ADC with jumper selectable I2C address.
|
||||||
|
- Board power jumper selectable from +5V 2.1mm/5.5mm barrel connector or USB Micro A connector.
|
||||||
|
|
||||||
|
For more information about the SOC please see the `MEC1501 Reference Manual`_
|
||||||
|
|
||||||
|
Supported Features
|
||||||
|
==================
|
||||||
|
|
||||||
|
The mec1501modular_assy6885 board configuration supports the following hardware
|
||||||
|
features:
|
||||||
|
|
||||||
|
+-----------+------------+-------------------------------------+
|
||||||
|
| Interface | Controller | Driver/Component |
|
||||||
|
+===========+============+=====================================+
|
||||||
|
| NVIC | on-chip | nested vector interrupt controller |
|
||||||
|
+-----------+------------+-------------------------------------+
|
||||||
|
| SYSTICK | on-chip | systick |
|
||||||
|
+-----------+------------+-------------------------------------+
|
||||||
|
| UART | on-chip | serial port |
|
||||||
|
+-----------+------------+-------------------------------------+
|
||||||
|
| GPIO | on-chip | gpio |
|
||||||
|
+-----------+------------+-------------------------------------+
|
||||||
|
| ESPI | on-chip | espi |
|
||||||
|
+-----------+------------+-------------------------------------+
|
||||||
|
| I2C | on-chip | i2c |
|
||||||
|
+-----------+------------+-------------------------------------+
|
||||||
|
| PINMUX | on-chip | pinmux |
|
||||||
|
+-----------+------------+-------------------------------------+
|
||||||
|
|
||||||
|
Other hardware features are not currently supported by Zephyr (at the moment)
|
||||||
|
|
||||||
|
The default configuration can be found in the
|
||||||
|
:zephyr_file:`boards/arm/mec1501modular_assy6885/mec1501modular_assy6885`
|
||||||
|
Kconfig file.
|
||||||
|
|
||||||
|
Connections and IOs
|
||||||
|
===================
|
||||||
|
|
||||||
|
This evaluation board kit is comprised of the following HW blocks:
|
||||||
|
|
||||||
|
- MEC1501 Modular Card ASSY 6885 Rev A0 `MEC1501 Modular EC Card - Assy_6885 Rev A0p1`_
|
||||||
|
|
||||||
|
System Clock
|
||||||
|
============
|
||||||
|
|
||||||
|
The MEC1501 MCU is configured to use the 48Mhz internal oscillator with the
|
||||||
|
on-chip PLL to generate a resulting EC clock rate of 12 MHz. See Processor clock
|
||||||
|
control register in chapter 4 "4.0 POWER, CLOCKS, and RESETS" of the data sheet in
|
||||||
|
the references at the end of this document.
|
||||||
|
|
||||||
|
Serial Port
|
||||||
|
===========
|
||||||
|
UART1 is configured for serial logs.
|
||||||
|
|
||||||
|
Jumper settings
|
||||||
|
***************
|
||||||
|
|
||||||
|
Please follow the jumper settings below to properly demo this
|
||||||
|
board. Advanced users may deviate from this recommendation.
|
||||||
|
|
||||||
|
Jumper setting for MEC1501 Modular Assy 6885 Rev A1p0
|
||||||
|
=====================================================
|
||||||
|
|
||||||
|
Power-related jumpers
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
If you wish to power from type A/B connector ``P10`` set the jumper ``JP35 1-2``.
|
||||||
|
|
||||||
|
If you wish to power through MECC connector ``P1`` and mate to external platform,
|
||||||
|
set the jumper to ``JP35 3-4``.
|
||||||
|
|
||||||
|
.. note:: A single jumper is required in JP35.
|
||||||
|
|
||||||
|
+------+------+------+------+------+------+------+
|
||||||
|
| JP30 | JP31 | JP32 | JP33 | JP34 | JP40 | JP21 |
|
||||||
|
+======+======+======+======+======+======+======+
|
||||||
|
| 1-2 | 1-2 | 1-2 | 1-2 | 1-2 | 1-2 | 1-2 |
|
||||||
|
+------+------+------+------+------+------+------+
|
||||||
|
|
||||||
|
+------+------+------+------+------+
|
||||||
|
| JP6 | JP21 | JP36 | JP27 | JP4 |
|
||||||
|
+======+======+======+======+======+
|
||||||
|
| 2-3 | 1-2 | 1-2 | 2-3 | open |
|
||||||
|
+------+------+------+------+------+
|
||||||
|
|
||||||
|
These jumpers configure nRESETI and JTAG_STRAP respectively.
|
||||||
|
|
||||||
|
+-----------+--------------+
|
||||||
|
| JP22 | JP29 |
|
||||||
|
| (nRESETI) | (JTAG_STRAP) |
|
||||||
|
+===========+==============+
|
||||||
|
| 11-12 | 1-2 |
|
||||||
|
+-----------+--------------+
|
||||||
|
|
||||||
|
Boot-ROM Straps.
|
||||||
|
----------------
|
||||||
|
|
||||||
|
These jumpers configure MEC1501 Boot-ROM straps.
|
||||||
|
|
||||||
|
+-------------+------------+--------------+-------------+
|
||||||
|
| JP37 | J6 | JP41 | JP23 |
|
||||||
|
| (CMP_STRAP) | (CR_STRAP) | (VTR2_STRAP) | (BSS_STRAP) |
|
||||||
|
+=============+============+==============+=============+
|
||||||
|
| 1-2 | 1-2 | 1-2 | 3-4 |
|
||||||
|
+-------------+------------+--------------+-------------+
|
||||||
|
|
||||||
|
|
||||||
|
``JP23 3-4`` pulls SHD SPI CS0# up to VTR2. MEC1501 Boot-ROM samples
|
||||||
|
SHD SPI CS0# and if high, it loads code from SHD SPI.
|
||||||
|
This is the recomended setup.
|
||||||
|
|
||||||
|
+-------------+------------+----------------------------+
|
||||||
|
| CR_STRAP | BSS_STRAP | SOURCE |
|
||||||
|
+-------------+------------+----------------------------+
|
||||||
|
| 0 | X | Use 3.3V Private SPI |
|
||||||
|
+-------------+------------+----------------------------+
|
||||||
|
| 1 | 0 | Use eSPI Flash channel |
|
||||||
|
+-------------+------------+----------------------------+
|
||||||
|
| | 1 | Use 3.3V Shared channel(R)|
|
||||||
|
+-------------+------------+----------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
Jumper location map.
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
+--------------------------------------------------------------------------------------+
|
||||||
|
| |------------| +----------+ J10 || |
|
||||||
|
| [BT1] + +------------+ J50 ++ ++ || |
|
||||||
|
| | JP38 JP43 ++ || || |
|
||||||
|
| + + + +-+ JP4 + + JP26 || || |
|
||||||
|
| JP6 + + + + + + + + || || |
|
||||||
|
| JP31 ++ JP32 JP36 +-+ JP27 + + + + J6 || |
|
||||||
|
| JP18 JP37 JP41 JP42 ++ |
|
||||||
|
| ++ + + +--------+ J48 |
|
||||||
|
| || JP21 + + +--------+ JP22 +----------+ |
|
||||||
|
| J2 || + JP34 JP30 J11 ++ |
|
||||||
|
| ++ + J44 || |
|
||||||
|
| ++ +----------------+ || |
|
||||||
|
| +---------------+ || + JP24 |----------------| ++ |
|
||||||
|
| |---------------| ++ + +----------+ +----------------+ J47 |
|
||||||
|
| JP20 +---------------+ JP23 JP40 +----------+ ++ |
|
||||||
|
| + ++ JP29 || |
|
||||||
|
| + + +----------+ + || |
|
||||||
|
| J52+---------------+ + + +----------+ J5 +-------------+ ++ |
|
||||||
|
| J45+---------------+ JP33 TP57 JP25 +-------------+ J4 J49 |
|
||||||
|
| |
|
||||||
|
| ++ TP4 +----------+ ++ |
|
||||||
|
| ++ + + + + + + TP61 +----------+ ++ |
|
||||||
|
| JP28 + + + + + + TP60 J51 JP35 |
|
||||||
|
| TP58 JP16 JP11 JP13 JP15 JP10 |
|
||||||
|
| TP5 |
|
||||||
|
| TP6 TP1 |
|
||||||
|
+--------------------------------------------------------------------------------------+
|
||||||
|
|
||||||
|
|
||||||
|
Programming and Debugging
|
||||||
|
*************************
|
||||||
|
|
||||||
|
Building
|
||||||
|
==========
|
||||||
|
|
||||||
|
#. Build :ref:`hello_world` application as you would normally do.
|
||||||
|
|
||||||
|
#. Once you have ``zephyr.bin``, use the `SPI Image Gen`_ microchip tool
|
||||||
|
to create the final binary. You need the output from this tool to flash
|
||||||
|
in the SHD SPI memory.
|
||||||
|
|
||||||
|
Flashing
|
||||||
|
========
|
||||||
|
|
||||||
|
#. Connect Dediprog into header ``J2``.
|
||||||
|
|
||||||
|
#. Flash the SPI NOR ``U3`` at offset 0x0 using Dediprog SF100
|
||||||
|
or a similar tool for flashing SPI chips.
|
||||||
|
|
||||||
|
#. Run your favorite terminal program to listen for output. Under Linux the
|
||||||
|
terminal should be :code:`/dev/ttyACM0`. For example:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
$ minicom -D /dev/ttyACM0 -o
|
||||||
|
|
||||||
|
The -o option tells minicom not to send the modem initialization
|
||||||
|
string. Connection should be configured as follows:
|
||||||
|
|
||||||
|
- Speed: 115200
|
||||||
|
- Data: 8 bits
|
||||||
|
- Parity: None
|
||||||
|
- Stop bits: 1
|
||||||
|
|
||||||
|
#. Connect the MEC1501MODULAR_ASSY6885 board to your host computer using the
|
||||||
|
UART1 port and apply power.
|
||||||
|
|
||||||
|
You should see ``"Hello World! mec1501modular_assy6885"`` in your terminal.
|
||||||
|
|
||||||
|
Debugging
|
||||||
|
=========
|
||||||
|
This board comes with a Cortex ETM port which facilitates tracing and debugging
|
||||||
|
using a single physical connection. In addition, it comes with sockets for
|
||||||
|
JTAG only sessions.
|
||||||
|
|
||||||
|
HW Issues
|
||||||
|
=========
|
||||||
|
In case you don't see your application running, please make sure ``LED1`` is lit.
|
||||||
|
If is off, then check the power related jumpers again.
|
||||||
|
|
||||||
|
References
|
||||||
|
**********
|
||||||
|
.. target-notes::
|
||||||
|
|
||||||
|
.. _MEC1501 Preliminary Data Sheet:
|
||||||
|
https://github.com/MicrochipTech/CPGZephyrDocs/blob/master/MEC1501/MEC1501_Datasheet.pdf
|
||||||
|
.. _MEC1501 Reference Manual:
|
||||||
|
https://github.com/MicrochipTech/CPGZephyrDocs/blob/master/MEC1501/MEC1501_Datasheet.pdf
|
||||||
|
.. _MEC1501 Modular EC Card - Assy_6885 Rev A0p1:
|
||||||
|
https://github.com/MicrochipTech/CPGZephyrDocs/blob/master/MEC1501/MEC1501%20Modular%20EC%20Card%20-%20Assy_6885%20Rev%20A0p1%20-%20SCH.pdf
|
||||||
|
.. _SPI Image Gen:
|
||||||
|
https://github.com/MicrochipTech/CPGZephyrDocs/tree/master/MEC1501/SPI_image_gen
|
Binary file not shown.
After Width: | Height: | Size: 9.8 MiB |
|
@ -0,0 +1,51 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2018, Intel Corporation
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include <microchip/mec1501hsz.dtsi>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Microchip MEC1501MODULAR_ASSY6885 evaluation board";
|
||||||
|
compatible = "microchip,mec1501modular_assy6885",
|
||||||
|
"microchip,mec1501hsz";
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
zephyr,sram = &sram0;
|
||||||
|
zephyr,console = &uart1;
|
||||||
|
zephyr,flash = &flash0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart1 {
|
||||||
|
status = "okay";
|
||||||
|
current-speed = <115200>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c0 {
|
||||||
|
status = "okay";
|
||||||
|
port_sel = <0>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c1 {
|
||||||
|
status = "okay";
|
||||||
|
port_sel = <1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&i2c2 {
|
||||||
|
status = "okay";
|
||||||
|
port_sel = <7>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&espi0 {
|
||||||
|
status = "okay";
|
||||||
|
agg_io_irq = <11>;
|
||||||
|
agg_vw_irq = <15>;
|
||||||
|
agg_pc_irq = <7>;
|
||||||
|
io_girq = <19>;
|
||||||
|
vw_girq = <24>;
|
||||||
|
pc_girq = <15>;
|
||||||
|
};
|
|
@ -0,0 +1,20 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2019, Intel Corporation
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
|
identifier: mec1501modular_assy6885
|
||||||
|
name: MEC1501 MODULAR ASSY 6885
|
||||||
|
type: mcu
|
||||||
|
arch: arm
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
- gnuarmemb
|
||||||
|
ram: 32
|
||||||
|
flash: 224
|
||||||
|
supported:
|
||||||
|
- gpio
|
||||||
|
- i2c
|
||||||
|
- pinmux
|
||||||
|
- espi
|
|
@ -0,0 +1,20 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2019, Intel Corporation
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
|
CONFIG_ARM=y
|
||||||
|
CONFIG_SOC_MEC1501_HSZ=y
|
||||||
|
CONFIG_SOC_SERIES_MEC1501X=y
|
||||||
|
CONFIG_BOARD_MEC1501MODULAR_ASSY6885=y
|
||||||
|
CONFIG_RTOS_TIMER=n
|
||||||
|
|
||||||
|
CONFIG_CONSOLE=y
|
||||||
|
CONFIG_UART_CONSOLE=y
|
||||||
|
CONFIG_SERIAL=y
|
||||||
|
CONFIG_PINMUX=y
|
||||||
|
CONFIG_GPIO=y
|
||||||
|
CONFIG_I2C=y
|
||||||
|
CONFIG_I2C_INIT_PRIORITY=60
|
||||||
|
CONFIG_ESPI=y
|
100
boards/arm/mec1501modular_assy6885/pinmux.c
Normal file
100
boards/arm/mec1501modular_assy6885/pinmux.c
Normal file
|
@ -0,0 +1,100 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2019 Intel Corporation
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <device.h>
|
||||||
|
#include <init.h>
|
||||||
|
#include <kernel.h>
|
||||||
|
#include <drivers/pinmux.h>
|
||||||
|
|
||||||
|
#include "soc.h"
|
||||||
|
|
||||||
|
static int board_pinmux_init(struct device *dev)
|
||||||
|
{
|
||||||
|
ARG_UNUSED(dev);
|
||||||
|
|
||||||
|
#ifdef CONFIG_PINMUX_XEC_GPIO000_036
|
||||||
|
struct device *porta =
|
||||||
|
device_get_binding(CONFIG_PINMUX_XEC_GPIO000_036_NAME);
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_PINMUX_XEC_GPIO040_076
|
||||||
|
struct device *portb =
|
||||||
|
device_get_binding(CONFIG_PINMUX_XEC_GPIO040_076_NAME);
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_PINMUX_XEC_GPIO100_136
|
||||||
|
struct device *portc =
|
||||||
|
device_get_binding(CONFIG_PINMUX_XEC_GPIO100_136_NAME);
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_PINMUX_XEC_GPIO140_176
|
||||||
|
struct device *portd =
|
||||||
|
device_get_binding(CONFIG_PINMUX_XEC_GPIO140_176_NAME);
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_PINMUX_XEC_GPIO200_236
|
||||||
|
struct device *porte =
|
||||||
|
device_get_binding(CONFIG_PINMUX_XEC_GPIO200_236_NAME);
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_PINMUX_XEC_GPIO240_276
|
||||||
|
struct device *portf =
|
||||||
|
device_get_binding(CONFIG_PINMUX_XEC_GPIO240_276_NAME);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Release JTAG TDI and JTAG TDO pins so they can be
|
||||||
|
* controlled by their respective PCR register (UART2).
|
||||||
|
* For more details see table 44-1
|
||||||
|
*/
|
||||||
|
ECS_REGS->DEBUG_CTRL = (MCHP_ECS_DCTRL_DBG_EN |
|
||||||
|
MCHP_ECS_DCTRL_MODE_SWD);
|
||||||
|
|
||||||
|
/* See table 2-4 from the data sheet for pin multiplexing*/
|
||||||
|
#ifdef CONFIG_UART_NS16550_PORT_1
|
||||||
|
/* Set muxing, for UART 1 TX/RX and power up */
|
||||||
|
mchp_pcr_periph_slp_ctrl(PCR_UART1, MCHP_PCR_SLEEP_DIS);
|
||||||
|
|
||||||
|
UART1_REGS->CFG_SEL = (MCHP_UART_LD_CFG_INTCLK +
|
||||||
|
MCHP_UART_LD_CFG_RESET_SYS + MCHP_UART_LD_CFG_NO_INVERT);
|
||||||
|
UART1_REGS->ACTV = MCHP_UART_LD_ACTIVATE;
|
||||||
|
|
||||||
|
pinmux_pin_set(portd, MCHP_GPIO_170, MCHP_GPIO_CTRL_MUX_F1);
|
||||||
|
pinmux_pin_set(portd, MCHP_GPIO_171, MCHP_GPIO_CTRL_MUX_F1);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_I2C_XEC_0
|
||||||
|
/* Set muxing, for I2C0 - SMB00 */
|
||||||
|
pinmux_pin_set(porta, MCHP_GPIO_003, MCHP_GPIO_CTRL_MUX_F1);
|
||||||
|
pinmux_pin_set(porta, MCHP_GPIO_004, MCHP_GPIO_CTRL_MUX_F1);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_I2C_XEC_1
|
||||||
|
/* Set muxing for I2C1 - SMB01 */
|
||||||
|
pinmux_pin_set(portc, MCHP_GPIO_130, MCHP_GPIO_CTRL_MUX_F1);
|
||||||
|
pinmux_pin_set(portc, MCHP_GPIO_131, MCHP_GPIO_CTRL_MUX_F1);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_I2C_XEC_2
|
||||||
|
/* Set muxing, for I2C2 - SMB04 */
|
||||||
|
pinmux_pin_set(portd, MCHP_GPIO_143, MCHP_GPIO_CTRL_MUX_F1);
|
||||||
|
pinmux_pin_set(portd, MCHP_GPIO_144, MCHP_GPIO_CTRL_MUX_F1);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_ESPI_XEC
|
||||||
|
mchp_pcr_periph_slp_ctrl(PCR_ESPI, MCHP_PCR_SLEEP_DIS);
|
||||||
|
/* ESPI RESET */
|
||||||
|
pinmux_pin_set(portb, MCHP_GPIO_061, MCHP_GPIO_CTRL_MUX_F1);
|
||||||
|
/* ESPI ALERT */
|
||||||
|
pinmux_pin_set(portb, MCHP_GPIO_063, MCHP_GPIO_CTRL_MUX_F1);
|
||||||
|
/* ESPI CS */
|
||||||
|
pinmux_pin_set(portb, MCHP_GPIO_066, MCHP_GPIO_CTRL_MUX_F1);
|
||||||
|
/* ESPI CLK */
|
||||||
|
pinmux_pin_set(portb, MCHP_GPIO_065, MCHP_GPIO_CTRL_MUX_F1);
|
||||||
|
/* ESPI IO1-4*/
|
||||||
|
pinmux_pin_set(portb, MCHP_GPIO_070, MCHP_GPIO_CTRL_MUX_F1);
|
||||||
|
pinmux_pin_set(portb, MCHP_GPIO_071, MCHP_GPIO_CTRL_MUX_F1);
|
||||||
|
pinmux_pin_set(portb, MCHP_GPIO_072, MCHP_GPIO_CTRL_MUX_F1);
|
||||||
|
pinmux_pin_set(portb, MCHP_GPIO_073, MCHP_GPIO_CTRL_MUX_F1);
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
SYS_INIT(board_pinmux_init, PRE_KERNEL_1, CONFIG_PINMUX_INIT_PRIORITY);
|
Loading…
Add table
Add a link
Reference in a new issue