forked from lowRISC/opentitan
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[ipgen,pinmux] Generate pinmux files with ipgen
The older way to generate files is preserved. Part of pinmux lowRISC#8440 Signed-off-by: Guillermo Maturana <[email protected]>
- Loading branch information
1 parent
1cdf199
commit b99a222
Showing
41 changed files
with
48,843 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
# Copyright lowRISC contributors (OpenTitan project). | ||
# Licensed under the Apache License, Version 2.0, see LICENSE for details. | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
package(default_visibility = ["//visibility:public"]) | ||
|
||
load( | ||
"//rules:autogen.bzl", | ||
"autogen_hjson_c_header", | ||
"autogen_hjson_rust_header", | ||
) | ||
|
||
autogen_hjson_c_header( | ||
name = "pinmux_c_regs", | ||
srcs = [ | ||
"data/pinmux.hjson", | ||
], | ||
) | ||
|
||
autogen_hjson_rust_header( | ||
name = "pinmux_rust_regs", | ||
srcs = [ | ||
"data/pinmux.hjson", | ||
], | ||
) | ||
|
||
filegroup( | ||
name = "all_files", | ||
srcs = glob(["**"]), | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# Pinmux Technical Specification | ||
|
||
|
||
# Overview | ||
|
||
This document specifies the functionality of the pin multiplexer (`pinmux`) peripheral. | ||
This module conforms to the [OpenTitan guideline for peripheral device functionality](https://opentitan.org/book/doc/contributing/hw/comportability). | ||
See that document for integration overview within the broader OpenTitan top level system. | ||
The module provides a mechanism to reconfigure the peripheral-to-pin mapping at runtime, which greatly enhances the system flexibility. | ||
In addition to that, the `pinmux` also allows the user to control pad attributes (such as pull-up, pull-down, open-drain, drive-strength, keeper and inversion), and it contains features that facilitate low-power modes of the system. | ||
For example, the sleep behavior of each pad can be programmed individually, and the module contains additional pattern detectors that can listen on any IO and wake up the system if a specific pattern has been detected. | ||
|
||
## Features | ||
|
||
- Configurable number of chip bidirectional IOs | ||
|
||
- Configurable number of peripheral inputs and outputs | ||
|
||
- Programmable mapping from peripheral outputs (and output enables) to top-level outputs (and output enables) | ||
|
||
- Programmable mapping from top-level inputs to peripheral inputs | ||
|
||
- Programmable control of chip pad attributes like output drive-strength, pull-up, pull-down and virtual open-drain | ||
|
||
- Programmable pattern detectors to detect wakeup conditions during sleep mode | ||
|
||
- Programmable sleep mode behavior | ||
|
||
- Support for life-cycle-based JTAG (TAP) isolation and muxing |
Oops, something went wrong.