diff --git a/.github/workflows/ci_set_matrix.py b/.github/workflows/ci_set_matrix.py
index 048c5f0ce..ddb3ee1fb 100755
--- a/.github/workflows/ci_set_matrix.py
+++ b/.github/workflows/ci_set_matrix.py
@@ -41,7 +41,8 @@ family_list = {
"stm32f7": ["arm-gcc", "arm-clang", "arm-iar"],
"stm32g0 stm32g4 stm32h5": ["arm-gcc", "arm-clang", "arm-iar"],
"stm32h7 stm32h7rs": ["arm-gcc", "arm-clang", "arm-iar"],
- "stm32l0 stm32l4 stm32n6": ["arm-gcc", "arm-clang", "arm-iar"],
+ "stm32l0 stm32l4": ["arm-gcc", "arm-clang", "arm-iar"],
+ "stm32n6": ["arm-gcc"],
"stm32u5 stm32wb": ["arm-gcc", "arm-clang", "arm-iar"],
"xmc4000": ["arm-gcc"],
"-bespressif_s2_devkitc": ["esp-idf"],
diff --git a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/board.cmake b/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/board.cmake
index ea9ffacf4..f52b70408 100644
--- a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/board.cmake
+++ b/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/board.cmake
@@ -6,19 +6,14 @@ set(LD_FILE_Clang ${LD_FILE_GNU})
set(LD_FILE_IAR ${CMAKE_CURRENT_LIST_DIR}/stm32h7s3xx_flash.icf)
function(update_board TARGET)
-
target_compile_definitions(${TARGET} PUBLIC
STM32H7S3xx
- SEGGER_RTT_SECTION="noncacheable_buffer"
- BUFFER_SIZE_UP=0x3000
)
-
target_sources(${TARGET} PUBLIC
- # BSP
- ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/tcpp0203/tcpp0203.c
- ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/tcpp0203/tcpp0203_reg.c
+ ${ST_TCPP0203}/tcpp0203.c
+ ${ST_TCPP0203}/tcpp0203_reg.c
)
target_include_directories(${TARGET} PUBLIC
- ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/tcpp0203
+ ${ST_TCPP0203}
)
endfunction()
diff --git a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/board.mk b/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/board.mk
index 1946f523c..cf0c2ff54 100644
--- a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/board.mk
+++ b/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/board.mk
@@ -12,12 +12,8 @@ LD_FILE_GCC = $(BOARD_PATH)/stm32h7s3xx_flash.ld
LD_FILE_IAR = $(BOARD_PATH)/stm32h7s3xx_flash.icf
SRC_C += \
- $(BOARD_PATH)/tcpp0203/tcpp0203.c \
- $(BOARD_PATH)/tcpp0203/tcpp0203_reg.c \
+ $(ST_TCPP0203)/tcpp0203.c \
+ $(ST_TCPP0203)/tcpp0203_reg.c \
INC += \
- $(TOP)/$(BOARD_PATH)/tcpp0203 \
-
-CFLAGS += \
- -DSEGGER_RTT_SECTION=\"noncacheable_buffer\" \
- -DBUFFER_SIZE_UP=0x3000 \
+ $(TOP)/$(ST_TCPP0203) \
diff --git a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/LICENSE.txt b/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/LICENSE.txt
deleted file mode 100644
index 1cbbc544a..000000000
--- a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/LICENSE.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-This software component is provided to you as part of a software package and
-applicable license terms are in the Package_license file. If you received this
-software component outside of a package or without applicable license terms,
-the terms of the BSD-3-Clause license shall apply.
-You may obtain a copy of the BSD-3-Clause at:
-https://opensource.org/licenses/BSD-3-Clause
diff --git a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/Release_Notes.html b/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/Release_Notes.html
deleted file mode 100644
index 6bbba86a4..000000000
--- a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/Release_Notes.html
+++ /dev/null
@@ -1,205 +0,0 @@
-
-
-
-
-
-
- Release Notes for TCPP0203 Component Driver
-
-
-
-
-
-
-
-
-
-Release Notes for TCPP0203 Component Driver
-Copyright © 2020 STMicroelectronics
-
-
-
-
Purpose
-
This driver provides a set of functions needed to drive TCPP0203 Type-C Port Protection component
-
-
-
Update History
-
-
-
-
Main Changes
-
Maintenance release
-
Contents
-
-
-
-
-
-
-MISRA Rule-81.13 correction on TCPP0203 component driver files |
-
-
-
-
Backward compatibility
-
No compatibility break with previous version
-
Dependencies
-
-
-
-
-
-
Main Changes
-
Maintenance release
-
Contents
-
-Fixed bugs list
-
-
-
-
-
-MISRA corrections on TCPP0203 component driver files |
-
-
-
-
Known Limitations
-
Outstanding bugs list : None
-
Requirements not met or planned in a forthcoming release : None
-
-
-- IAR Embedded Workbench for ARM (EWARM) toolchain V8.32.3
-- RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.27.1
-- STM32CubeIDE toolchain V1.8.0
-
-
Backward compatibility
-
No compatibility break with previous version
-
Dependencies
-
-
-
-
-
-
Main Changes
-
Maintenance release
-
Contents
-
-Fixed bugs list
-
-
-
-
-
-License updates |
-
-
-
-
Known Limitations
-
Outstanding bugs list : None
-
Requirements not met or planned in a forthcoming release : None
-
-
-- IAR Embedded Workbench for ARM (EWARM) toolchain V8.32.3
-- RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.27.1
-- STM32CubeIDE toolchain V1.6.0
-
-
Backward compatibility
-
No compatibility break with previous version
-
Dependencies
-
-
-
-
-
-
Main Changes
-
Maintenance release
-
Contents
-
-Fixed bugs list
-
-
-
-
-
-CodeSpell correction on TCPP0203 component driver files |
-
-
-
-
Known Limitations
-
Outstanding bugs list : None
-
Requirements not met or planned in a forthcoming release : None
-
-
-- IAR Embedded Workbench for ARM (EWARM) toolchain V8.32.3
-- RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.27.1
-- STM32CubeIDE toolchain V1.5.0
-
-
Backward compatibility
-
No compatibility break with previous version
-
Dependencies
-
-
-
-
-
-
Main Changes
-
Maintenance release
-
Contents
-
-Fixed bugs list
-
-
-
-
-
-MCUAstyle correction on TCPP0203 component driver files |
-
-
-
-
Known Limitations
-
Outstanding bugs list : None
-
Requirements not met or planned in a forthcoming release : None
-
-
-- IAR Embedded Workbench for ARM (EWARM) toolchain V8.32.3
-- RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.27.1
-- STM32CubeIDE toolchain V1.5.0
-
-
Backward compatibility
-
No compatibility break with previous version
-
Dependencies
-
-
-
-
-
-
Main Changes
-
-- First official release of TCPP0203 Type-C port Protection Component drivers
-
-
-
-
-
-
-
-
diff --git a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/_htmresc/favicon.png b/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/_htmresc/favicon.png
deleted file mode 100644
index 06713eec4..000000000
Binary files a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/_htmresc/favicon.png and /dev/null differ
diff --git a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/_htmresc/mini-st_2020.css b/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/_htmresc/mini-st_2020.css
deleted file mode 100644
index dd19969d1..000000000
--- a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/_htmresc/mini-st_2020.css
+++ /dev/null
@@ -1,1703 +0,0 @@
-@charset "UTF-8";
-/*
- Flavor name: Custom (mini-custom)
- Generated online - https://minicss.org/flavors
- mini.css version: v3.0.1
-*/
-/*
- Browsers resets and base typography.
-*/
-/* Core module CSS variable definitions */
-:root {
- --fore-color: #03234b;
- --secondary-fore-color: #03234b;
- --back-color: #ffffff;
- --secondary-back-color: #ffffff;
- --blockquote-color: #e6007e;
- --pre-color: #e6007e;
- --border-color: #3cb4e6;
- --secondary-border-color: #3cb4e6;
- --heading-ratio: 1.2;
- --universal-margin: 0.5rem;
- --universal-padding: 0.25rem;
- --universal-border-radius: 0.075rem;
- --background-margin: 1.5%;
- --a-link-color: #3cb4e6;
- --a-visited-color: #8c0078; }
-
-html {
- font-size: 13.5px; }
-
-a, b, del, em, i, ins, q, span, strong, u {
- font-size: 1em; }
-
-html, * {
- font-family: -apple-system, BlinkMacSystemFont, Helvetica, arial, sans-serif;
- line-height: 1.25;
- -webkit-text-size-adjust: 100%; }
-
-* {
- font-size: 1rem; }
-
-body {
- margin: 0;
- color: var(--fore-color);
- @background: var(--back-color);
- background: var(--back-color) linear-gradient(#ffd200, #ffd200) repeat-y left top;
- background-size: var(--background-margin);
- }
-
-details {
- display: block; }
-
-summary {
- display: list-item; }
-
-abbr[title] {
- border-bottom: none;
- text-decoration: underline dotted; }
-
-input {
- overflow: visible; }
-
-img {
- max-width: 100%;
- height: auto; }
-
-h1, h2, h3, h4, h5, h6 {
- line-height: 1.25;
- margin: calc(1.5 * var(--universal-margin)) var(--universal-margin);
- font-weight: 400; }
- h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
- color: var(--secondary-fore-color);
- display: block;
- margin-top: -0.25rem; }
-
-h1 {
- font-size: calc(1rem * var(--heading-ratio) * var(--heading-ratio) * var(--heading-ratio)); }
-
-h2 {
- font-size: calc(1rem * var(--heading-ratio) * var(--heading-ratio) );
- border-style: none none solid none ;
- border-width: thin;
- border-color: var(--border-color); }
-h3 {
- font-size: calc(1rem * var(--heading-ratio) ); }
-
-h4 {
- font-size: calc(1rem * var(--heading-ratio)); }
-
-h5 {
- font-size: 1rem; }
-
-h6 {
- font-size: calc(1rem / var(--heading-ratio)); }
-
-p {
- margin: var(--universal-margin); }
-
-ol, ul {
- margin: var(--universal-margin);
- padding-left: calc(3 * var(--universal-margin)); }
-
-b, strong {
- font-weight: 700; }
-
-hr {
- box-sizing: content-box;
- border: 0;
- line-height: 1.25em;
- margin: var(--universal-margin);
- height: 0.0714285714rem;
- background: linear-gradient(to right, transparent, var(--border-color) 20%, var(--border-color) 80%, transparent); }
-
-blockquote {
- display: block;
- position: relative;
- font-style: italic;
- color: var(--secondary-fore-color);
- margin: var(--universal-margin);
- padding: calc(3 * var(--universal-padding));
- border: 0.0714285714rem solid var(--secondary-border-color);
- border-left: 0.3rem solid var(--blockquote-color);
- border-radius: 0 var(--universal-border-radius) var(--universal-border-radius) 0; }
- blockquote:before {
- position: absolute;
- top: calc(0rem - var(--universal-padding));
- left: 0;
- font-family: sans-serif;
- font-size: 2rem;
- font-weight: 800;
- content: "\201c";
- color: var(--blockquote-color); }
- blockquote[cite]:after {
- font-style: normal;
- font-size: 0.75em;
- font-weight: 700;
- content: "\a— " attr(cite);
- white-space: pre; }
-
-code, kbd, pre, samp {
- font-family: Menlo, Consolas, monospace;
- font-size: 0.85em; }
-
-code {
- background: var(--secondary-back-color);
- border-radius: var(--universal-border-radius);
- padding: calc(var(--universal-padding) / 4) calc(var(--universal-padding) / 2); }
-
-kbd {
- background: var(--fore-color);
- color: var(--back-color);
- border-radius: var(--universal-border-radius);
- padding: calc(var(--universal-padding) / 4) calc(var(--universal-padding) / 2); }
-
-pre {
- overflow: auto;
- background: var(--secondary-back-color);
- padding: calc(1.5 * var(--universal-padding));
- margin: var(--universal-margin);
- border: 0.0714285714rem solid var(--secondary-border-color);
- border-left: 0.2857142857rem solid var(--pre-color);
- border-radius: 0 var(--universal-border-radius) var(--universal-border-radius) 0; }
-
-sup, sub, code, kbd {
- line-height: 0;
- position: relative;
- vertical-align: baseline; }
-
-small, sup, sub, figcaption {
- font-size: 0.75em; }
-
-sup {
- top: -0.5em; }
-
-sub {
- bottom: -0.25em; }
-
-figure {
- margin: var(--universal-margin); }
-
-figcaption {
- color: var(--secondary-fore-color); }
-
-a {
- text-decoration: none; }
- a:link {
- color: var(--a-link-color); }
- a:visited {
- color: var(--a-visited-color); }
- a:hover, a:focus {
- text-decoration: underline; }
-
-/*
- Definitions for the grid system, cards and containers.
-*/
-.container {
- margin: 0 auto;
- padding: 0 calc(1.5 * var(--universal-padding)); }
-
-.row {
- box-sizing: border-box;
- display: flex;
- flex: 0 1 auto;
- flex-flow: row wrap;
- margin: 0 0 0 var(--background-margin); }
-
-.col-sm,
-[class^='col-sm-'],
-[class^='col-sm-offset-'],
-.row[class*='cols-sm-'] > * {
- box-sizing: border-box;
- flex: 0 0 auto;
- padding: 0 calc(var(--universal-padding) / 2); }
-
-.col-sm,
-.row.cols-sm > * {
- max-width: 100%;
- flex-grow: 1;
- flex-basis: 0; }
-
-.col-sm-1,
-.row.cols-sm-1 > * {
- max-width: 8.3333333333%;
- flex-basis: 8.3333333333%; }
-
-.col-sm-offset-0 {
- margin-left: 0; }
-
-.col-sm-2,
-.row.cols-sm-2 > * {
- max-width: 16.6666666667%;
- flex-basis: 16.6666666667%; }
-
-.col-sm-offset-1 {
- margin-left: 8.3333333333%; }
-
-.col-sm-3,
-.row.cols-sm-3 > * {
- max-width: 25%;
- flex-basis: 25%; }
-
-.col-sm-offset-2 {
- margin-left: 16.6666666667%; }
-
-.col-sm-4,
-.row.cols-sm-4 > * {
- max-width: 33.3333333333%;
- flex-basis: 33.3333333333%; }
-
-.col-sm-offset-3 {
- margin-left: 25%; }
-
-.col-sm-5,
-.row.cols-sm-5 > * {
- max-width: 41.6666666667%;
- flex-basis: 41.6666666667%; }
-
-.col-sm-offset-4 {
- margin-left: 33.3333333333%; }
-
-.col-sm-6,
-.row.cols-sm-6 > * {
- max-width: 50%;
- flex-basis: 50%; }
-
-.col-sm-offset-5 {
- margin-left: 41.6666666667%; }
-
-.col-sm-7,
-.row.cols-sm-7 > * {
- max-width: 58.3333333333%;
- flex-basis: 58.3333333333%; }
-
-.col-sm-offset-6 {
- margin-left: 50%; }
-
-.col-sm-8,
-.row.cols-sm-8 > * {
- max-width: 66.6666666667%;
- flex-basis: 66.6666666667%; }
-
-.col-sm-offset-7 {
- margin-left: 58.3333333333%; }
-
-.col-sm-9,
-.row.cols-sm-9 > * {
- max-width: 75%;
- flex-basis: 75%; }
-
-.col-sm-offset-8 {
- margin-left: 66.6666666667%; }
-
-.col-sm-10,
-.row.cols-sm-10 > * {
- max-width: 83.3333333333%;
- flex-basis: 83.3333333333%; }
-
-.col-sm-offset-9 {
- margin-left: 75%; }
-
-.col-sm-11,
-.row.cols-sm-11 > * {
- max-width: 91.6666666667%;
- flex-basis: 91.6666666667%; }
-
-.col-sm-offset-10 {
- margin-left: 83.3333333333%; }
-
-.col-sm-12,
-.row.cols-sm-12 > * {
- max-width: 100%;
- flex-basis: 100%; }
-
-.col-sm-offset-11 {
- margin-left: 91.6666666667%; }
-
-.col-sm-normal {
- order: initial; }
-
-.col-sm-first {
- order: -999; }
-
-.col-sm-last {
- order: 999; }
-
-@media screen and (min-width: 500px) {
- .col-md,
- [class^='col-md-'],
- [class^='col-md-offset-'],
- .row[class*='cols-md-'] > * {
- box-sizing: border-box;
- flex: 0 0 auto;
- padding: 0 calc(var(--universal-padding) / 2); }
-
- .col-md,
- .row.cols-md > * {
- max-width: 100%;
- flex-grow: 1;
- flex-basis: 0; }
-
- .col-md-1,
- .row.cols-md-1 > * {
- max-width: 8.3333333333%;
- flex-basis: 8.3333333333%; }
-
- .col-md-offset-0 {
- margin-left: 0; }
-
- .col-md-2,
- .row.cols-md-2 > * {
- max-width: 16.6666666667%;
- flex-basis: 16.6666666667%; }
-
- .col-md-offset-1 {
- margin-left: 8.3333333333%; }
-
- .col-md-3,
- .row.cols-md-3 > * {
- max-width: 25%;
- flex-basis: 25%; }
-
- .col-md-offset-2 {
- margin-left: 16.6666666667%; }
-
- .col-md-4,
- .row.cols-md-4 > * {
- max-width: 33.3333333333%;
- flex-basis: 33.3333333333%; }
-
- .col-md-offset-3 {
- margin-left: 25%; }
-
- .col-md-5,
- .row.cols-md-5 > * {
- max-width: 41.6666666667%;
- flex-basis: 41.6666666667%; }
-
- .col-md-offset-4 {
- margin-left: 33.3333333333%; }
-
- .col-md-6,
- .row.cols-md-6 > * {
- max-width: 50%;
- flex-basis: 50%; }
-
- .col-md-offset-5 {
- margin-left: 41.6666666667%; }
-
- .col-md-7,
- .row.cols-md-7 > * {
- max-width: 58.3333333333%;
- flex-basis: 58.3333333333%; }
-
- .col-md-offset-6 {
- margin-left: 50%; }
-
- .col-md-8,
- .row.cols-md-8 > * {
- max-width: 66.6666666667%;
- flex-basis: 66.6666666667%; }
-
- .col-md-offset-7 {
- margin-left: 58.3333333333%; }
-
- .col-md-9,
- .row.cols-md-9 > * {
- max-width: 75%;
- flex-basis: 75%; }
-
- .col-md-offset-8 {
- margin-left: 66.6666666667%; }
-
- .col-md-10,
- .row.cols-md-10 > * {
- max-width: 83.3333333333%;
- flex-basis: 83.3333333333%; }
-
- .col-md-offset-9 {
- margin-left: 75%; }
-
- .col-md-11,
- .row.cols-md-11 > * {
- max-width: 91.6666666667%;
- flex-basis: 91.6666666667%; }
-
- .col-md-offset-10 {
- margin-left: 83.3333333333%; }
-
- .col-md-12,
- .row.cols-md-12 > * {
- max-width: 100%;
- flex-basis: 100%; }
-
- .col-md-offset-11 {
- margin-left: 91.6666666667%; }
-
- .col-md-normal {
- order: initial; }
-
- .col-md-first {
- order: -999; }
-
- .col-md-last {
- order: 999; } }
-@media screen and (min-width: 1280px) {
- .col-lg,
- [class^='col-lg-'],
- [class^='col-lg-offset-'],
- .row[class*='cols-lg-'] > * {
- box-sizing: border-box;
- flex: 0 0 auto;
- padding: 0 calc(var(--universal-padding) / 2); }
-
- .col-lg,
- .row.cols-lg > * {
- max-width: 100%;
- flex-grow: 1;
- flex-basis: 0; }
-
- .col-lg-1,
- .row.cols-lg-1 > * {
- max-width: 8.3333333333%;
- flex-basis: 8.3333333333%; }
-
- .col-lg-offset-0 {
- margin-left: 0; }
-
- .col-lg-2,
- .row.cols-lg-2 > * {
- max-width: 16.6666666667%;
- flex-basis: 16.6666666667%; }
-
- .col-lg-offset-1 {
- margin-left: 8.3333333333%; }
-
- .col-lg-3,
- .row.cols-lg-3 > * {
- max-width: 25%;
- flex-basis: 25%; }
-
- .col-lg-offset-2 {
- margin-left: 16.6666666667%; }
-
- .col-lg-4,
- .row.cols-lg-4 > * {
- max-width: 33.3333333333%;
- flex-basis: 33.3333333333%; }
-
- .col-lg-offset-3 {
- margin-left: 25%; }
-
- .col-lg-5,
- .row.cols-lg-5 > * {
- max-width: 41.6666666667%;
- flex-basis: 41.6666666667%; }
-
- .col-lg-offset-4 {
- margin-left: 33.3333333333%; }
-
- .col-lg-6,
- .row.cols-lg-6 > * {
- max-width: 50%;
- flex-basis: 50%; }
-
- .col-lg-offset-5 {
- margin-left: 41.6666666667%; }
-
- .col-lg-7,
- .row.cols-lg-7 > * {
- max-width: 58.3333333333%;
- flex-basis: 58.3333333333%; }
-
- .col-lg-offset-6 {
- margin-left: 50%; }
-
- .col-lg-8,
- .row.cols-lg-8 > * {
- max-width: 66.6666666667%;
- flex-basis: 66.6666666667%; }
-
- .col-lg-offset-7 {
- margin-left: 58.3333333333%; }
-
- .col-lg-9,
- .row.cols-lg-9 > * {
- max-width: 75%;
- flex-basis: 75%; }
-
- .col-lg-offset-8 {
- margin-left: 66.6666666667%; }
-
- .col-lg-10,
- .row.cols-lg-10 > * {
- max-width: 83.3333333333%;
- flex-basis: 83.3333333333%; }
-
- .col-lg-offset-9 {
- margin-left: 75%; }
-
- .col-lg-11,
- .row.cols-lg-11 > * {
- max-width: 91.6666666667%;
- flex-basis: 91.6666666667%; }
-
- .col-lg-offset-10 {
- margin-left: 83.3333333333%; }
-
- .col-lg-12,
- .row.cols-lg-12 > * {
- max-width: 100%;
- flex-basis: 100%; }
-
- .col-lg-offset-11 {
- margin-left: 91.6666666667%; }
-
- .col-lg-normal {
- order: initial; }
-
- .col-lg-first {
- order: -999; }
-
- .col-lg-last {
- order: 999; } }
-/* Card component CSS variable definitions */
-:root {
- --card-back-color: #3cb4e6;
- --card-fore-color: #03234b;
- --card-border-color: #03234b; }
-
-.card {
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- align-self: center;
- position: relative;
- width: 100%;
- background: var(--card-back-color);
- color: var(--card-fore-color);
- border: 0.0714285714rem solid var(--card-border-color);
- border-radius: var(--universal-border-radius);
- margin: var(--universal-margin);
- overflow: hidden; }
- @media screen and (min-width: 320px) {
- .card {
- max-width: 320px; } }
- .card > .sectione {
- background: var(--card-back-color);
- color: var(--card-fore-color);
- box-sizing: border-box;
- margin: 0;
- border: 0;
- border-radius: 0;
- border-bottom: 0.0714285714rem solid var(--card-border-color);
- padding: var(--universal-padding);
- width: 100%; }
- .card > .sectione.media {
- height: 200px;
- padding: 0;
- -o-object-fit: cover;
- object-fit: cover; }
- .card > .sectione:last-child {
- border-bottom: 0; }
-
-/*
- Custom elements for card elements.
-*/
-@media screen and (min-width: 240px) {
- .card.small {
- max-width: 240px; } }
-@media screen and (min-width: 480px) {
- .card.large {
- max-width: 480px; } }
-.card.fluid {
- max-width: 100%;
- width: auto; }
-
-.card.warning {
- --card-back-color: #e5b8b7;
- --card-fore-color: #3b234b;
- --card-border-color: #8c0078; }
-
-.card.error {
- --card-back-color: #464650;
- --card-fore-color: #ffffff;
- --card-border-color: #8c0078; }
-
-.card > .sectione.dark {
- --card-back-color: #3b234b;
- --card-fore-color: #ffffff; }
-
-.card > .sectione.double-padded {
- padding: calc(1.5 * var(--universal-padding)); }
-
-/*
- Definitions for forms and input elements.
-*/
-/* Input_control module CSS variable definitions */
-:root {
- --form-back-color: #ffe97f;
- --form-fore-color: #03234b;
- --form-border-color: #3cb4e6;
- --input-back-color: #ffffff;
- --input-fore-color: #03234b;
- --input-border-color: #3cb4e6;
- --input-focus-color: #0288d1;
- --input-invalid-color: #d32f2f;
- --button-back-color: #e2e2e2;
- --button-hover-back-color: #dcdcdc;
- --button-fore-color: #212121;
- --button-border-color: transparent;
- --button-hover-border-color: transparent;
- --button-group-border-color: rgba(124, 124, 124, 0.54); }
-
-form {
- background: var(--form-back-color);
- color: var(--form-fore-color);
- border: 0.0714285714rem solid var(--form-border-color);
- border-radius: var(--universal-border-radius);
- margin: var(--universal-margin);
- padding: calc(2 * var(--universal-padding)) var(--universal-padding); }
-
-fieldset {
- border: 0.0714285714rem solid var(--form-border-color);
- border-radius: var(--universal-border-radius);
- margin: calc(var(--universal-margin) / 4);
- padding: var(--universal-padding); }
-
-legend {
- box-sizing: border-box;
- display: table;
- max-width: 100%;
- white-space: normal;
- font-weight: 500;
- padding: calc(var(--universal-padding) / 2); }
-
-label {
- padding: calc(var(--universal-padding) / 2) var(--universal-padding); }
-
-.input-group {
- display: inline-block; }
- .input-group.fluid {
- display: flex;
- align-items: center;
- justify-content: center; }
- .input-group.fluid > input {
- max-width: 100%;
- flex-grow: 1;
- flex-basis: 0px; }
- @media screen and (max-width: 499px) {
- .input-group.fluid {
- align-items: stretch;
- flex-direction: column; } }
- .input-group.vertical {
- display: flex;
- align-items: stretch;
- flex-direction: column; }
- .input-group.vertical > input {
- max-width: 100%;
- flex-grow: 1;
- flex-basis: 0px; }
-
-[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button {
- height: auto; }
-
-[type="search"] {
- -webkit-appearance: textfield;
- outline-offset: -2px; }
-
-[type="search"]::-webkit-search-cancel-button,
-[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none; }
-
-input:not([type]), [type="text"], [type="email"], [type="number"], [type="search"],
-[type="password"], [type="url"], [type="tel"], [type="checkbox"], [type="radio"], textarea, select {
- box-sizing: border-box;
- background: var(--input-back-color);
- color: var(--input-fore-color);
- border: 0.0714285714rem solid var(--input-border-color);
- border-radius: var(--universal-border-radius);
- margin: calc(var(--universal-margin) / 2);
- padding: var(--universal-padding) calc(1.5 * var(--universal-padding)); }
-
-input:not([type="button"]):not([type="submit"]):not([type="reset"]):hover, input:not([type="button"]):not([type="submit"]):not([type="reset"]):focus, textarea:hover, textarea:focus, select:hover, select:focus {
- border-color: var(--input-focus-color);
- box-shadow: none; }
-input:not([type="button"]):not([type="submit"]):not([type="reset"]):invalid, input:not([type="button"]):not([type="submit"]):not([type="reset"]):focus:invalid, textarea:invalid, textarea:focus:invalid, select:invalid, select:focus:invalid {
- border-color: var(--input-invalid-color);
- box-shadow: none; }
-input:not([type="button"]):not([type="submit"]):not([type="reset"])[readonly], textarea[readonly], select[readonly] {
- background: var(--secondary-back-color); }
-
-select {
- max-width: 100%; }
-
-option {
- overflow: hidden;
- text-overflow: ellipsis; }
-
-[type="checkbox"], [type="radio"] {
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- position: relative;
- height: calc(1rem + var(--universal-padding) / 2);
- width: calc(1rem + var(--universal-padding) / 2);
- vertical-align: text-bottom;
- padding: 0;
- flex-basis: calc(1rem + var(--universal-padding) / 2) !important;
- flex-grow: 0 !important; }
- [type="checkbox"]:checked:before, [type="radio"]:checked:before {
- position: absolute; }
-
-[type="checkbox"]:checked:before {
- content: '\2713';
- font-family: sans-serif;
- font-size: calc(1rem + var(--universal-padding) / 2);
- top: calc(0rem - var(--universal-padding));
- left: calc(var(--universal-padding) / 4); }
-
-[type="radio"] {
- border-radius: 100%; }
- [type="radio"]:checked:before {
- border-radius: 100%;
- content: '';
- top: calc(0.0714285714rem + var(--universal-padding) / 2);
- left: calc(0.0714285714rem + var(--universal-padding) / 2);
- background: var(--input-fore-color);
- width: 0.5rem;
- height: 0.5rem; }
-
-:placeholder-shown {
- color: var(--input-fore-color); }
-
-::-ms-placeholder {
- color: var(--input-fore-color);
- opacity: 0.54; }
-
-button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner {
- border-style: none;
- padding: 0; }
-
-button, html [type="button"], [type="reset"], [type="submit"] {
- -webkit-appearance: button; }
-
-button {
- overflow: visible;
- text-transform: none; }
-
-button, [type="button"], [type="submit"], [type="reset"],
-a.button, label.button, .button,
-a[role="button"], label[role="button"], [role="button"] {
- display: inline-block;
- background: var(--button-back-color);
- color: var(--button-fore-color);
- border: 0.0714285714rem solid var(--button-border-color);
- border-radius: var(--universal-border-radius);
- padding: var(--universal-padding) calc(1.5 * var(--universal-padding));
- margin: var(--universal-margin);
- text-decoration: none;
- cursor: pointer;
- transition: background 0.3s; }
- button:hover, button:focus, [type="button"]:hover, [type="button"]:focus, [type="submit"]:hover, [type="submit"]:focus, [type="reset"]:hover, [type="reset"]:focus,
- a.button:hover,
- a.button:focus, label.button:hover, label.button:focus, .button:hover, .button:focus,
- a[role="button"]:hover,
- a[role="button"]:focus, label[role="button"]:hover, label[role="button"]:focus, [role="button"]:hover, [role="button"]:focus {
- background: var(--button-hover-back-color);
- border-color: var(--button-hover-border-color); }
-
-input:disabled, input[disabled], textarea:disabled, textarea[disabled], select:disabled, select[disabled], button:disabled, button[disabled], .button:disabled, .button[disabled], [role="button"]:disabled, [role="button"][disabled] {
- cursor: not-allowed;
- opacity: 0.75; }
-
-.button-group {
- display: flex;
- border: 0.0714285714rem solid var(--button-group-border-color);
- border-radius: var(--universal-border-radius);
- margin: var(--universal-margin); }
- .button-group > button, .button-group [type="button"], .button-group > [type="submit"], .button-group > [type="reset"], .button-group > .button, .button-group > [role="button"] {
- margin: 0;
- max-width: 100%;
- flex: 1 1 auto;
- text-align: center;
- border: 0;
- border-radius: 0;
- box-shadow: none; }
- .button-group > :not(:first-child) {
- border-left: 0.0714285714rem solid var(--button-group-border-color); }
- @media screen and (max-width: 499px) {
- .button-group {
- flex-direction: column; }
- .button-group > :not(:first-child) {
- border: 0;
- border-top: 0.0714285714rem solid var(--button-group-border-color); } }
-
-/*
- Custom elements for forms and input elements.
-*/
-button.primary, [type="button"].primary, [type="submit"].primary, [type="reset"].primary, .button.primary, [role="button"].primary {
- --button-back-color: #1976d2;
- --button-fore-color: #f8f8f8; }
- button.primary:hover, button.primary:focus, [type="button"].primary:hover, [type="button"].primary:focus, [type="submit"].primary:hover, [type="submit"].primary:focus, [type="reset"].primary:hover, [type="reset"].primary:focus, .button.primary:hover, .button.primary:focus, [role="button"].primary:hover, [role="button"].primary:focus {
- --button-hover-back-color: #1565c0; }
-
-button.secondary, [type="button"].secondary, [type="submit"].secondary, [type="reset"].secondary, .button.secondary, [role="button"].secondary {
- --button-back-color: #d32f2f;
- --button-fore-color: #f8f8f8; }
- button.secondary:hover, button.secondary:focus, [type="button"].secondary:hover, [type="button"].secondary:focus, [type="submit"].secondary:hover, [type="submit"].secondary:focus, [type="reset"].secondary:hover, [type="reset"].secondary:focus, .button.secondary:hover, .button.secondary:focus, [role="button"].secondary:hover, [role="button"].secondary:focus {
- --button-hover-back-color: #c62828; }
-
-button.tertiary, [type="button"].tertiary, [type="submit"].tertiary, [type="reset"].tertiary, .button.tertiary, [role="button"].tertiary {
- --button-back-color: #308732;
- --button-fore-color: #f8f8f8; }
- button.tertiary:hover, button.tertiary:focus, [type="button"].tertiary:hover, [type="button"].tertiary:focus, [type="submit"].tertiary:hover, [type="submit"].tertiary:focus, [type="reset"].tertiary:hover, [type="reset"].tertiary:focus, .button.tertiary:hover, .button.tertiary:focus, [role="button"].tertiary:hover, [role="button"].tertiary:focus {
- --button-hover-back-color: #277529; }
-
-button.inverse, [type="button"].inverse, [type="submit"].inverse, [type="reset"].inverse, .button.inverse, [role="button"].inverse {
- --button-back-color: #212121;
- --button-fore-color: #f8f8f8; }
- button.inverse:hover, button.inverse:focus, [type="button"].inverse:hover, [type="button"].inverse:focus, [type="submit"].inverse:hover, [type="submit"].inverse:focus, [type="reset"].inverse:hover, [type="reset"].inverse:focus, .button.inverse:hover, .button.inverse:focus, [role="button"].inverse:hover, [role="button"].inverse:focus {
- --button-hover-back-color: #111; }
-
-button.small, [type="button"].small, [type="submit"].small, [type="reset"].small, .button.small, [role="button"].small {
- padding: calc(0.5 * var(--universal-padding)) calc(0.75 * var(--universal-padding));
- margin: var(--universal-margin); }
-
-button.large, [type="button"].large, [type="submit"].large, [type="reset"].large, .button.large, [role="button"].large {
- padding: calc(1.5 * var(--universal-padding)) calc(2 * var(--universal-padding));
- margin: var(--universal-margin); }
-
-/*
- Definitions for navigation elements.
-*/
-/* Navigation module CSS variable definitions */
-:root {
- --header-back-color: #03234b;
- --header-hover-back-color: #ffd200;
- --header-fore-color: #ffffff;
- --header-border-color: #3cb4e6;
- --nav-back-color: #ffffff;
- --nav-hover-back-color: #ffe97f;
- --nav-fore-color: #e6007e;
- --nav-border-color: #3cb4e6;
- --nav-link-color: #3cb4e6;
- --footer-fore-color: #ffffff;
- --footer-back-color: #03234b;
- --footer-border-color: #3cb4e6;
- --footer-link-color: #3cb4e6;
- --drawer-back-color: #ffffff;
- --drawer-hover-back-color: #ffe97f;
- --drawer-border-color: #3cb4e6;
- --drawer-close-color: #e6007e; }
-
-header {
- height: 2.75rem;
- background: var(--header-back-color);
- color: var(--header-fore-color);
- border-bottom: 0.0714285714rem solid var(--header-border-color);
- padding: calc(var(--universal-padding) / 4) 0;
- white-space: nowrap;
- overflow-x: auto;
- overflow-y: hidden; }
- header.row {
- box-sizing: content-box; }
- header .logo {
- color: var(--header-fore-color);
- font-size: 1.75rem;
- padding: var(--universal-padding) calc(2 * var(--universal-padding));
- text-decoration: none; }
- header button, header [type="button"], header .button, header [role="button"] {
- box-sizing: border-box;
- position: relative;
- top: calc(0rem - var(--universal-padding) / 4);
- height: calc(3.1875rem + var(--universal-padding) / 2);
- background: var(--header-back-color);
- line-height: calc(3.1875rem - var(--universal-padding) * 1.5);
- text-align: center;
- color: var(--header-fore-color);
- border: 0;
- border-radius: 0;
- margin: 0;
- text-transform: uppercase; }
- header button:hover, header button:focus, header [type="button"]:hover, header [type="button"]:focus, header .button:hover, header .button:focus, header [role="button"]:hover, header [role="button"]:focus {
- background: var(--header-hover-back-color); }
-
-nav {
- background: var(--nav-back-color);
- color: var(--nav-fore-color);
- border: 0.0714285714rem solid var(--nav-border-color);
- border-radius: var(--universal-border-radius);
- margin: var(--universal-margin); }
- nav * {
- padding: var(--universal-padding) calc(1.5 * var(--universal-padding)); }
- nav a, nav a:visited {
- display: block;
- color: var(--nav-link-color);
- border-radius: var(--universal-border-radius);
- transition: background 0.3s; }
- nav a:hover, nav a:focus, nav a:visited:hover, nav a:visited:focus {
- text-decoration: none;
- background: var(--nav-hover-back-color); }
- nav .sublink-1 {
- position: relative;
- margin-left: calc(2 * var(--universal-padding)); }
- nav .sublink-1:before {
- position: absolute;
- left: calc(var(--universal-padding) - 1 * var(--universal-padding));
- top: -0.0714285714rem;
- content: '';
- height: 100%;
- border: 0.0714285714rem solid var(--nav-border-color);
- border-left: 0; }
- nav .sublink-2 {
- position: relative;
- margin-left: calc(4 * var(--universal-padding)); }
- nav .sublink-2:before {
- position: absolute;
- left: calc(var(--universal-padding) - 3 * var(--universal-padding));
- top: -0.0714285714rem;
- content: '';
- height: 100%;
- border: 0.0714285714rem solid var(--nav-border-color);
- border-left: 0; }
-
-footer {
- background: var(--footer-back-color);
- color: var(--footer-fore-color);
- border-top: 0.0714285714rem solid var(--footer-border-color);
- padding: calc(2 * var(--universal-padding)) var(--universal-padding);
- font-size: 0.875rem; }
- footer a, footer a:visited {
- color: var(--footer-link-color); }
-
-header.sticky {
- position: -webkit-sticky;
- position: sticky;
- z-index: 1101;
- top: 0; }
-
-footer.sticky {
- position: -webkit-sticky;
- position: sticky;
- z-index: 1101;
- bottom: 0; }
-
-.drawer-toggle:before {
- display: inline-block;
- position: relative;
- vertical-align: bottom;
- content: '\00a0\2261\00a0';
- font-family: sans-serif;
- font-size: 1.5em; }
-@media screen and (min-width: 500px) {
- .drawer-toggle:not(.persistent) {
- display: none; } }
-
-[type="checkbox"].drawer {
- height: 1px;
- width: 1px;
- margin: -1px;
- overflow: hidden;
- position: absolute;
- clip: rect(0 0 0 0);
- -webkit-clip-path: inset(100%);
- clip-path: inset(100%); }
- [type="checkbox"].drawer + * {
- display: block;
- box-sizing: border-box;
- position: fixed;
- top: 0;
- width: 320px;
- height: 100vh;
- overflow-y: auto;
- background: var(--drawer-back-color);
- border: 0.0714285714rem solid var(--drawer-border-color);
- border-radius: 0;
- margin: 0;
- z-index: 1110;
- right: -320px;
- transition: right 0.3s; }
- [type="checkbox"].drawer + * .drawer-close {
- position: absolute;
- top: var(--universal-margin);
- right: var(--universal-margin);
- z-index: 1111;
- width: 2rem;
- height: 2rem;
- border-radius: var(--universal-border-radius);
- padding: var(--universal-padding);
- margin: 0;
- cursor: pointer;
- transition: background 0.3s; }
- [type="checkbox"].drawer + * .drawer-close:before {
- display: block;
- content: '\00D7';
- color: var(--drawer-close-color);
- position: relative;
- font-family: sans-serif;
- font-size: 2rem;
- line-height: 1;
- text-align: center; }
- [type="checkbox"].drawer + * .drawer-close:hover, [type="checkbox"].drawer + * .drawer-close:focus {
- background: var(--drawer-hover-back-color); }
- @media screen and (max-width: 320px) {
- [type="checkbox"].drawer + * {
- width: 100%; } }
- [type="checkbox"].drawer:checked + * {
- right: 0; }
- @media screen and (min-width: 500px) {
- [type="checkbox"].drawer:not(.persistent) + * {
- position: static;
- height: 100%;
- z-index: 1100; }
- [type="checkbox"].drawer:not(.persistent) + * .drawer-close {
- display: none; } }
-
-/*
- Definitions for the responsive table component.
-*/
-/* Table module CSS variable definitions. */
-:root {
- --table-border-color: #03234b;
- --table-border-separator-color: #03234b;
- --table-head-back-color: #03234b;
- --table-head-fore-color: #ffffff;
- --table-body-back-color: #ffffff;
- --table-body-fore-color: #03234b;
- --table-body-alt-back-color: #f4f4f4; }
-
-table {
- border-collapse: separate;
- border-spacing: 0;
- margin: 0;
- display: flex;
- flex: 0 1 auto;
- flex-flow: row wrap;
- padding: var(--universal-padding);
- padding-top: 0; }
- table caption {
- font-size: 1rem;
- margin: calc(2 * var(--universal-margin)) 0;
- max-width: 100%;
- flex: 0 0 100%; }
- table thead, table tbody {
- display: flex;
- flex-flow: row wrap;
- border: 0.0714285714rem solid var(--table-border-color); }
- table thead {
- z-index: 999;
- border-radius: var(--universal-border-radius) var(--universal-border-radius) 0 0;
- border-bottom: 0.0714285714rem solid var(--table-border-separator-color); }
- table tbody {
- border-top: 0;
- margin-top: calc(0 - var(--universal-margin));
- border-radius: 0 0 var(--universal-border-radius) var(--universal-border-radius); }
- table tr {
- display: flex;
- padding: 0; }
- table th, table td {
- padding: calc(0.5 * var(--universal-padding));
- font-size: 0.9rem; }
- table th {
- text-align: left;
- background: var(--table-head-back-color);
- color: var(--table-head-fore-color); }
- table td {
- background: var(--table-body-back-color);
- color: var(--table-body-fore-color);
- border-top: 0.0714285714rem solid var(--table-border-color); }
-
-table:not(.horizontal) {
- overflow: auto;
- max-height: 100%; }
- table:not(.horizontal) thead, table:not(.horizontal) tbody {
- max-width: 100%;
- flex: 0 0 100%; }
- table:not(.horizontal) tr {
- flex-flow: row wrap;
- flex: 0 0 100%; }
- table:not(.horizontal) th, table:not(.horizontal) td {
- flex: 1 0 0%;
- overflow: hidden;
- text-overflow: ellipsis; }
- table:not(.horizontal) thead {
- position: sticky;
- top: 0; }
- table:not(.horizontal) tbody tr:first-child td {
- border-top: 0; }
-
-table.horizontal {
- border: 0; }
- table.horizontal thead, table.horizontal tbody {
- border: 0;
- flex: .2 0 0;
- flex-flow: row nowrap; }
- table.horizontal tbody {
- overflow: auto;
- justify-content: space-between;
- flex: .8 0 0;
- margin-left: 0;
- padding-bottom: calc(var(--universal-padding) / 4); }
- table.horizontal tr {
- flex-direction: column;
- flex: 1 0 auto; }
- table.horizontal th, table.horizontal td {
- width: auto;
- border: 0;
- border-bottom: 0.0714285714rem solid var(--table-border-color); }
- table.horizontal th:not(:first-child), table.horizontal td:not(:first-child) {
- border-top: 0; }
- table.horizontal th {
- text-align: right;
- border-left: 0.0714285714rem solid var(--table-border-color);
- border-right: 0.0714285714rem solid var(--table-border-separator-color); }
- table.horizontal thead tr:first-child {
- padding-left: 0; }
- table.horizontal th:first-child, table.horizontal td:first-child {
- border-top: 0.0714285714rem solid var(--table-border-color); }
- table.horizontal tbody tr:last-child td {
- border-right: 0.0714285714rem solid var(--table-border-color); }
- table.horizontal tbody tr:last-child td:first-child {
- border-top-right-radius: 0.25rem; }
- table.horizontal tbody tr:last-child td:last-child {
- border-bottom-right-radius: 0.25rem; }
- table.horizontal thead tr:first-child th:first-child {
- border-top-left-radius: 0.25rem; }
- table.horizontal thead tr:first-child th:last-child {
- border-bottom-left-radius: 0.25rem; }
-
-@media screen and (max-width: 499px) {
- table, table.horizontal {
- border-collapse: collapse;
- border: 0;
- width: 100%;
- display: table; }
- table thead, table th, table.horizontal thead, table.horizontal th {
- border: 0;
- height: 1px;
- width: 1px;
- margin: -1px;
- overflow: hidden;
- padding: 0;
- position: absolute;
- clip: rect(0 0 0 0);
- -webkit-clip-path: inset(100%);
- clip-path: inset(100%); }
- table tbody, table.horizontal tbody {
- border: 0;
- display: table-row-group; }
- table tr, table.horizontal tr {
- display: block;
- border: 0.0714285714rem solid var(--table-border-color);
- border-radius: var(--universal-border-radius);
- background: #ffffff;
- padding: var(--universal-padding);
- margin: var(--universal-margin);
- margin-bottom: calc(1 * var(--universal-margin)); }
- table th, table td, table.horizontal th, table.horizontal td {
- width: auto; }
- table td, table.horizontal td {
- display: block;
- border: 0;
- text-align: right; }
- table td:before, table.horizontal td:before {
- content: attr(data-label);
- float: left;
- font-weight: 600; }
- table th:first-child, table td:first-child, table.horizontal th:first-child, table.horizontal td:first-child {
- border-top: 0; }
- table tbody tr:last-child td, table.horizontal tbody tr:last-child td {
- border-right: 0; } }
-table tr:nth-of-type(2n) > td {
- background: var(--table-body-alt-back-color); }
-
-@media screen and (max-width: 500px) {
- table tr:nth-of-type(2n) {
- background: var(--table-body-alt-back-color); } }
-:root {
- --table-body-hover-back-color: #90caf9; }
-
-table.hoverable tr:hover, table.hoverable tr:hover > td, table.hoverable tr:focus, table.hoverable tr:focus > td {
- background: var(--table-body-hover-back-color); }
-
-@media screen and (max-width: 500px) {
- table.hoverable tr:hover, table.hoverable tr:hover > td, table.hoverable tr:focus, table.hoverable tr:focus > td {
- background: var(--table-body-hover-back-color); } }
-/*
- Definitions for contextual background elements, toasts and tooltips.
-*/
-/* Contextual module CSS variable definitions */
-:root {
- --mark-back-color: #3cb4e6;
- --mark-fore-color: #ffffff; }
-
-mark {
- background: var(--mark-back-color);
- color: var(--mark-fore-color);
- font-size: 0.95em;
- line-height: 1em;
- border-radius: var(--universal-border-radius);
- padding: calc(var(--universal-padding) / 4) var(--universal-padding); }
- mark.inline-block {
- display: inline-block;
- font-size: 1em;
- line-height: 1.4;
- padding: calc(var(--universal-padding) / 2) var(--universal-padding); }
-
-:root {
- --toast-back-color: #424242;
- --toast-fore-color: #fafafa; }
-
-.toast {
- position: fixed;
- bottom: calc(var(--universal-margin) * 3);
- left: 50%;
- transform: translate(-50%, -50%);
- z-index: 1111;
- color: var(--toast-fore-color);
- background: var(--toast-back-color);
- border-radius: calc(var(--universal-border-radius) * 16);
- padding: var(--universal-padding) calc(var(--universal-padding) * 3); }
-
-:root {
- --tooltip-back-color: #212121;
- --tooltip-fore-color: #fafafa; }
-
-.tooltip {
- position: relative;
- display: inline-block; }
- .tooltip:before, .tooltip:after {
- position: absolute;
- opacity: 0;
- clip: rect(0 0 0 0);
- -webkit-clip-path: inset(100%);
- clip-path: inset(100%);
- transition: all 0.3s;
- z-index: 1010;
- left: 50%; }
- .tooltip:not(.bottom):before, .tooltip:not(.bottom):after {
- bottom: 75%; }
- .tooltip.bottom:before, .tooltip.bottom:after {
- top: 75%; }
- .tooltip:hover:before, .tooltip:hover:after, .tooltip:focus:before, .tooltip:focus:after {
- opacity: 1;
- clip: auto;
- -webkit-clip-path: inset(0%);
- clip-path: inset(0%); }
- .tooltip:before {
- content: '';
- background: transparent;
- border: var(--universal-margin) solid transparent;
- left: calc(50% - var(--universal-margin)); }
- .tooltip:not(.bottom):before {
- border-top-color: #212121; }
- .tooltip.bottom:before {
- border-bottom-color: #212121; }
- .tooltip:after {
- content: attr(aria-label);
- color: var(--tooltip-fore-color);
- background: var(--tooltip-back-color);
- border-radius: var(--universal-border-radius);
- padding: var(--universal-padding);
- white-space: nowrap;
- transform: translateX(-50%); }
- .tooltip:not(.bottom):after {
- margin-bottom: calc(2 * var(--universal-margin)); }
- .tooltip.bottom:after {
- margin-top: calc(2 * var(--universal-margin)); }
-
-:root {
- --modal-overlay-color: rgba(0, 0, 0, 0.45);
- --modal-close-color: #e6007e;
- --modal-close-hover-color: #ffe97f; }
-
-[type="checkbox"].modal {
- height: 1px;
- width: 1px;
- margin: -1px;
- overflow: hidden;
- position: absolute;
- clip: rect(0 0 0 0);
- -webkit-clip-path: inset(100%);
- clip-path: inset(100%); }
- [type="checkbox"].modal + div {
- position: fixed;
- top: 0;
- left: 0;
- display: none;
- width: 100vw;
- height: 100vh;
- background: var(--modal-overlay-color); }
- [type="checkbox"].modal + div .card {
- margin: 0 auto;
- max-height: 50vh;
- overflow: auto; }
- [type="checkbox"].modal + div .card .modal-close {
- position: absolute;
- top: 0;
- right: 0;
- width: 1.75rem;
- height: 1.75rem;
- border-radius: var(--universal-border-radius);
- padding: var(--universal-padding);
- margin: 0;
- cursor: pointer;
- transition: background 0.3s; }
- [type="checkbox"].modal + div .card .modal-close:before {
- display: block;
- content: '\00D7';
- color: var(--modal-close-color);
- position: relative;
- font-family: sans-serif;
- font-size: 1.75rem;
- line-height: 1;
- text-align: center; }
- [type="checkbox"].modal + div .card .modal-close:hover, [type="checkbox"].modal + div .card .modal-close:focus {
- background: var(--modal-close-hover-color); }
- [type="checkbox"].modal:checked + div {
- display: flex;
- flex: 0 1 auto;
- z-index: 1200; }
- [type="checkbox"].modal:checked + div .card .modal-close {
- z-index: 1211; }
-
-:root {
- --collapse-label-back-color: #03234b;
- --collapse-label-fore-color: #ffffff;
- --collapse-label-hover-back-color: #3cb4e6;
- --collapse-selected-label-back-color: #3cb4e6;
- --collapse-border-color: var(--collapse-label-back-color);
- --collapse-selected-border-color: #ceecf8;
- --collapse-content-back-color: #ffffff;
- --collapse-selected-label-border-color: #3cb4e6; }
-
-.collapse {
- width: calc(100% - 2 * var(--universal-margin));
- opacity: 1;
- display: flex;
- flex-direction: column;
- margin: var(--universal-margin);
- border-radius: var(--universal-border-radius); }
- .collapse > [type="radio"], .collapse > [type="checkbox"] {
- height: 1px;
- width: 1px;
- margin: -1px;
- overflow: hidden;
- position: absolute;
- clip: rect(0 0 0 0);
- -webkit-clip-path: inset(100%);
- clip-path: inset(100%); }
- .collapse > label {
- flex-grow: 1;
- display: inline-block;
- height: 1.25rem;
- cursor: pointer;
- transition: background 0.2s;
- color: var(--collapse-label-fore-color);
- background: var(--collapse-label-back-color);
- border: 0.0714285714rem solid var(--collapse-selected-border-color);
- padding: calc(1.25 * var(--universal-padding)); }
- .collapse > label:hover, .collapse > label:focus {
- background: var(--collapse-label-hover-back-color); }
- .collapse > label + div {
- flex-basis: auto;
- height: 1px;
- width: 1px;
- margin: -1px;
- overflow: hidden;
- position: absolute;
- clip: rect(0 0 0 0);
- -webkit-clip-path: inset(100%);
- clip-path: inset(100%);
- transition: max-height 0.3s;
- max-height: 1px; }
- .collapse > :checked + label {
- background: var(--collapse-selected-label-back-color);
- border-color: var(--collapse-selected-label-border-color); }
- .collapse > :checked + label + div {
- box-sizing: border-box;
- position: relative;
- width: 100%;
- height: auto;
- overflow: auto;
- margin: 0;
- background: var(--collapse-content-back-color);
- border: 0.0714285714rem solid var(--collapse-selected-border-color);
- border-top: 0;
- padding: var(--universal-padding);
- clip: auto;
- -webkit-clip-path: inset(0%);
- clip-path: inset(0%);
- max-height: 100%; }
- .collapse > label:not(:first-of-type) {
- border-top: 0; }
- .collapse > label:first-of-type {
- border-radius: var(--universal-border-radius) var(--universal-border-radius) 0 0; }
- .collapse > label:last-of-type:not(:first-of-type) {
- border-radius: 0 0 var(--universal-border-radius) var(--universal-border-radius); }
- .collapse > label:last-of-type:first-of-type {
- border-radius: var(--universal-border-radius); }
- .collapse > :checked:last-of-type:not(:first-of-type) + label {
- border-radius: 0; }
- .collapse > :checked:last-of-type + label + div {
- border-radius: 0 0 var(--universal-border-radius) var(--universal-border-radius); }
-
-/*
- Custom elements for contextual background elements, toasts and tooltips.
-*/
-mark.tertiary {
- --mark-back-color: #3cb4e6; }
-
-mark.tag {
- padding: calc(var(--universal-padding)/2) var(--universal-padding);
- border-radius: 1em; }
-
-/*
- Definitions for progress elements and spinners.
-*/
-/* Progress module CSS variable definitions */
-:root {
- --progress-back-color: #3cb4e6;
- --progress-fore-color: #555; }
-
-progress {
- display: block;
- vertical-align: baseline;
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- height: 0.75rem;
- width: calc(100% - 2 * var(--universal-margin));
- margin: var(--universal-margin);
- border: 0;
- border-radius: calc(2 * var(--universal-border-radius));
- background: var(--progress-back-color);
- color: var(--progress-fore-color); }
- progress::-webkit-progress-value {
- background: var(--progress-fore-color);
- border-top-left-radius: calc(2 * var(--universal-border-radius));
- border-bottom-left-radius: calc(2 * var(--universal-border-radius)); }
- progress::-webkit-progress-bar {
- background: var(--progress-back-color); }
- progress::-moz-progress-bar {
- background: var(--progress-fore-color);
- border-top-left-radius: calc(2 * var(--universal-border-radius));
- border-bottom-left-radius: calc(2 * var(--universal-border-radius)); }
- progress[value="1000"]::-webkit-progress-value {
- border-radius: calc(2 * var(--universal-border-radius)); }
- progress[value="1000"]::-moz-progress-bar {
- border-radius: calc(2 * var(--universal-border-radius)); }
- progress.inline {
- display: inline-block;
- vertical-align: middle;
- width: 60%; }
-
-:root {
- --spinner-back-color: #ddd;
- --spinner-fore-color: #555; }
-
-@keyframes spinner-donut-anim {
- 0% {
- transform: rotate(0deg); }
- 100% {
- transform: rotate(360deg); } }
-.spinner {
- display: inline-block;
- margin: var(--universal-margin);
- border: 0.25rem solid var(--spinner-back-color);
- border-left: 0.25rem solid var(--spinner-fore-color);
- border-radius: 50%;
- width: 1.25rem;
- height: 1.25rem;
- animation: spinner-donut-anim 1.2s linear infinite; }
-
-/*
- Custom elements for progress bars and spinners.
-*/
-progress.primary {
- --progress-fore-color: #1976d2; }
-
-progress.secondary {
- --progress-fore-color: #d32f2f; }
-
-progress.tertiary {
- --progress-fore-color: #308732; }
-
-.spinner.primary {
- --spinner-fore-color: #1976d2; }
-
-.spinner.secondary {
- --spinner-fore-color: #d32f2f; }
-
-.spinner.tertiary {
- --spinner-fore-color: #308732; }
-
-/*
- Definitions for icons - powered by Feather (https://feathericons.com/).
-*/
-span[class^='icon-'] {
- display: inline-block;
- height: 1em;
- width: 1em;
- vertical-align: -0.125em;
- background-size: contain;
- margin: 0 calc(var(--universal-margin) / 4); }
- span[class^='icon-'].secondary {
- -webkit-filter: invert(25%);
- filter: invert(25%); }
- span[class^='icon-'].inverse {
- -webkit-filter: invert(100%);
- filter: invert(100%); }
-
-span.icon-alert {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12' y2='16'%3E%3C/line%3E%3C/svg%3E"); }
-span.icon-bookmark {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z'%3E%3C/path%3E%3C/svg%3E"); }
-span.icon-calendar {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E"); }
-span.icon-credit {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='4' width='22' height='16' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='1' y1='10' x2='23' y2='10'%3E%3C/line%3E%3C/svg%3E"); }
-span.icon-edit {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 14.66V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h5.34'%3E%3C/path%3E%3Cpolygon points='18 2 22 6 12 16 8 16 8 12 18 2'%3E%3C/polygon%3E%3C/svg%3E"); }
-span.icon-link {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'%3E%3C/path%3E%3Cpolyline points='15 3 21 3 21 9'%3E%3C/polyline%3E%3Cline x1='10' y1='14' x2='21' y2='3'%3E%3C/line%3E%3C/svg%3E"); }
-span.icon-help {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3'%3E%3C/path%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='17' x2='12' y2='17'%3E%3C/line%3E%3C/svg%3E"); }
-span.icon-home {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'%3E%3C/path%3E%3Cpolyline points='9 22 9 12 15 12 15 22'%3E%3C/polyline%3E%3C/svg%3E"); }
-span.icon-info {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='16' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='8' x2='12' y2='8'%3E%3C/line%3E%3C/svg%3E"); }
-span.icon-lock {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'%3E%3C/rect%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'%3E%3C/path%3E%3C/svg%3E"); }
-span.icon-mail {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'%3E%3C/path%3E%3Cpolyline points='22,6 12,13 2,6'%3E%3C/polyline%3E%3C/svg%3E"); }
-span.icon-location {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'%3E%3C/path%3E%3Ccircle cx='12' cy='10' r='3'%3E%3C/circle%3E%3C/svg%3E"); }
-span.icon-phone {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'%3E%3C/path%3E%3C/svg%3E"); }
-span.icon-rss {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 11a9 9 0 0 1 9 9'%3E%3C/path%3E%3Cpath d='M4 4a16 16 0 0 1 16 16'%3E%3C/path%3E%3Ccircle cx='5' cy='19' r='1'%3E%3C/circle%3E%3C/svg%3E"); }
-span.icon-search {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E"); }
-span.icon-settings {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'%3E%3C/circle%3E%3Cpath d='M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z'%3E%3C/path%3E%3C/svg%3E"); }
-span.icon-share {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='18' cy='5' r='3'%3E%3C/circle%3E%3Ccircle cx='6' cy='12' r='3'%3E%3C/circle%3E%3Ccircle cx='18' cy='19' r='3'%3E%3C/circle%3E%3Cline x1='8.59' y1='13.51' x2='15.42' y2='17.49'%3E%3C/line%3E%3Cline x1='15.41' y1='6.51' x2='8.59' y2='10.49'%3E%3C/line%3E%3C/svg%3E"); }
-span.icon-cart {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'%3E%3C/circle%3E%3Ccircle cx='20' cy='21' r='1'%3E%3C/circle%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'%3E%3C/path%3E%3C/svg%3E"); }
-span.icon-upload {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'%3E%3C/path%3E%3Cpolyline points='17 8 12 3 7 8'%3E%3C/polyline%3E%3Cline x1='12' y1='3' x2='12' y2='15'%3E%3C/line%3E%3C/svg%3E"); }
-span.icon-user {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'%3E%3C/path%3E%3Ccircle cx='12' cy='7' r='4'%3E%3C/circle%3E%3C/svg%3E"); }
-
-/*
- Definitions for utilities and helper classes.
-*/
-/* Utility module CSS variable definitions */
-:root {
- --generic-border-color: rgba(0, 0, 0, 0.3);
- --generic-box-shadow: 0 0.2857142857rem 0.2857142857rem 0 rgba(0, 0, 0, 0.125), 0 0.1428571429rem 0.1428571429rem -0.1428571429rem rgba(0, 0, 0, 0.125); }
-
-.hidden {
- display: none !important; }
-
-.visually-hidden {
- position: absolute !important;
- width: 1px !important;
- height: 1px !important;
- margin: -1px !important;
- border: 0 !important;
- padding: 0 !important;
- clip: rect(0 0 0 0) !important;
- -webkit-clip-path: inset(100%) !important;
- clip-path: inset(100%) !important;
- overflow: hidden !important; }
-
-.bordered {
- border: 0.0714285714rem solid var(--generic-border-color) !important; }
-
-.rounded {
- border-radius: var(--universal-border-radius) !important; }
-
-.circular {
- border-radius: 50% !important; }
-
-.shadowed {
- box-shadow: var(--generic-box-shadow) !important; }
-
-.responsive-margin {
- margin: calc(var(--universal-margin) / 4) !important; }
- @media screen and (min-width: 500px) {
- .responsive-margin {
- margin: calc(var(--universal-margin) / 2) !important; } }
- @media screen and (min-width: 1280px) {
- .responsive-margin {
- margin: var(--universal-margin) !important; } }
-
-.responsive-padding {
- padding: calc(var(--universal-padding) / 4) !important; }
- @media screen and (min-width: 500px) {
- .responsive-padding {
- padding: calc(var(--universal-padding) / 2) !important; } }
- @media screen and (min-width: 1280px) {
- .responsive-padding {
- padding: var(--universal-padding) !important; } }
-
-@media screen and (max-width: 499px) {
- .hidden-sm {
- display: none !important; } }
-@media screen and (min-width: 500px) and (max-width: 1279px) {
- .hidden-md {
- display: none !important; } }
-@media screen and (min-width: 1280px) {
- .hidden-lg {
- display: none !important; } }
-@media screen and (max-width: 499px) {
- .visually-hidden-sm {
- position: absolute !important;
- width: 1px !important;
- height: 1px !important;
- margin: -1px !important;
- border: 0 !important;
- padding: 0 !important;
- clip: rect(0 0 0 0) !important;
- -webkit-clip-path: inset(100%) !important;
- clip-path: inset(100%) !important;
- overflow: hidden !important; } }
-@media screen and (min-width: 500px) and (max-width: 1279px) {
- .visually-hidden-md {
- position: absolute !important;
- width: 1px !important;
- height: 1px !important;
- margin: -1px !important;
- border: 0 !important;
- padding: 0 !important;
- clip: rect(0 0 0 0) !important;
- -webkit-clip-path: inset(100%) !important;
- clip-path: inset(100%) !important;
- overflow: hidden !important; } }
-@media screen and (min-width: 1280px) {
- .visually-hidden-lg {
- position: absolute !important;
- width: 1px !important;
- height: 1px !important;
- margin: -1px !important;
- border: 0 !important;
- padding: 0 !important;
- clip: rect(0 0 0 0) !important;
- -webkit-clip-path: inset(100%) !important;
- clip-path: inset(100%) !important;
- overflow: hidden !important; } }
-
-/*# sourceMappingURL=mini-custom.css.map */
-
-img[alt="ST logo"] { display: block; margin: auto; width: 75%; max-width: 250px; min-width: 71px; }
-img[alt="Cube logo"] { float: right; width: 30%; max-width: 10rem; min-width: 8rem; padding-right: 1rem;}
-
-.figure {
- display: block;
- margin-left: auto;
- margin-right: auto;
- text-align: center;
-}
diff --git a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/_htmresc/st_logo_2020.png b/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/_htmresc/st_logo_2020.png
deleted file mode 100644
index d6cebb5ac..000000000
Binary files a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/_htmresc/st_logo_2020.png and /dev/null differ
diff --git a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/tcpp0203.c b/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/tcpp0203.c
deleted file mode 100644
index 952ff16c9..000000000
--- a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/tcpp0203.c
+++ /dev/null
@@ -1,886 +0,0 @@
-/**
- ******************************************************************************
- * @file tcpp0203.c
- * @author MCD Application Team
- * @brief This file provides the TCPP02/03 Type-C port protection driver.
- ******************************************************************************
- * @attention
- *
- * Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.
- *
- * This software is licensed under terms that can be found in the LICENSE file
- * in the root directory of this software component.
- * If no LICENSE file comes with this software, it is provided AS-IS.
- *
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "tcpp0203.h"
-
-#if defined(_TRACE)
-#include "usbpd_core.h"
-#include "usbpd_trace.h"
-#include "string.h"
-#include "stdio.h"
-#endif /* _TRACE */
-
-/** @addtogroup BSP
- * @{
- */
-
-/** @addtogroup Components
- * @{
- */
-
-/** @addtogroup TCPP0203
- * @brief This file provides a set of functions needed to drive the
- * TCPP02/03 Type-C port protection.
- * @{
- */
-
-/** @defgroup TCPP0203_Private_Constants Private Constants
- * @{
- */
-
-/* Compilation option in order to enable/disable a concistency check performed
- after each I2C access into TCPP0203 registers : goal is to check that written value in Reg0
- is properly reflected into reg1 register content.
- To enable register consistency check, please uncomment below definition.
- To disable it, comment below line */
-/* #define TCPP0203_REGISTER_CONSISTENCY_CHECK */
-
-/** @defgroup TCPP0203_Private_Types Private Types
- * @{
- */
-/* TCPP02/03 Type-C port protection driver structure initialization */
-TCPP0203_Drv_t TCPP0203_Driver =
-{
- TCPP0203_Init,
- TCPP0203_DeInit,
- TCPP0203_Reset,
- TCPP0203_SetVConnSwitch,
- TCPP0203_SetGateDriverProvider,
- TCPP0203_SetGateDriverConsumer,
- TCPP0203_SetPowerMode,
- TCPP0203_SetVBusDischarge,
- TCPP0203_SetVConnDischarge,
- TCPP0203_GetVConnSwitchAck,
- TCPP0203_GetGateDriverProviderAck,
- TCPP0203_GetGateDriverConsumerAck,
- TCPP0203_GetPowerModeAck,
- TCPP0203_GetVBusDischargeAck,
- TCPP0203_GetVConnDischargeAck,
- TCPP0203_GetOCPVConnFlag,
- TCPP0203_GetOCPVBusFlag,
- TCPP0203_GetOVPVBusFlag,
- TCPP0203_GetOVPCCFlag,
- TCPP0203_GetOTPFlag,
- TCPP0203_GetVBusOkFlag,
- TCPP0203_ReadTCPPType,
- TCPP0203_ReadVCONNPower,
- TCPP0203_WriteCtrlRegister,
- TCPP0203_ReadAckRegister,
- TCPP0203_ReadFlagRegister,
-};
-
-/**
- * @}
- */
-
-/** @defgroup TCPP0203_Private_Variables Private Variables
- * @{
- */
-static uint8_t TCPP0203_DeviceType = TCPP0203_DEVICE_TYPE_03;
-
-#if defined(TCPP0203_REGISTER_CONSISTENCY_CHECK)
-static uint8_t Reg0_Expected_Value = 0x00;
-static uint8_t Reg1_LastRead_Value = 0x00;
-#endif /* TCPP0203_REGISTER_CONSISTENCY_CHECK */
-
-/**
- * @}
- */
-
-/* Private function prototypes -----------------------------------------------*/
-
-/** @defgroup TCPP0203_Private_Function_Prototypes TCPP0203 Private Function Prototypes
- * @{
- */
-static int32_t TCPP0203_ReadRegWrap(const void *handle, uint8_t Reg, uint8_t *Data, uint8_t Length);
-static int32_t TCPP0203_WriteRegWrap(const void *handle, uint8_t Reg, uint8_t *Data, uint8_t Length);
-
-static int32_t TCPP0203_ModifyReg0(TCPP0203_Object_t *pObj, uint8_t Value, uint8_t Mask);
-
-#if defined(TCPP0203_REGISTER_CONSISTENCY_CHECK)
-static int32_t TCPP0203_CheckReg0Reg1(TCPP0203_Object_t *pObj, uint8_t Reg0ExpectedValue);
-#endif /* TCPP0203_REGISTER_CONSISTENCY_CHECK */
-
-/**
- * @}
- */
-
-/** @defgroup TCPP0203_Exported_Functions TCPP0203 Exported Functions
- * @{
- */
-
-/**
- * @brief Register Bus Io to component
- * @param Component object pointer
- * @retval Status of execution
- */
-int32_t TCPP0203_RegisterBusIO(TCPP0203_Object_t *pObj, TCPP0203_IO_t *pIO)
-{
- int32_t ret;
-
- if (pObj == NULL)
- {
- ret = TCPP0203_ERROR;
- }
- else
- {
- pObj->IO.Init = pIO->Init;
- pObj->IO.DeInit = pIO->DeInit;
- pObj->IO.Address = pIO->Address;
- pObj->IO.WriteReg = pIO->WriteReg;
- pObj->IO.ReadReg = pIO->ReadReg;
- pObj->IO.GetTick = pIO->GetTick;
-
- pObj->Ctx.ReadReg = TCPP0203_ReadRegWrap;
- pObj->Ctx.WriteReg = TCPP0203_WriteRegWrap;
- pObj->Ctx.handle = pObj;
-
- if (pObj->IO.Init != NULL)
- {
- ret = pObj->IO.Init();
- }
- else
- {
- ret = TCPP0203_ERROR;
- }
- }
-
- return ret;
-}
-
-/**
- * @brief Initializes the TCPP0203 interface
- * @param pObj Pointer to component object
- * @retval Component status (TCPP0203_OK / TCPP0203_ERROR)
- */
-int32_t TCPP0203_Init(TCPP0203_Object_t *pObj)
-{
- int32_t ret = 0;
- uint8_t tmp;
-
- if (pObj->IsInitialized == 0U)
- {
- /* Read TCPP Device type */
- ret += tcpp0203_read_reg(&pObj->Ctx, TCPP0203_READ_REG2, &tmp, 1);
-
- if (ret == TCPP0203_OK)
- {
- TCPP0203_DeviceType = (tmp & TCPP0203_DEVICE_TYPE_MSK);
- }
- else
- {
- TCPP0203_DeviceType = TCPP0203_DEVICE_TYPE_02;
- }
- pObj->IsInitialized = 1U;
- }
-
- if (ret != TCPP0203_OK)
- {
- ret = TCPP0203_ERROR;
- }
-
- return ret;
-}
-
-/**
- * @brief Deinitializes the TCPP0203 interface
- * @param pObj Pointer to component object
- * @retval Component status (TCPP0203_OK / TCPP0203_ERROR)
- */
-int32_t TCPP0203_DeInit(TCPP0203_Object_t *pObj)
-{
- if (pObj->IsInitialized == 1U)
- {
- /* De-Initialize IO BUS layer */
- pObj->IO.DeInit();
-
- pObj->IsInitialized = 0U;
- }
-
- return TCPP0203_OK;
-}
-
-/**
- * @brief Resets TCPP0203 register (Reg0)
- * @param pObj Pointer to component object
- * @retval Component status (TCPP0203_OK / TCPP0203_ERROR)
- */
-int32_t TCPP0203_Reset(TCPP0203_Object_t *pObj)
-{
- int32_t ret = TCPP0203_OK;
- uint8_t tmp = TCPP0203_REG0_RST_VALUE;
-
- /* Write reset values in Reg0 register */
- if (tcpp0203_write_reg(&pObj->Ctx, TCPP0203_PROG_CTRL, &tmp, 1) != TCPP0203_OK)
- {
- ret = TCPP0203_ERROR;
- }
-
-#if defined(TCPP0203_REGISTER_CONSISTENCY_CHECK)
- Reg0_Expected_Value = TCPP0203_REG0_RST_VALUE;
- Reg1_LastRead_Value = TCPP0203_REG0_RST_VALUE;
-#endif /* TCPP0203_REGISTER_CONSISTENCY_CHECK */
-
- return ret;
-}
-
-/**
- * @brief Configure TCPP0203 VConn Switch
- * @param pObj Pointer to component object
- * @param VConnSwitch VConn Switch requested setting
- * This parameter can be one of the following values:
- * @arg TCPP0203_VCONN_SWITCH_OPEN VConn switch open
- * @arg TCPP0203_VCONN_SWITCH_CC1 VConn closed on CC1
- * @arg TCPP0203_VCONN_SWITCH_CC2 VConn closed on CC2
- * @retval Component status
- */
-int32_t TCPP0203_SetVConnSwitch(TCPP0203_Object_t *pObj, uint8_t VConnSwitch)
-{
- int32_t ret = TCPP0203_OK;
-
- if ((VConnSwitch != TCPP0203_VCONN_SWITCH_OPEN)
- && (VConnSwitch != TCPP0203_VCONN_SWITCH_CC1)
- && (VConnSwitch != TCPP0203_VCONN_SWITCH_CC2))
- {
- ret = TCPP0203_ERROR;
- }
- else
- {
- /* Update VConn switch setting in Writing register Reg0 */
- ret += TCPP0203_ModifyReg0(pObj, VConnSwitch, TCPP0203_VCONN_SWITCH_MSK);
- }
-
- return ret;
-}
-
-/**
- * @brief Configure TCPP0203 Gate Driver for Provider path
- * @param pObj Pointer to component object
- * @param GateDriverProvider GDP switch load requested setting
- * This parameter can be one of the following values:
- * @arg TCPP0203_GD_PROVIDER_SWITCH_OPEN GDP Switch Load Open
- * @arg TCPP0203_GD_PROVIDER_SWITCH_CLOSED GDP Switch Load closed
- * @retval Component status
- */
-int32_t TCPP0203_SetGateDriverProvider(TCPP0203_Object_t *pObj, uint8_t GateDriverProvider)
-{
- int32_t ret = TCPP0203_OK;
-
- if ((GateDriverProvider != TCPP0203_GD_PROVIDER_SWITCH_OPEN)
- && (GateDriverProvider != TCPP0203_GD_PROVIDER_SWITCH_CLOSED))
- {
- ret = TCPP0203_ERROR;
- }
- else
- {
- /* Update GDP Switch Load setting in Writing register Reg0 */
- if (GateDriverProvider == TCPP0203_GD_PROVIDER_SWITCH_CLOSED)
- {
- /* If Gate Driver Provider is to be closed, Gate Driver Consumer should be open */
- ret += TCPP0203_ModifyReg0(pObj, (GateDriverProvider | TCPP0203_GD_CONSUMER_SWITCH_OPEN),
- (TCPP0203_GD_PROVIDER_SWITCH_MSK | TCPP0203_GD_CONSUMER_SWITCH_MSK));
- }
- else
- {
- ret += TCPP0203_ModifyReg0(pObj, GateDriverProvider, TCPP0203_GD_PROVIDER_SWITCH_MSK);
- }
- }
-
- return ret;
-}
-
-/**
- * @brief Configure TCPP0203 Gate Driver for Consumer path
- * @param pObj Pointer to component object
- * @param GateDriverConsumer GDC switch load requested setting
- * This parameter can be one of the following values:
- * @arg TCPP0203_GD_CONSUMER_SWITCH_OPEN GDC Switch Load Open
- * @arg TCPP0203_GD_CONSUMER_SWITCH_CLOSED GDC Switch Load closed
- * @retval Component status
- */
-int32_t TCPP0203_SetGateDriverConsumer(TCPP0203_Object_t *pObj, uint8_t GateDriverConsumer)
-{
- int32_t ret = TCPP0203_OK;
-
- /* Check if TCPP type is TCPP03. Otherwise, return error */
- if (TCPP0203_DeviceType != TCPP0203_DEVICE_TYPE_03)
- {
- return (TCPP0203_ERROR);
- }
-
- if ((GateDriverConsumer != TCPP0203_GD_CONSUMER_SWITCH_OPEN)
- && (GateDriverConsumer != TCPP0203_GD_CONSUMER_SWITCH_CLOSED))
- {
- ret = TCPP0203_ERROR;
- }
- else
- {
- /* Update GDC Switch Load setting in Writing register Reg0 */
- if (GateDriverConsumer == TCPP0203_GD_CONSUMER_SWITCH_CLOSED)
- {
- /* If Gate Driver Consumer is to be closed, Gate Driver Provider should be open */
- ret += TCPP0203_ModifyReg0(pObj, (GateDriverConsumer | TCPP0203_GD_PROVIDER_SWITCH_OPEN),
- (TCPP0203_GD_PROVIDER_SWITCH_MSK | TCPP0203_GD_CONSUMER_SWITCH_MSK));
- }
- else
- {
- ret += TCPP0203_ModifyReg0(pObj, GateDriverConsumer, TCPP0203_GD_CONSUMER_SWITCH_MSK);
- }
- }
-
- return ret;
-}
-
-/**
- * @brief Configure TCPP0203 Power Mode
- * @param pObj Pointer to component object
- * @param PowerMode Power mode requested setting
- * This parameter can be one of the following values:
- * @arg TCPP0203_POWER_MODE_HIBERNATE Hibernate
- * @arg TCPP0203_POWER_MODE_LOWPOWER Low Power
- * @arg TCPP0203_POWER_MODE_NORMAL Normal
- * @retval Component status
- */
-int32_t TCPP0203_SetPowerMode(TCPP0203_Object_t *pObj, uint8_t PowerMode)
-{
- int32_t ret = TCPP0203_OK;
-
- if ((PowerMode != TCPP0203_POWER_MODE_HIBERNATE)
- && (PowerMode != TCPP0203_POWER_MODE_LOWPOWER)
- && (PowerMode != TCPP0203_POWER_MODE_NORMAL))
- {
- ret = TCPP0203_ERROR;
- }
- else
- {
- /* Update Power Mode setting in Writing register Reg0 */
- ret += TCPP0203_ModifyReg0(pObj, PowerMode, TCPP0203_POWER_MODE_MSK);
- }
-
- return ret;
-}
-
-/**
- * @brief Configure TCPP0203 Gate Driver for Provider path
- * @param pObj Pointer to component object
- * @param VBusDischarge VBUS Discharge requested setting
- * This parameter can be one of the following values:
- * @arg TCPP0203_VBUS_DISCHARGE_OFF VBUS Discharge Off
- * @arg TCPP0203_VBUS_DISCHARGE_ON VBUS Discharge On
- * @retval Component status
- */
-int32_t TCPP0203_SetVBusDischarge(TCPP0203_Object_t *pObj, uint8_t VBusDischarge)
-{
- int32_t ret = TCPP0203_OK;
-
- if ((VBusDischarge != TCPP0203_VBUS_DISCHARGE_OFF)
- && (VBusDischarge != TCPP0203_VBUS_DISCHARGE_ON))
- {
- ret = TCPP0203_ERROR;
- }
- else
- {
- /* Update VBUS Discharge setting in Writing register Reg0 */
- ret += TCPP0203_ModifyReg0(pObj, VBusDischarge, TCPP0203_VBUS_DISCHARGE_MSK);
- }
-
- return ret;
-}
-
-/**
- * @brief Configure TCPP0203 Gate Driver for Provider path
- * @param pObj Pointer to component object
- * @param VConnDischarge GDP switch load requested setting
- * This parameter can be one of the following values:
- * @arg TCPP0203_VCONN_DISCHARGE_OFF VConn Discharge Off
- * @arg TCPP0203_VCONN_DISCHARGE_ON VConn Discharge On
- * @retval Component status
- */
-int32_t TCPP0203_SetVConnDischarge(TCPP0203_Object_t *pObj, uint8_t VConnDischarge)
-{
- int32_t ret = TCPP0203_OK;
-
- if ((VConnDischarge != TCPP0203_VCONN_DISCHARGE_OFF)
- && (VConnDischarge != TCPP0203_VCONN_DISCHARGE_ON))
- {
- ret = TCPP0203_ERROR;
- }
- else
- {
- /* Update VConn Discharge setting in Writing register Reg0 */
- ret += TCPP0203_ModifyReg0(pObj, VConnDischarge, TCPP0203_VCONN_DISCHARGE_MSK);
- }
-
- return ret;
-}
-
-/**
- * @brief Get VConn switch Ack value
- * @param pObj Pointer to component object
- * @param pVConnSwitchAck Pointer on VConn switch Ack value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_VCONN_SWITCH_OPEN VConn switch open Ack
- * @arg TCPP0203_VCONN_SWITCH_CC1 VConn closed on CC1 Ack
- * @arg TCPP0203_VCONN_SWITCH_CC2 VConn closed on CC2 Ack
- * @retval Component status
- */
-int32_t TCPP0203_GetVConnSwitchAck(TCPP0203_Object_t *pObj, uint8_t *pVConnSwitchAck)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_ACK_REG, &tmp, 1);
- *pVConnSwitchAck = (tmp & TCPP0203_VCONN_SWITCH_ACK_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get Gate Driver Provider Ack value
- * @param pObj Pointer to component object
- * @param pGateDriverProviderAck Pointer on Gate Driver Provider Ack value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_GD_PROVIDER_SWITCH_ACK_OPEN Gate Driver Provider Open Ack
- * @arg TCPP0203_GD_PROVIDER_SWITCH_ACK_CLOSED Gate Driver Provider Closed Ack
- * @retval Component status
- */
-int32_t TCPP0203_GetGateDriverProviderAck(TCPP0203_Object_t *pObj, uint8_t *pGateDriverProviderAck)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_ACK_REG, &tmp, 1);
- *pGateDriverProviderAck = (tmp & TCPP0203_GD_PROVIDER_SWITCH_ACK_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get Gate Driver Consumer Ack value
- * @param pObj Pointer to component object
- * @param pGateDriverConsumerAck Pointer on Gate Driver Consumer Ack value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_GD_CONSUMER_SWITCH_ACK_OPEN Gate Driver Consumer Open Ack
- * @arg TCPP0203_GD_CONSUMER_SWITCH_ACK_CLOSED Gate Driver Consumer Closed Ack
- * @retval Component status
- */
-int32_t TCPP0203_GetGateDriverConsumerAck(TCPP0203_Object_t *pObj, uint8_t *pGateDriverConsumerAck)
-{
- int32_t ret;
- uint8_t tmp;
-
- /* Check if TCPP type is TCPP03. Otherwise, return error */
- if (TCPP0203_DeviceType != TCPP0203_DEVICE_TYPE_03)
- {
- return (TCPP0203_ERROR);
- }
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_ACK_REG, &tmp, 1);
- *pGateDriverConsumerAck = (tmp & TCPP0203_GD_CONSUMER_SWITCH_ACK_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get Power Mode Ack value
- * @param pObj Pointer to component object
- * @param pPowerModeAck Pointer on Power Mode Ack value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_POWER_MODE_ACK_HIBERNATE Power Mode Hibernate Ack
- * @arg TCPP0203_POWER_MODE_ACK_LOWPOWER Power Mode Low Power Ack
- * @arg TCPP0203_POWER_MODE_ACK_NORMAL Power Mode Normal Ack
- * @retval Component status
- */
-int32_t TCPP0203_GetPowerModeAck(TCPP0203_Object_t *pObj, uint8_t *pPowerModeAck)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_ACK_REG, &tmp, 1);
- *pPowerModeAck = (tmp & TCPP0203_POWER_MODE_ACK_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get VBUS Discharge Ack value
- * @param pObj Pointer to component object
- * @param pVBusDischargeAck Pointer on VBUS Discharge Ack value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_VBUS_DISCHARGE_ACK_OFF VBUS Discharge Off Ack
- * @arg TCPP0203_VBUS_DISCHARGE_ACK_ON VBUS Discharge On Ack
- * @retval Component status
- */
-int32_t TCPP0203_GetVBusDischargeAck(TCPP0203_Object_t *pObj, uint8_t *pVBusDischargeAck)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_ACK_REG, &tmp, 1);
- *pVBusDischargeAck = (tmp & TCPP0203_VBUS_DISCHARGE_ACK_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get VConn Discharge Ack value
- * @param pObj Pointer to component object
- * @param pVConnDischargeAck Pointer on VConn Discharge Ack value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_VCONN_DISCHARGE_ACK_OFF VConn Discharge Off Ack
- * @arg TCPP0203_VCONN_DISCHARGE_ACK_ON VConn Discharge On Ack
- * @retval Component status
- */
-int32_t TCPP0203_GetVConnDischargeAck(TCPP0203_Object_t *pObj, uint8_t *pVConnDischargeAck)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_ACK_REG, &tmp, 1);
- *pVConnDischargeAck = (tmp & TCPP0203_VCONN_DISCHARGE_ACK_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get OCP VConn Flag value
- * @param pObj Pointer to component object
- * @param pOCPVConnFlag Pointer on OCP VConn Flag value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_FLAG_OCP_VCONN_RESET OCP VConn flag not set
- * @arg TCPP0203_FLAG_OCP_VCONN_SET OCP VConn flag set
- * @retval Component status
- */
-int32_t TCPP0203_GetOCPVConnFlag(TCPP0203_Object_t *pObj, uint8_t *pOCPVConnFlag)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_FLAG_REG, &tmp, 1);
- *pOCPVConnFlag = (tmp & TCPP0203_FLAG_OCP_VCONN_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get OCP VBUS Flag value
- * @param pObj Pointer to component object
- * @param pGetOCPVBusFlag Pointer on OCP VBUS Flag value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_FLAG_OCP_VBUS_RESET OCP VBUS flag not set
- * @arg TCPP0203_FLAG_OCP_VBUS_SET OCP VBUS flag set
- * @retval Component status
- */
-int32_t TCPP0203_GetOCPVBusFlag(TCPP0203_Object_t *pObj, uint8_t *pGetOCPVBusFlag)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_FLAG_REG, &tmp, 1);
- *pGetOCPVBusFlag = (tmp & TCPP0203_FLAG_OCP_VBUS_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get OVP VBUS Flag value
- * @param pObj Pointer to component object
- * @param pOVPVBusFlag Pointer on OVP VBUS Flag value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_FLAG_OVP_VBUS_RESET OVP VBUS flag not set
- * @arg TCPP0203_FLAG_OVP_VBUS_SET OVP VBUS flag set
- * @retval Component status
- */
-int32_t TCPP0203_GetOVPVBusFlag(TCPP0203_Object_t *pObj, uint8_t *pOVPVBusFlag)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_FLAG_REG, &tmp, 1);
- *pOVPVBusFlag = (tmp & TCPP0203_FLAG_OVP_VBUS_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get OVP CC Flag value
- * @param pObj Pointer to component object
- * @param pOVPCCFlag Pointer on OVP CC Flag value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_FLAG_OVP_CC_RESET OVP CC flag not set
- * @arg TCPP0203_FLAG_OVP_CC_SET OVP CC flag set
- * @retval Component status
- */
-int32_t TCPP0203_GetOVPCCFlag(TCPP0203_Object_t *pObj, uint8_t *pOVPCCFlag)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_FLAG_REG, &tmp, 1);
- *pOVPCCFlag = (tmp & TCPP0203_FLAG_OVP_CC_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get Over Temperature Flag value
- * @param pObj Pointer to component object
- * @param pOTPFlag Pointer on Over Temperature Flag value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_FLAG_OTP_RESET Over Temperature flag not set
- * @arg TCPP0203_FLAG_OTP_SET Over Temperature flag set
- * @retval Component status
- */
-int32_t TCPP0203_GetOTPFlag(TCPP0203_Object_t *pObj, uint8_t *pOTPFlag)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_FLAG_REG, &tmp, 1);
- *pOTPFlag = (tmp & TCPP0203_FLAG_OTP_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get VBUS OK Flag value
- * @param pObj Pointer to component object
- * @param pVBusOkFlag Pointer on VBUS OK Flag value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_FLAG_VBUS_OK_RESET VBUS OK flag not set
- * @arg TCPP0203_FLAG_VBUS_OK_SET VBUS OK flag set
- * @retval Component status
- */
-int32_t TCPP0203_GetVBusOkFlag(TCPP0203_Object_t *pObj, uint8_t *pVBusOkFlag)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_FLAG_REG, &tmp, 1);
- *pVBusOkFlag = (tmp & TCPP0203_FLAG_VBUS_OK_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get TCPP0203 Device Type value
- * @param pObj Pointer to component object
- * @param pTCPPType Pointer on TCPP0203 Device Type value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_DEVICE_TYPE_02 TCPP02 Type
- * @arg TCPP0203_DEVICE_TYPE_03 TCPP03 Type
- * @retval Component status
- */
-int32_t TCPP0203_ReadTCPPType(TCPP0203_Object_t *pObj, uint8_t *pTCPPType)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_FLAG_REG, &tmp, 1);
- *pTCPPType = (tmp & TCPP0203_DEVICE_TYPE_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get VConn Power value
- * @param pObj Pointer to component object
- * @param pVCONNPower Pointer on VConn Power value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_FLAG_VCONN_PWR_1W OCP VConn flag not set
- * @arg TCPP0203_FLAG_VCONN_PWR_0_1W OCP VConn flag set
- * @retval Component status
- */
-int32_t TCPP0203_ReadVCONNPower(TCPP0203_Object_t *pObj, uint8_t *pVCONNPower)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_FLAG_REG, &tmp, 1);
- *pVCONNPower = (tmp & TCPP0203_FLAG_VCONN_PWR_MSK);
-
- return ret;
-}
-
-/**
- * @brief Set complete Ctrl register value (Reg 0)
- * @param pObj Pointer to component object
- * @param pCtrlRegister Pointer on Ctrl register value
- * @retval Component status
- */
-int32_t TCPP0203_WriteCtrlRegister(TCPP0203_Object_t *pObj, uint8_t *pCtrlRegister)
-{
- int32_t ret;
-
- /* Update value in writing register (reg0) */
- ret = tcpp0203_write_reg(&pObj->Ctx, TCPP0203_PROG_CTRL, pCtrlRegister, 1);
-
-#if defined(TCPP0203_REGISTER_CONSISTENCY_CHECK)
- Reg0_Expected_Value = *pCtrlRegister;
-#endif /* TCPP0203_REGISTER_CONSISTENCY_CHECK */
-
- return ret;
-}
-
-/**
- * @brief Get complete Ack register value
- * @param pObj Pointer to component object
- * @param pAckRegister Pointer on Ack register value
- * @retval Component status
- */
-int32_t TCPP0203_ReadAckRegister(TCPP0203_Object_t *pObj, uint8_t *pAckRegister)
-{
- int32_t ret;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_ACK_REG, pAckRegister, 1);
-
- return ret;
-}
-
-/**
- * @brief Get complete Flag register value
- * @param pObj Pointer to component object
- * @param pFlagRegister Pointer on Flag register value
- * @retval Component status
- */
-int32_t TCPP0203_ReadFlagRegister(TCPP0203_Object_t *pObj, uint8_t *pFlagRegister)
-{
- int32_t ret;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_FLAG_REG, pFlagRegister, 1);
-
- return ret;
-}
-
-/******************** Static functions ****************************************/
-/**
- * @brief Wrap TCPP0203 read function to Bus IO function
- * @param handle Component object handle
- * @param Reg Target register address to read
- * @param pData Buffer where Target register value should be stored
- * @param Length buffer size to be read
- * @retval error status
- */
-static int32_t TCPP0203_ReadRegWrap(const void *handle, uint8_t Reg, uint8_t *pData, uint8_t Length)
-{
- const TCPP0203_Object_t *pObj = (const TCPP0203_Object_t *)handle;
-
- return pObj->IO.ReadReg(pObj->IO.Address, Reg, pData, Length);
-}
-
-/**
- * @brief Wrap TCPP0203 write function to Bus IO function
- * @param handle Component object handle
- * @param Reg Target register address to write
- * @param pData Target register value to be written
- * @param Length Buffer size to be written
- * @retval error status
- */
-static int32_t TCPP0203_WriteRegWrap(const void *handle, uint8_t Reg, uint8_t *pData, uint8_t Length)
-{
- const TCPP0203_Object_t *pObj = (const TCPP0203_Object_t *)handle;
-
-#if defined(TCPP0203_REGISTER_CONSISTENCY_CHECK)
- Reg0_Expected_Value = *pData;
-#endif /* TCPP0203_REGISTER_CONSISTENCY_CHECK */
-
- return pObj->IO.WriteReg(pObj->IO.Address, Reg, pData, Length);
-}
-
-/**
- * @brief TCPP0203 register update function to Bus IO function
- * @param handle Component object handle
- * @param Reg Target register address to write
- * @param pData Target register value to be written
- * @param Length Buffer size to be written
- * @retval error status
- */
-static int32_t TCPP0203_ModifyReg0(TCPP0203_Object_t *pObj, uint8_t Value, uint8_t Mask)
-{
- int32_t ret;
- uint8_t tmp;
-
- /* Read current content of ACK register (reflects content of bits set to 1 in Writing register Reg0) */
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_ACK_REG, &tmp, 1);
-
- /* Update only the area dedicated to Mask */
- tmp &= ~(Mask);
- tmp |= (Value & Mask);
-
-#if defined(TCPP0203_REGISTER_CONSISTENCY_CHECK)
- Reg0_Expected_Value = tmp;
-#endif /* TCPP0203_REGISTER_CONSISTENCY_CHECK */
-
- /* Update value in writing register (reg0) */
- ret += tcpp0203_write_reg(&pObj->Ctx, TCPP0203_PROG_CTRL, &tmp, 1);
-
-#if defined(TCPP0203_REGISTER_CONSISTENCY_CHECK)
- ret += TCPP0203_CheckReg0Reg1(pObj, Reg0_Expected_Value);
-#endif /* TCPP0203_REGISTER_CONSISTENCY_CHECK */
-
- return ret;
-}
-
-#if defined(TCPP0203_REGISTER_CONSISTENCY_CHECK)
-/**
- * @brief TCPP0203 register control function between Reg0 and Reg1 value
- * @param handle Component object handle
- * @param Reg0ExpectedValue Value expected in Reg0 (built after all calls to write functions)
- * @retval error status
- */
-static int32_t TCPP0203_CheckReg0Reg1(TCPP0203_Object_t *pObj, uint8_t Reg0ExpectedValue)
-{
- int32_t ret;
-
- /* Read current content of ACK register (expected to reflect content of bits set to 1 in Writing register Reg0) */
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_ACK_REG, &Reg1_LastRead_Value, 1);
-
-#ifdef _TRACE
- char str[12];
- sprintf(str, "Exp0_0x%02x", Reg0ExpectedValue);
- USBPD_TRACE_Add(USBPD_TRACE_DEBUG, 0U, 0U, (uint8_t *)str, sizeof(str) - 1U);
- sprintf(str, "Reg1_0x%02x", Reg1_LastRead_Value);
- USBPD_TRACE_Add(USBPD_TRACE_DEBUG, 0U, 0U, (uint8_t *)str, sizeof(str) - 1U);
-#endif /* _TRACE */
-
- /* Control if Reg1 value is same as Reg0 expected one */
- if (Reg1_LastRead_Value != Reg0ExpectedValue)
- {
- while (1);
- }
-
- return ret;
-}
-#endif /* TCPP0203_REGISTER_CONSISTENCY_CHECK */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
diff --git a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/tcpp0203.h b/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/tcpp0203.h
deleted file mode 100644
index 271b534fc..000000000
--- a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/tcpp0203.h
+++ /dev/null
@@ -1,353 +0,0 @@
-/**
- ******************************************************************************
- * @file tcpp0203.h
- * @author MCD Application Team
- * @brief This file contains all the functions prototypes for the
- * tcpp0203.c driver.
- ******************************************************************************
- * @attention
- *
- * Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.
- *
- * This software is licensed under terms that can be found in the LICENSE file
- * in the root directory of this software component.
- * If no LICENSE file comes with this software, it is provided AS-IS.
- *
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef TCPP0203_H
-#define TCPP0203_H
-
-/* Includes ------------------------------------------------------------------*/
-#include "tcpp0203_reg.h"
-#include
-
-/** @addtogroup BSP
- * @{
- */
-
-/** @addtogroup Component
- * @{
- */
-
-/** @addtogroup TCPP0203
- * @{
- */
-
-/* Exported types ------------------------------------------------------------*/
-
-/** @defgroup TCPP0203_Exported_Types TCPP0203 Exported Types
- * @{
- */
-typedef int32_t (*TCPP0203_Init_Func)(void);
-typedef int32_t (*TCPP0203_DeInit_Func)(void);
-typedef int32_t (*TCPP0203_GetTick_Func)(void);
-typedef int32_t (*TCPP0203_WriteReg_Func)(uint16_t, uint16_t, uint8_t *, uint16_t);
-typedef int32_t (*TCPP0203_ReadReg_Func)(uint16_t, uint16_t, uint8_t *, uint16_t);
-
-typedef struct
-{
- TCPP0203_Init_Func Init;
- TCPP0203_DeInit_Func DeInit;
- uint16_t Address;
- TCPP0203_WriteReg_Func WriteReg;
- TCPP0203_ReadReg_Func ReadReg;
- TCPP0203_GetTick_Func GetTick;
-} TCPP0203_IO_t;
-
-
-typedef struct
-{
- TCPP0203_IO_t IO;
- TCPP0203_ctx_t Ctx;
- uint8_t IsInitialized;
-} TCPP0203_Object_t;
-
-typedef struct
-{
- int32_t (*Init)(TCPP0203_Object_t *);
- int32_t (*DeInit)(TCPP0203_Object_t *);
- int32_t (*Reset)(TCPP0203_Object_t *);
- int32_t (*SetVConnSwitch)(TCPP0203_Object_t *, uint8_t);
- int32_t (*SetGateDriverProvider)(TCPP0203_Object_t *, uint8_t);
- int32_t (*SetGateDriverConsumer)(TCPP0203_Object_t *, uint8_t);
- int32_t (*SetPowerMode)(TCPP0203_Object_t *, uint8_t);
- int32_t (*SetVBusDischarge)(TCPP0203_Object_t *, uint8_t);
- int32_t (*SetVConnDischarge)(TCPP0203_Object_t *, uint8_t);
- int32_t (*GetVConnSwitchAck)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetGateDriverProviderAck)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetGateDriverConsumerAck)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetPowerModeAck)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetVBusDischargeAck)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetVConnDischargeAck)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetOCPVConnFlag)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetOCPVBusFlag)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetOVPVBusFlag)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetOVPCCFlag)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetOTPFlag)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetVBusOkFlag)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*ReadTCPPType)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*ReadVCONNPower)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*WriteCtrlRegister)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*ReadAckRegister)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*ReadFlagRegister)(TCPP0203_Object_t *, uint8_t *);
-} TCPP0203_Drv_t;
-
-/**
- * @}
- */
-
-/** @defgroup TCPP0203_Exported_Constants TCPP0203 Exported Constants
- * @{
- */
-/**
- * @brief TCPP0203 Driver Response codes
- */
-#define TCPP0203_OK (0)
-#define TCPP0203_ERROR (-1)
-
-/**
- * @brief TCPP0203 possible I2C Addresses
- */
-#define TCPP0203_I2C_ADDRESS_X68 (0x68U)
-#define TCPP0203_I2C_ADDRESS_X6A (0x6AU)
-
-/**
- * @brief TCPP0203 Reg0 Reset Value
- */
-#define TCPP0203_REG0_RST_VALUE TCPP0203_GD_CONSUMER_SWITCH_CLOSED
-
-/**
- * @brief TCPP0203 VCONN Switch
- */
-#define TCPP0203_VCONN_SWITCH_POS (0U)
-#define TCPP0203_VCONN_SWITCH_MSK (0x03U << TCPP0203_VCONN_SWITCH_POS)
-#define TCPP0203_VCONN_SWITCH_OPEN (0x00U)
-#define TCPP0203_VCONN_SWITCH_CC1 (0x01U << TCPP0203_VCONN_SWITCH_POS)
-#define TCPP0203_VCONN_SWITCH_CC2 (0x02U << TCPP0203_VCONN_SWITCH_POS)
-
-/**
- * @brief TCPP0203 Gate Driver Provider values
- */
-#define TCPP0203_GD_PROVIDER_SWITCH_POS (2U)
-#define TCPP0203_GD_PROVIDER_SWITCH_MSK (0x01U << TCPP0203_GD_PROVIDER_SWITCH_POS)
-#define TCPP0203_GD_PROVIDER_SWITCH_OPEN (0x00U)
-#define TCPP0203_GD_PROVIDER_SWITCH_CLOSED (TCPP0203_GD_PROVIDER_SWITCH_MSK)
-
-/**
- * @brief TCPP0203 Gate Driver Consumer values
- */
-#define TCPP0203_GD_CONSUMER_SWITCH_POS (3U)
-#define TCPP0203_GD_CONSUMER_SWITCH_MSK (0x01U << TCPP0203_GD_CONSUMER_SWITCH_POS)
-#define TCPP0203_GD_CONSUMER_SWITCH_CLOSED (0x00U)
-#define TCPP0203_GD_CONSUMER_SWITCH_OPEN (TCPP0203_GD_CONSUMER_SWITCH_MSK)
-
-/**
- * @brief TCPP0203 Power Mode values
- */
-#define TCPP0203_POWER_MODE_POS (4U)
-#define TCPP0203_POWER_MODE_MSK (0x03U << TCPP0203_POWER_MODE_POS)
-#define TCPP0203_POWER_MODE_HIBERNATE (0x00U)
-#define TCPP0203_POWER_MODE_LOWPOWER (0x02U << TCPP0203_POWER_MODE_POS)
-#define TCPP0203_POWER_MODE_NORMAL (0x01U << TCPP0203_POWER_MODE_POS)
-
-/**
- * @brief TCPP0203 VBUS Discharge management
- */
-#define TCPP0203_VBUS_DISCHARGE_POS (6U)
-#define TCPP0203_VBUS_DISCHARGE_MSK (0x01U << TCPP0203_VBUS_DISCHARGE_POS)
-#define TCPP0203_VBUS_DISCHARGE_OFF (0x00U)
-#define TCPP0203_VBUS_DISCHARGE_ON (TCPP0203_VBUS_DISCHARGE_MSK)
-
-/**
- * @brief TCPP0203 VConn Discharge management
- */
-#define TCPP0203_VCONN_DISCHARGE_POS (7U)
-#define TCPP0203_VCONN_DISCHARGE_MSK (0x01U << TCPP0203_VCONN_DISCHARGE_POS)
-#define TCPP0203_VCONN_DISCHARGE_OFF (0x00U)
-#define TCPP0203_VCONN_DISCHARGE_ON (TCPP0203_VCONN_DISCHARGE_MSK)
-
-/**
- * @brief TCPP0203 VCONN Switch Acknowledge
- */
-#define TCPP0203_VCONN_SWITCH_ACK_POS (0U)
-#define TCPP0203_VCONN_SWITCH_ACK_MSK (0x03U << TCPP0203_VCONN_SWITCH_ACK_POS)
-#define TCPP0203_VCONN_SWITCH_ACK_OPEN (0x00U)
-#define TCPP0203_VCONN_SWITCH_ACK_CC1 (0x02U << TCPP0203_VCONN_SWITCH_ACK_POS)
-#define TCPP0203_VCONN_SWITCH_ACK_CC2 (0x01U << TCPP0203_VCONN_SWITCH_ACK_POS)
-
-/**
- * @brief TCPP0203 Gate Driver Provider Acknowledge
- */
-#define TCPP0203_GD_PROVIDER_SWITCH_ACK_POS (2U)
-#define TCPP0203_GD_PROVIDER_SWITCH_ACK_MSK (0x01U << TCPP0203_GD_PROVIDER_SWITCH_ACK_POS)
-#define TCPP0203_GD_PROVIDER_SWITCH_ACK_OPEN (0x00U)
-#define TCPP0203_GD_PROVIDER_SWITCH_ACK_CLOSED (TCPP0203_GD_PROVIDER_SWITCH_ACK_MSK)
-
-/**
- * @brief TCPP0203 Gate Driver Consumer Acknowledge
- */
-#define TCPP0203_GD_CONSUMER_SWITCH_ACK_POS (3U)
-#define TCPP0203_GD_CONSUMER_SWITCH_ACK_MSK (0x01U << TCPP0203_GD_CONSUMER_SWITCH_ACK_POS)
-#define TCPP0203_GD_CONSUMER_SWITCH_ACK_CLOSED (0x00U)
-#define TCPP0203_GD_CONSUMER_SWITCH_ACK_OPEN (TCPP0203_GD_CONSUMER_SWITCH_ACK_MSK)
-
-/**
- * @brief TCPP0203 Power Mode Acknowledge
- */
-#define TCPP0203_POWER_MODE_ACK_POS (4U)
-#define TCPP0203_POWER_MODE_ACK_MSK (0x03U << TCPP0203_POWER_MODE_ACK_POS)
-#define TCPP0203_POWER_MODE_ACK_HIBERNATE (0x00U)
-#define TCPP0203_POWER_MODE_ACK_LOWPOWER (0x01U << TCPP0203_POWER_MODE_ACK_POS)
-#define TCPP0203_POWER_MODE_ACK_NORMAL (0x02U << TCPP0203_POWER_MODE_ACK_POS)
-
-/**
- * @brief TCPP0203 VBUS Discharge Acknowledge
- */
-#define TCPP0203_VBUS_DISCHARGE_ACK_POS (6U)
-#define TCPP0203_VBUS_DISCHARGE_ACK_MSK (0x01U << TCPP0203_VBUS_DISCHARGE_ACK_POS)
-#define TCPP0203_VBUS_DISCHARGE_ACK_OFF (0x00U)
-#define TCPP0203_VBUS_DISCHARGE_ACK_ON (TCPP0203_VBUS_DISCHARGE_ACK_MSK)
-
-/**
- * @brief TCPP0203 VConn Discharge Acknowledge
- */
-#define TCPP0203_VCONN_DISCHARGE_ACK_POS (7U)
-#define TCPP0203_VCONN_DISCHARGE_ACK_MSK (0x01U << TCPP0203_VCONN_DISCHARGE_ACK_POS)
-#define TCPP0203_VCONN_DISCHARGE_ACK_OFF (0x00U)
-#define TCPP0203_VCONN_DISCHARGE_ACK_ON (TCPP0203_VCONN_DISCHARGE_ACK_MSK)
-
-/**
- * @brief TCPP0203 OCP Vconn Flag management
- */
-#define TCPP0203_FLAG_OCP_VCONN_POS (0U)
-#define TCPP0203_FLAG_OCP_VCONN_MSK (0x01U << TCPP0203_FLAG_OCP_VCONN_POS)
-#define TCPP0203_FLAG_OCP_VCONN_SET (TCPP0203_FLAG_OCP_VCONN_MSK)
-#define TCPP0203_FLAG_OCP_VCONN_RESET (0x00U)
-
-/**
- * @brief TCPP0203 OCP VBUS Flag management
- */
-#define TCPP0203_FLAG_OCP_VBUS_POS (1U)
-#define TCPP0203_FLAG_OCP_VBUS_MSK (0x01U << TCPP0203_FLAG_OCP_VBUS_POS)
-#define TCPP0203_FLAG_OCP_VBUS_SET (TCPP0203_FLAG_OCP_VBUS_MSK)
-#define TCPP0203_FLAG_OCP_VBUS_RESET (0x00U)
-
-/**
- * @brief TCPP0203 OVP VBUS Flag management
- */
-#define TCPP0203_FLAG_OVP_VBUS_POS (2U)
-#define TCPP0203_FLAG_OVP_VBUS_MSK (0x01U << TCPP0203_FLAG_OVP_VBUS_POS)
-#define TCPP0203_FLAG_OVP_VBUS_SET (TCPP0203_FLAG_OVP_VBUS_MSK)
-#define TCPP0203_FLAG_OVP_VBUS_RESET (0x00U)
-
-/**
- * @brief TCPP0203 OVP CC Flag management
- */
-#define TCPP0203_FLAG_OVP_CC_POS (3U)
-#define TCPP0203_FLAG_OVP_CC_MSK (0x01U << TCPP0203_FLAG_OVP_CC_POS)
-#define TCPP0203_FLAG_OVP_CC_SET (TCPP0203_FLAG_OVP_CC_MSK)
-#define TCPP0203_FLAG_OVP_CC_RESET (0x00U)
-
-/**
- * @brief TCPP0203 OTP Flag management
- */
-#define TCPP0203_FLAG_OTP_POS (4U)
-#define TCPP0203_FLAG_OTP_MSK (0x01U << TCPP0203_FLAG_OTP_POS)
-#define TCPP0203_FLAG_OTP_SET (TCPP0203_FLAG_OTP_MSK)
-#define TCPP0203_FLAG_OTP_RESET (0x00U)
-
-/**
- * @brief TCPP0203 VBUS OK Flag management
- */
-#define TCPP0203_FLAG_VBUS_OK_POS (5U)
-#define TCPP0203_FLAG_VBUS_OK_MSK (0x01U << TCPP0203_FLAG_VBUS_OK_POS)
-#define TCPP0203_FLAG_VBUS_OK_SET (TCPP0203_FLAG_VBUS_OK_MSK)
-#define TCPP0203_FLAG_VBUS_OK_RESET (0x00U)
-
-/**
- * @brief TCPP0203 VConn Power
- */
-#define TCPP0203_FLAG_VCONN_PWR_POS (6U)
-#define TCPP0203_FLAG_VCONN_PWR_MSK (0x01U << TCPP0203_FLAG_VCONN_PWR_POS)
-#define TCPP0203_FLAG_VCONN_PWR_1W (TCPP0203_FLAG_VCONN_PWR_MSK)
-#define TCPP0203_FLAG_VCONN_PWR_0_1W (0x00U)
-
-/**
- * @brief TCPP0203 Device Type
- */
-#define TCPP0203_DEVICE_TYPE_POS (7U)
-#define TCPP0203_DEVICE_TYPE_MSK (0x01U << TCPP0203_DEVICE_TYPE_POS)
-#define TCPP0203_DEVICE_TYPE_02 (TCPP0203_DEVICE_TYPE_MSK)
-#define TCPP0203_DEVICE_TYPE_03 (0x00U)
-
-/**
- * @}
- */
-
-/** @defgroup TCPP0203_Exported_Macros TCPP0203 Exported Macros
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup TCPP0203_Exported_Functions TCPP0203 Exported Functions
- * @{
- */
-
-/*------------------------------------------------------------------------------
- TCPP02/03 Type-C port protection functions
-------------------------------------------------------------------------------*/
-/* High Layer codec functions */
-int32_t TCPP0203_RegisterBusIO(TCPP0203_Object_t *pObj, TCPP0203_IO_t *pIO);
-int32_t TCPP0203_Init(TCPP0203_Object_t *pObj);
-int32_t TCPP0203_DeInit(TCPP0203_Object_t *pObj);
-int32_t TCPP0203_Reset(TCPP0203_Object_t *pObj);
-int32_t TCPP0203_SetVConnSwitch(TCPP0203_Object_t *pObj, uint8_t VConnSwitch);
-int32_t TCPP0203_SetGateDriverProvider(TCPP0203_Object_t *pObj, uint8_t GateDriverProvider);
-int32_t TCPP0203_SetGateDriverConsumer(TCPP0203_Object_t *pObj, uint8_t GateDriverConsumer);
-int32_t TCPP0203_SetPowerMode(TCPP0203_Object_t *pObj, uint8_t PowerMode);
-int32_t TCPP0203_SetVBusDischarge(TCPP0203_Object_t *pObj, uint8_t VBusDischarge);
-int32_t TCPP0203_SetVConnDischarge(TCPP0203_Object_t *pObj, uint8_t VConnDischarge);
-int32_t TCPP0203_GetVConnSwitchAck(TCPP0203_Object_t *pObj, uint8_t *pVConnSwitchAck);
-int32_t TCPP0203_GetGateDriverProviderAck(TCPP0203_Object_t *pObj, uint8_t *pGateDriverProviderAck);
-int32_t TCPP0203_GetGateDriverConsumerAck(TCPP0203_Object_t *pObj, uint8_t *pGateDriverConsumerAck);
-int32_t TCPP0203_GetPowerModeAck(TCPP0203_Object_t *pObj, uint8_t *pPowerModeAck);
-int32_t TCPP0203_GetVBusDischargeAck(TCPP0203_Object_t *pObj, uint8_t *pVBusDischargeAck);
-int32_t TCPP0203_GetVConnDischargeAck(TCPP0203_Object_t *pObj, uint8_t *pVConnDischargeAck);
-int32_t TCPP0203_GetOCPVConnFlag(TCPP0203_Object_t *pObj, uint8_t *pOCPVConnFlag);
-int32_t TCPP0203_GetOCPVBusFlag(TCPP0203_Object_t *pObj, uint8_t *pGetOCPVBusFlag);
-int32_t TCPP0203_GetOVPVBusFlag(TCPP0203_Object_t *pObj, uint8_t *pOVPVBusFlag);
-int32_t TCPP0203_GetOVPCCFlag(TCPP0203_Object_t *pObj, uint8_t *pOVPCCFlag);
-int32_t TCPP0203_GetOTPFlag(TCPP0203_Object_t *pObj, uint8_t *pOTPFlag);
-int32_t TCPP0203_GetVBusOkFlag(TCPP0203_Object_t *pObj, uint8_t *pVBusOkFlag);
-int32_t TCPP0203_ReadTCPPType(TCPP0203_Object_t *pObj, uint8_t *pTCPPType);
-int32_t TCPP0203_ReadVCONNPower(TCPP0203_Object_t *pObj, uint8_t *pVCONNPower);
-int32_t TCPP0203_WriteCtrlRegister(TCPP0203_Object_t *pObj, uint8_t *pCtrlRegister);
-int32_t TCPP0203_ReadAckRegister(TCPP0203_Object_t *pObj, uint8_t *pAckRegister);
-int32_t TCPP0203_ReadFlagRegister(TCPP0203_Object_t *pObj, uint8_t *pFlagRegister);
-
-/**
- * @}
- */
-
-/* TCPP02/03 Type-C port protection driver structure */
-extern TCPP0203_Drv_t TCPP0203_Driver;
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-#endif /* TCPP0203_H */
diff --git a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/tcpp0203_reg.c b/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/tcpp0203_reg.c
deleted file mode 100644
index 8025fa85e..000000000
--- a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/tcpp0203_reg.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- ******************************************************************************
- * @file tcpp0203_reg.c
- * @author MCD Application Team
- * @brief This file provides unitary register function to control the TCPP02-03
- * Type-C port protection driver.
- ******************************************************************************
- * @attention
- *
- * Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.
- *
- * This software is licensed under terms that can be found in the LICENSE file
- * in the root directory of this software component.
- * If no LICENSE file comes with this software, it is provided AS-IS.
- *
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "tcpp0203_reg.h"
-
-/** @addtogroup BSP
- * @{
- */
-
-/** @addtogroup Components
- * @{
- */
-
-/** @addtogroup TCPP0203
- * @brief This file provides a set of functions needed to drive the
- * TCPP02/03 Type-C port protection codec.
- * @{
- */
-
-/************** Generic Function *******************/
-/*******************************************************************************
- * Function Name : tcpp0203_read_reg
- * Description : Generic Reading function. It must be fulfilled with either
- * I2C or SPI reading functions
- * Input : Register Address, length of buffer
- * Output : data Read
- *******************************************************************************/
-int32_t tcpp0203_read_reg(const TCPP0203_ctx_t *ctx, uint8_t reg, uint8_t *data, uint8_t length)
-{
- return ctx->ReadReg(ctx->handle, reg, data, length);
-}
-
-/*******************************************************************************
- * Function Name : tcpp0203_write_reg
- * Description : Generic Writing function. It must be fulfilled with either
- * I2C or SPI writing function
- * Input : Register Address, data to be written, length of buffer
- * Output : None
- *******************************************************************************/
-int32_t tcpp0203_write_reg(const TCPP0203_ctx_t *ctx, uint8_t reg, uint8_t *data, uint8_t length)
-{
- return ctx->WriteReg(ctx->handle, reg, data, length);
-}
-
-/******************************************************************************/
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
diff --git a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/tcpp0203_reg.h b/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/tcpp0203_reg.h
deleted file mode 100644
index 92420e1fe..000000000
--- a/hw/bsp/stm32h7rs/boards/stm32h7s3nucleo/tcpp0203/tcpp0203_reg.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- ******************************************************************************
- * @file tcpp0203_reg.h
- * @author MCD Application Team
- * @brief Header of tcpp0203_reg.c
- *
- ******************************************************************************
- * @attention
- *
- * Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.
- *
- * This software is licensed under terms that can be found in the LICENSE file
- * in the root directory of this software component.
- * If no LICENSE file comes with this software, it is provided AS-IS.
- *
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef TCPP0203_REG_H
-#define TCPP0203_REG_H
-
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Includes ------------------------------------------------------------------*/
-/** @addtogroup BSP
- * @{
- */
-
-/** @addtogroup Component
- * @{
- */
-
-/** @addtogroup TCPP0203
- * @{
- */
-
-
-/** @defgroup TCPP0203_Exported_Constants TCPP0203 Exported Constants
- * @{
- */
-/******************************************************************************/
-/****************************** REGISTER MAPPING ******************************/
-/******************************************************************************/
-#define TCPP0203_WRITE_REG 0x00U
-#define TCPP0203_PROG_CTRL TCPP0203_WRITE_REG
-#define TCPP0203_READ_REG1 0x01U
-#define TCPP0203_ACK_REG TCPP0203_READ_REG1
-#define TCPP0203_READ_REG2 0x02U
-#define TCPP0203_FLAG_REG TCPP0203_READ_REG2
-
-/**
- * @}
- */
-
-/************** Generic Function *******************/
-
-typedef int32_t (*TCPP0203_Write_Func)(const void *, uint8_t, uint8_t *, uint8_t);
-typedef int32_t (*TCPP0203_Read_Func)(const void *, uint8_t, uint8_t *, uint8_t);
-
-typedef struct
-{
- TCPP0203_Write_Func WriteReg;
- TCPP0203_Read_Func ReadReg;
- void *handle;
-} TCPP0203_ctx_t;
-
-/*******************************************************************************
- * Register : Generic - All
- * Address : Generic - All
- * Bit Group Name: None
- * Permission : W
- *******************************************************************************/
-int32_t tcpp0203_write_reg(const TCPP0203_ctx_t *ctx, uint8_t reg, uint8_t *data, uint8_t length);
-int32_t tcpp0203_read_reg(const TCPP0203_ctx_t *ctx, uint8_t reg, uint8_t *data, uint8_t length);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* TCPP0203_REG_H */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
diff --git a/hw/bsp/stm32h7rs/family.cmake b/hw/bsp/stm32h7rs/family.cmake
index 61c3ebaea..e5e98f914 100644
--- a/hw/bsp/stm32h7rs/family.cmake
+++ b/hw/bsp/stm32h7rs/family.cmake
@@ -5,6 +5,7 @@ set(ST_PREFIX stm32${ST_FAMILY}xx)
set(ST_HAL_DRIVER ${TOP}/hw/mcu/st/stm32${ST_FAMILY}xx_hal_driver)
set(ST_CMSIS ${TOP}/hw/mcu/st/cmsis_device_${ST_FAMILY})
+set(ST_TCPP0203 ${TOP}/hw/mcu/st/stm32-tcpp0203)
set(CMSIS_5 ${TOP}/lib/CMSIS_5)
# include board specific
@@ -86,6 +87,8 @@ function(add_board_target BOARD_TARGET)
BOARD_TUD_MAX_SPEED=${RHPORT_DEVICE_SPEED}
BOARD_TUH_RHPORT=${RHPORT_HOST}
BOARD_TUH_MAX_SPEED=${RHPORT_HOST_SPEED}
+ SEGGER_RTT_SECTION="noncacheable_buffer"
+ BUFFER_SIZE_UP=0x3000
)
update_board(${BOARD_TARGET})
diff --git a/hw/bsp/stm32h7rs/family.mk b/hw/bsp/stm32h7rs/family.mk
index d679b72f1..9970059f8 100644
--- a/hw/bsp/stm32h7rs/family.mk
+++ b/hw/bsp/stm32h7rs/family.mk
@@ -2,6 +2,7 @@ ST_FAMILY = h7rs
ST_PREFIX = stm32${ST_FAMILY}xx
ST_CMSIS = hw/mcu/st/cmsis_device_$(ST_FAMILY)
ST_HAL_DRIVER = hw/mcu/st/${ST_PREFIX}_hal_driver
+ST_TCPP0203 = hw/mcu/st/stm32-tcpp0203
UF2_FAMILY_ID = 0x6db66083
@@ -42,6 +43,8 @@ CFLAGS += \
-DBOARD_TUD_MAX_SPEED=${RHPORT_DEVICE_SPEED} \
-DBOARD_TUH_RHPORT=${RHPORT_HOST} \
-DBOARD_TUH_MAX_SPEED=${RHPORT_HOST_SPEED} \
+ -DSEGGER_RTT_SECTION=\"noncacheable_buffer\" \
+ -DBUFFER_SIZE_UP=0x3000 \
# GCC Flags
CFLAGS_GCC += \
diff --git a/hw/bsp/stm32n6/boards/stm32n657nucleo/board.cmake b/hw/bsp/stm32n6/boards/stm32n657nucleo/board.cmake
index 789eb9a2e..e88efefb9 100644
--- a/hw/bsp/stm32n6/boards/stm32n657nucleo/board.cmake
+++ b/hw/bsp/stm32n6/boards/stm32n657nucleo/board.cmake
@@ -7,13 +7,11 @@ function(update_board TARGET)
target_compile_definitions(${TARGET} PUBLIC
STM32N657xx
)
-
target_sources(${TARGET} PUBLIC
- # BSP
- ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/tcpp0203/tcpp0203.c
- ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/tcpp0203/tcpp0203_reg.c
+ ${ST_TCPP0203}/tcpp0203.c
+ ${ST_TCPP0203}/tcpp0203_reg.c
)
target_include_directories(${TARGET} PUBLIC
- ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/tcpp0203
+ ${ST_TCPP0203}
)
endfunction()
diff --git a/hw/bsp/stm32n6/boards/stm32n657nucleo/board.mk b/hw/bsp/stm32n6/boards/stm32n657nucleo/board.mk
index bfbe5b23c..05717699c 100644
--- a/hw/bsp/stm32n6/boards/stm32n657nucleo/board.mk
+++ b/hw/bsp/stm32n6/boards/stm32n657nucleo/board.mk
@@ -10,8 +10,8 @@ flash: flash-stlink
PORT = 1
SRC_C += \
- $(BOARD_PATH)/tcpp0203/tcpp0203.c \
- $(BOARD_PATH)/tcpp0203/tcpp0203_reg.c \
+ $(ST_TCPP0203)/tcpp0203.c \
+ $(ST_TCPP0203)/tcpp0203_reg.c \
INC += \
- $(TOP)/$(BOARD_PATH)/tcpp0203 \
+ $(TOP)/$(ST_TCPP0203) \
diff --git a/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/LICENSE.txt b/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/LICENSE.txt
deleted file mode 100644
index 1cbbc544a..000000000
--- a/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/LICENSE.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-This software component is provided to you as part of a software package and
-applicable license terms are in the Package_license file. If you received this
-software component outside of a package or without applicable license terms,
-the terms of the BSD-3-Clause license shall apply.
-You may obtain a copy of the BSD-3-Clause at:
-https://opensource.org/licenses/BSD-3-Clause
diff --git a/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/Release_Notes.html b/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/Release_Notes.html
deleted file mode 100644
index 6bbba86a4..000000000
--- a/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/Release_Notes.html
+++ /dev/null
@@ -1,205 +0,0 @@
-
-
-
-
-
-
- Release Notes for TCPP0203 Component Driver
-
-
-
-
-
-
-
-
-
-Release Notes for TCPP0203 Component Driver
-Copyright © 2020 STMicroelectronics
-
-
-
-
Purpose
-
This driver provides a set of functions needed to drive TCPP0203 Type-C Port Protection component
-
-
-
Update History
-
-
-
-
Main Changes
-
Maintenance release
-
Contents
-
-
-
-
-
-
-MISRA Rule-81.13 correction on TCPP0203 component driver files |
-
-
-
-
Backward compatibility
-
No compatibility break with previous version
-
Dependencies
-
-
-
-
-
-
Main Changes
-
Maintenance release
-
Contents
-
-Fixed bugs list
-
-
-
-
-
-MISRA corrections on TCPP0203 component driver files |
-
-
-
-
Known Limitations
-
Outstanding bugs list : None
-
Requirements not met or planned in a forthcoming release : None
-
-
-- IAR Embedded Workbench for ARM (EWARM) toolchain V8.32.3
-- RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.27.1
-- STM32CubeIDE toolchain V1.8.0
-
-
Backward compatibility
-
No compatibility break with previous version
-
Dependencies
-
-
-
-
-
-
Main Changes
-
Maintenance release
-
Contents
-
-Fixed bugs list
-
-
-
-
-
-License updates |
-
-
-
-
Known Limitations
-
Outstanding bugs list : None
-
Requirements not met or planned in a forthcoming release : None
-
-
-- IAR Embedded Workbench for ARM (EWARM) toolchain V8.32.3
-- RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.27.1
-- STM32CubeIDE toolchain V1.6.0
-
-
Backward compatibility
-
No compatibility break with previous version
-
Dependencies
-
-
-
-
-
-
Main Changes
-
Maintenance release
-
Contents
-
-Fixed bugs list
-
-
-
-
-
-CodeSpell correction on TCPP0203 component driver files |
-
-
-
-
Known Limitations
-
Outstanding bugs list : None
-
Requirements not met or planned in a forthcoming release : None
-
-
-- IAR Embedded Workbench for ARM (EWARM) toolchain V8.32.3
-- RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.27.1
-- STM32CubeIDE toolchain V1.5.0
-
-
Backward compatibility
-
No compatibility break with previous version
-
Dependencies
-
-
-
-
-
-
Main Changes
-
Maintenance release
-
Contents
-
-Fixed bugs list
-
-
-
-
-
-MCUAstyle correction on TCPP0203 component driver files |
-
-
-
-
Known Limitations
-
Outstanding bugs list : None
-
Requirements not met or planned in a forthcoming release : None
-
-
-- IAR Embedded Workbench for ARM (EWARM) toolchain V8.32.3
-- RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.27.1
-- STM32CubeIDE toolchain V1.5.0
-
-
Backward compatibility
-
No compatibility break with previous version
-
Dependencies
-
-
-
-
-
-
Main Changes
-
-- First official release of TCPP0203 Type-C port Protection Component drivers
-
-
-
-
-
-
-
-
diff --git a/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/_htmresc/favicon.png b/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/_htmresc/favicon.png
deleted file mode 100644
index 06713eec4..000000000
Binary files a/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/_htmresc/favicon.png and /dev/null differ
diff --git a/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/_htmresc/mini-st_2020.css b/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/_htmresc/mini-st_2020.css
deleted file mode 100644
index dd19969d1..000000000
--- a/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/_htmresc/mini-st_2020.css
+++ /dev/null
@@ -1,1703 +0,0 @@
-@charset "UTF-8";
-/*
- Flavor name: Custom (mini-custom)
- Generated online - https://minicss.org/flavors
- mini.css version: v3.0.1
-*/
-/*
- Browsers resets and base typography.
-*/
-/* Core module CSS variable definitions */
-:root {
- --fore-color: #03234b;
- --secondary-fore-color: #03234b;
- --back-color: #ffffff;
- --secondary-back-color: #ffffff;
- --blockquote-color: #e6007e;
- --pre-color: #e6007e;
- --border-color: #3cb4e6;
- --secondary-border-color: #3cb4e6;
- --heading-ratio: 1.2;
- --universal-margin: 0.5rem;
- --universal-padding: 0.25rem;
- --universal-border-radius: 0.075rem;
- --background-margin: 1.5%;
- --a-link-color: #3cb4e6;
- --a-visited-color: #8c0078; }
-
-html {
- font-size: 13.5px; }
-
-a, b, del, em, i, ins, q, span, strong, u {
- font-size: 1em; }
-
-html, * {
- font-family: -apple-system, BlinkMacSystemFont, Helvetica, arial, sans-serif;
- line-height: 1.25;
- -webkit-text-size-adjust: 100%; }
-
-* {
- font-size: 1rem; }
-
-body {
- margin: 0;
- color: var(--fore-color);
- @background: var(--back-color);
- background: var(--back-color) linear-gradient(#ffd200, #ffd200) repeat-y left top;
- background-size: var(--background-margin);
- }
-
-details {
- display: block; }
-
-summary {
- display: list-item; }
-
-abbr[title] {
- border-bottom: none;
- text-decoration: underline dotted; }
-
-input {
- overflow: visible; }
-
-img {
- max-width: 100%;
- height: auto; }
-
-h1, h2, h3, h4, h5, h6 {
- line-height: 1.25;
- margin: calc(1.5 * var(--universal-margin)) var(--universal-margin);
- font-weight: 400; }
- h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
- color: var(--secondary-fore-color);
- display: block;
- margin-top: -0.25rem; }
-
-h1 {
- font-size: calc(1rem * var(--heading-ratio) * var(--heading-ratio) * var(--heading-ratio)); }
-
-h2 {
- font-size: calc(1rem * var(--heading-ratio) * var(--heading-ratio) );
- border-style: none none solid none ;
- border-width: thin;
- border-color: var(--border-color); }
-h3 {
- font-size: calc(1rem * var(--heading-ratio) ); }
-
-h4 {
- font-size: calc(1rem * var(--heading-ratio)); }
-
-h5 {
- font-size: 1rem; }
-
-h6 {
- font-size: calc(1rem / var(--heading-ratio)); }
-
-p {
- margin: var(--universal-margin); }
-
-ol, ul {
- margin: var(--universal-margin);
- padding-left: calc(3 * var(--universal-margin)); }
-
-b, strong {
- font-weight: 700; }
-
-hr {
- box-sizing: content-box;
- border: 0;
- line-height: 1.25em;
- margin: var(--universal-margin);
- height: 0.0714285714rem;
- background: linear-gradient(to right, transparent, var(--border-color) 20%, var(--border-color) 80%, transparent); }
-
-blockquote {
- display: block;
- position: relative;
- font-style: italic;
- color: var(--secondary-fore-color);
- margin: var(--universal-margin);
- padding: calc(3 * var(--universal-padding));
- border: 0.0714285714rem solid var(--secondary-border-color);
- border-left: 0.3rem solid var(--blockquote-color);
- border-radius: 0 var(--universal-border-radius) var(--universal-border-radius) 0; }
- blockquote:before {
- position: absolute;
- top: calc(0rem - var(--universal-padding));
- left: 0;
- font-family: sans-serif;
- font-size: 2rem;
- font-weight: 800;
- content: "\201c";
- color: var(--blockquote-color); }
- blockquote[cite]:after {
- font-style: normal;
- font-size: 0.75em;
- font-weight: 700;
- content: "\a— " attr(cite);
- white-space: pre; }
-
-code, kbd, pre, samp {
- font-family: Menlo, Consolas, monospace;
- font-size: 0.85em; }
-
-code {
- background: var(--secondary-back-color);
- border-radius: var(--universal-border-radius);
- padding: calc(var(--universal-padding) / 4) calc(var(--universal-padding) / 2); }
-
-kbd {
- background: var(--fore-color);
- color: var(--back-color);
- border-radius: var(--universal-border-radius);
- padding: calc(var(--universal-padding) / 4) calc(var(--universal-padding) / 2); }
-
-pre {
- overflow: auto;
- background: var(--secondary-back-color);
- padding: calc(1.5 * var(--universal-padding));
- margin: var(--universal-margin);
- border: 0.0714285714rem solid var(--secondary-border-color);
- border-left: 0.2857142857rem solid var(--pre-color);
- border-radius: 0 var(--universal-border-radius) var(--universal-border-radius) 0; }
-
-sup, sub, code, kbd {
- line-height: 0;
- position: relative;
- vertical-align: baseline; }
-
-small, sup, sub, figcaption {
- font-size: 0.75em; }
-
-sup {
- top: -0.5em; }
-
-sub {
- bottom: -0.25em; }
-
-figure {
- margin: var(--universal-margin); }
-
-figcaption {
- color: var(--secondary-fore-color); }
-
-a {
- text-decoration: none; }
- a:link {
- color: var(--a-link-color); }
- a:visited {
- color: var(--a-visited-color); }
- a:hover, a:focus {
- text-decoration: underline; }
-
-/*
- Definitions for the grid system, cards and containers.
-*/
-.container {
- margin: 0 auto;
- padding: 0 calc(1.5 * var(--universal-padding)); }
-
-.row {
- box-sizing: border-box;
- display: flex;
- flex: 0 1 auto;
- flex-flow: row wrap;
- margin: 0 0 0 var(--background-margin); }
-
-.col-sm,
-[class^='col-sm-'],
-[class^='col-sm-offset-'],
-.row[class*='cols-sm-'] > * {
- box-sizing: border-box;
- flex: 0 0 auto;
- padding: 0 calc(var(--universal-padding) / 2); }
-
-.col-sm,
-.row.cols-sm > * {
- max-width: 100%;
- flex-grow: 1;
- flex-basis: 0; }
-
-.col-sm-1,
-.row.cols-sm-1 > * {
- max-width: 8.3333333333%;
- flex-basis: 8.3333333333%; }
-
-.col-sm-offset-0 {
- margin-left: 0; }
-
-.col-sm-2,
-.row.cols-sm-2 > * {
- max-width: 16.6666666667%;
- flex-basis: 16.6666666667%; }
-
-.col-sm-offset-1 {
- margin-left: 8.3333333333%; }
-
-.col-sm-3,
-.row.cols-sm-3 > * {
- max-width: 25%;
- flex-basis: 25%; }
-
-.col-sm-offset-2 {
- margin-left: 16.6666666667%; }
-
-.col-sm-4,
-.row.cols-sm-4 > * {
- max-width: 33.3333333333%;
- flex-basis: 33.3333333333%; }
-
-.col-sm-offset-3 {
- margin-left: 25%; }
-
-.col-sm-5,
-.row.cols-sm-5 > * {
- max-width: 41.6666666667%;
- flex-basis: 41.6666666667%; }
-
-.col-sm-offset-4 {
- margin-left: 33.3333333333%; }
-
-.col-sm-6,
-.row.cols-sm-6 > * {
- max-width: 50%;
- flex-basis: 50%; }
-
-.col-sm-offset-5 {
- margin-left: 41.6666666667%; }
-
-.col-sm-7,
-.row.cols-sm-7 > * {
- max-width: 58.3333333333%;
- flex-basis: 58.3333333333%; }
-
-.col-sm-offset-6 {
- margin-left: 50%; }
-
-.col-sm-8,
-.row.cols-sm-8 > * {
- max-width: 66.6666666667%;
- flex-basis: 66.6666666667%; }
-
-.col-sm-offset-7 {
- margin-left: 58.3333333333%; }
-
-.col-sm-9,
-.row.cols-sm-9 > * {
- max-width: 75%;
- flex-basis: 75%; }
-
-.col-sm-offset-8 {
- margin-left: 66.6666666667%; }
-
-.col-sm-10,
-.row.cols-sm-10 > * {
- max-width: 83.3333333333%;
- flex-basis: 83.3333333333%; }
-
-.col-sm-offset-9 {
- margin-left: 75%; }
-
-.col-sm-11,
-.row.cols-sm-11 > * {
- max-width: 91.6666666667%;
- flex-basis: 91.6666666667%; }
-
-.col-sm-offset-10 {
- margin-left: 83.3333333333%; }
-
-.col-sm-12,
-.row.cols-sm-12 > * {
- max-width: 100%;
- flex-basis: 100%; }
-
-.col-sm-offset-11 {
- margin-left: 91.6666666667%; }
-
-.col-sm-normal {
- order: initial; }
-
-.col-sm-first {
- order: -999; }
-
-.col-sm-last {
- order: 999; }
-
-@media screen and (min-width: 500px) {
- .col-md,
- [class^='col-md-'],
- [class^='col-md-offset-'],
- .row[class*='cols-md-'] > * {
- box-sizing: border-box;
- flex: 0 0 auto;
- padding: 0 calc(var(--universal-padding) / 2); }
-
- .col-md,
- .row.cols-md > * {
- max-width: 100%;
- flex-grow: 1;
- flex-basis: 0; }
-
- .col-md-1,
- .row.cols-md-1 > * {
- max-width: 8.3333333333%;
- flex-basis: 8.3333333333%; }
-
- .col-md-offset-0 {
- margin-left: 0; }
-
- .col-md-2,
- .row.cols-md-2 > * {
- max-width: 16.6666666667%;
- flex-basis: 16.6666666667%; }
-
- .col-md-offset-1 {
- margin-left: 8.3333333333%; }
-
- .col-md-3,
- .row.cols-md-3 > * {
- max-width: 25%;
- flex-basis: 25%; }
-
- .col-md-offset-2 {
- margin-left: 16.6666666667%; }
-
- .col-md-4,
- .row.cols-md-4 > * {
- max-width: 33.3333333333%;
- flex-basis: 33.3333333333%; }
-
- .col-md-offset-3 {
- margin-left: 25%; }
-
- .col-md-5,
- .row.cols-md-5 > * {
- max-width: 41.6666666667%;
- flex-basis: 41.6666666667%; }
-
- .col-md-offset-4 {
- margin-left: 33.3333333333%; }
-
- .col-md-6,
- .row.cols-md-6 > * {
- max-width: 50%;
- flex-basis: 50%; }
-
- .col-md-offset-5 {
- margin-left: 41.6666666667%; }
-
- .col-md-7,
- .row.cols-md-7 > * {
- max-width: 58.3333333333%;
- flex-basis: 58.3333333333%; }
-
- .col-md-offset-6 {
- margin-left: 50%; }
-
- .col-md-8,
- .row.cols-md-8 > * {
- max-width: 66.6666666667%;
- flex-basis: 66.6666666667%; }
-
- .col-md-offset-7 {
- margin-left: 58.3333333333%; }
-
- .col-md-9,
- .row.cols-md-9 > * {
- max-width: 75%;
- flex-basis: 75%; }
-
- .col-md-offset-8 {
- margin-left: 66.6666666667%; }
-
- .col-md-10,
- .row.cols-md-10 > * {
- max-width: 83.3333333333%;
- flex-basis: 83.3333333333%; }
-
- .col-md-offset-9 {
- margin-left: 75%; }
-
- .col-md-11,
- .row.cols-md-11 > * {
- max-width: 91.6666666667%;
- flex-basis: 91.6666666667%; }
-
- .col-md-offset-10 {
- margin-left: 83.3333333333%; }
-
- .col-md-12,
- .row.cols-md-12 > * {
- max-width: 100%;
- flex-basis: 100%; }
-
- .col-md-offset-11 {
- margin-left: 91.6666666667%; }
-
- .col-md-normal {
- order: initial; }
-
- .col-md-first {
- order: -999; }
-
- .col-md-last {
- order: 999; } }
-@media screen and (min-width: 1280px) {
- .col-lg,
- [class^='col-lg-'],
- [class^='col-lg-offset-'],
- .row[class*='cols-lg-'] > * {
- box-sizing: border-box;
- flex: 0 0 auto;
- padding: 0 calc(var(--universal-padding) / 2); }
-
- .col-lg,
- .row.cols-lg > * {
- max-width: 100%;
- flex-grow: 1;
- flex-basis: 0; }
-
- .col-lg-1,
- .row.cols-lg-1 > * {
- max-width: 8.3333333333%;
- flex-basis: 8.3333333333%; }
-
- .col-lg-offset-0 {
- margin-left: 0; }
-
- .col-lg-2,
- .row.cols-lg-2 > * {
- max-width: 16.6666666667%;
- flex-basis: 16.6666666667%; }
-
- .col-lg-offset-1 {
- margin-left: 8.3333333333%; }
-
- .col-lg-3,
- .row.cols-lg-3 > * {
- max-width: 25%;
- flex-basis: 25%; }
-
- .col-lg-offset-2 {
- margin-left: 16.6666666667%; }
-
- .col-lg-4,
- .row.cols-lg-4 > * {
- max-width: 33.3333333333%;
- flex-basis: 33.3333333333%; }
-
- .col-lg-offset-3 {
- margin-left: 25%; }
-
- .col-lg-5,
- .row.cols-lg-5 > * {
- max-width: 41.6666666667%;
- flex-basis: 41.6666666667%; }
-
- .col-lg-offset-4 {
- margin-left: 33.3333333333%; }
-
- .col-lg-6,
- .row.cols-lg-6 > * {
- max-width: 50%;
- flex-basis: 50%; }
-
- .col-lg-offset-5 {
- margin-left: 41.6666666667%; }
-
- .col-lg-7,
- .row.cols-lg-7 > * {
- max-width: 58.3333333333%;
- flex-basis: 58.3333333333%; }
-
- .col-lg-offset-6 {
- margin-left: 50%; }
-
- .col-lg-8,
- .row.cols-lg-8 > * {
- max-width: 66.6666666667%;
- flex-basis: 66.6666666667%; }
-
- .col-lg-offset-7 {
- margin-left: 58.3333333333%; }
-
- .col-lg-9,
- .row.cols-lg-9 > * {
- max-width: 75%;
- flex-basis: 75%; }
-
- .col-lg-offset-8 {
- margin-left: 66.6666666667%; }
-
- .col-lg-10,
- .row.cols-lg-10 > * {
- max-width: 83.3333333333%;
- flex-basis: 83.3333333333%; }
-
- .col-lg-offset-9 {
- margin-left: 75%; }
-
- .col-lg-11,
- .row.cols-lg-11 > * {
- max-width: 91.6666666667%;
- flex-basis: 91.6666666667%; }
-
- .col-lg-offset-10 {
- margin-left: 83.3333333333%; }
-
- .col-lg-12,
- .row.cols-lg-12 > * {
- max-width: 100%;
- flex-basis: 100%; }
-
- .col-lg-offset-11 {
- margin-left: 91.6666666667%; }
-
- .col-lg-normal {
- order: initial; }
-
- .col-lg-first {
- order: -999; }
-
- .col-lg-last {
- order: 999; } }
-/* Card component CSS variable definitions */
-:root {
- --card-back-color: #3cb4e6;
- --card-fore-color: #03234b;
- --card-border-color: #03234b; }
-
-.card {
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- align-self: center;
- position: relative;
- width: 100%;
- background: var(--card-back-color);
- color: var(--card-fore-color);
- border: 0.0714285714rem solid var(--card-border-color);
- border-radius: var(--universal-border-radius);
- margin: var(--universal-margin);
- overflow: hidden; }
- @media screen and (min-width: 320px) {
- .card {
- max-width: 320px; } }
- .card > .sectione {
- background: var(--card-back-color);
- color: var(--card-fore-color);
- box-sizing: border-box;
- margin: 0;
- border: 0;
- border-radius: 0;
- border-bottom: 0.0714285714rem solid var(--card-border-color);
- padding: var(--universal-padding);
- width: 100%; }
- .card > .sectione.media {
- height: 200px;
- padding: 0;
- -o-object-fit: cover;
- object-fit: cover; }
- .card > .sectione:last-child {
- border-bottom: 0; }
-
-/*
- Custom elements for card elements.
-*/
-@media screen and (min-width: 240px) {
- .card.small {
- max-width: 240px; } }
-@media screen and (min-width: 480px) {
- .card.large {
- max-width: 480px; } }
-.card.fluid {
- max-width: 100%;
- width: auto; }
-
-.card.warning {
- --card-back-color: #e5b8b7;
- --card-fore-color: #3b234b;
- --card-border-color: #8c0078; }
-
-.card.error {
- --card-back-color: #464650;
- --card-fore-color: #ffffff;
- --card-border-color: #8c0078; }
-
-.card > .sectione.dark {
- --card-back-color: #3b234b;
- --card-fore-color: #ffffff; }
-
-.card > .sectione.double-padded {
- padding: calc(1.5 * var(--universal-padding)); }
-
-/*
- Definitions for forms and input elements.
-*/
-/* Input_control module CSS variable definitions */
-:root {
- --form-back-color: #ffe97f;
- --form-fore-color: #03234b;
- --form-border-color: #3cb4e6;
- --input-back-color: #ffffff;
- --input-fore-color: #03234b;
- --input-border-color: #3cb4e6;
- --input-focus-color: #0288d1;
- --input-invalid-color: #d32f2f;
- --button-back-color: #e2e2e2;
- --button-hover-back-color: #dcdcdc;
- --button-fore-color: #212121;
- --button-border-color: transparent;
- --button-hover-border-color: transparent;
- --button-group-border-color: rgba(124, 124, 124, 0.54); }
-
-form {
- background: var(--form-back-color);
- color: var(--form-fore-color);
- border: 0.0714285714rem solid var(--form-border-color);
- border-radius: var(--universal-border-radius);
- margin: var(--universal-margin);
- padding: calc(2 * var(--universal-padding)) var(--universal-padding); }
-
-fieldset {
- border: 0.0714285714rem solid var(--form-border-color);
- border-radius: var(--universal-border-radius);
- margin: calc(var(--universal-margin) / 4);
- padding: var(--universal-padding); }
-
-legend {
- box-sizing: border-box;
- display: table;
- max-width: 100%;
- white-space: normal;
- font-weight: 500;
- padding: calc(var(--universal-padding) / 2); }
-
-label {
- padding: calc(var(--universal-padding) / 2) var(--universal-padding); }
-
-.input-group {
- display: inline-block; }
- .input-group.fluid {
- display: flex;
- align-items: center;
- justify-content: center; }
- .input-group.fluid > input {
- max-width: 100%;
- flex-grow: 1;
- flex-basis: 0px; }
- @media screen and (max-width: 499px) {
- .input-group.fluid {
- align-items: stretch;
- flex-direction: column; } }
- .input-group.vertical {
- display: flex;
- align-items: stretch;
- flex-direction: column; }
- .input-group.vertical > input {
- max-width: 100%;
- flex-grow: 1;
- flex-basis: 0px; }
-
-[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button {
- height: auto; }
-
-[type="search"] {
- -webkit-appearance: textfield;
- outline-offset: -2px; }
-
-[type="search"]::-webkit-search-cancel-button,
-[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none; }
-
-input:not([type]), [type="text"], [type="email"], [type="number"], [type="search"],
-[type="password"], [type="url"], [type="tel"], [type="checkbox"], [type="radio"], textarea, select {
- box-sizing: border-box;
- background: var(--input-back-color);
- color: var(--input-fore-color);
- border: 0.0714285714rem solid var(--input-border-color);
- border-radius: var(--universal-border-radius);
- margin: calc(var(--universal-margin) / 2);
- padding: var(--universal-padding) calc(1.5 * var(--universal-padding)); }
-
-input:not([type="button"]):not([type="submit"]):not([type="reset"]):hover, input:not([type="button"]):not([type="submit"]):not([type="reset"]):focus, textarea:hover, textarea:focus, select:hover, select:focus {
- border-color: var(--input-focus-color);
- box-shadow: none; }
-input:not([type="button"]):not([type="submit"]):not([type="reset"]):invalid, input:not([type="button"]):not([type="submit"]):not([type="reset"]):focus:invalid, textarea:invalid, textarea:focus:invalid, select:invalid, select:focus:invalid {
- border-color: var(--input-invalid-color);
- box-shadow: none; }
-input:not([type="button"]):not([type="submit"]):not([type="reset"])[readonly], textarea[readonly], select[readonly] {
- background: var(--secondary-back-color); }
-
-select {
- max-width: 100%; }
-
-option {
- overflow: hidden;
- text-overflow: ellipsis; }
-
-[type="checkbox"], [type="radio"] {
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- position: relative;
- height: calc(1rem + var(--universal-padding) / 2);
- width: calc(1rem + var(--universal-padding) / 2);
- vertical-align: text-bottom;
- padding: 0;
- flex-basis: calc(1rem + var(--universal-padding) / 2) !important;
- flex-grow: 0 !important; }
- [type="checkbox"]:checked:before, [type="radio"]:checked:before {
- position: absolute; }
-
-[type="checkbox"]:checked:before {
- content: '\2713';
- font-family: sans-serif;
- font-size: calc(1rem + var(--universal-padding) / 2);
- top: calc(0rem - var(--universal-padding));
- left: calc(var(--universal-padding) / 4); }
-
-[type="radio"] {
- border-radius: 100%; }
- [type="radio"]:checked:before {
- border-radius: 100%;
- content: '';
- top: calc(0.0714285714rem + var(--universal-padding) / 2);
- left: calc(0.0714285714rem + var(--universal-padding) / 2);
- background: var(--input-fore-color);
- width: 0.5rem;
- height: 0.5rem; }
-
-:placeholder-shown {
- color: var(--input-fore-color); }
-
-::-ms-placeholder {
- color: var(--input-fore-color);
- opacity: 0.54; }
-
-button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner {
- border-style: none;
- padding: 0; }
-
-button, html [type="button"], [type="reset"], [type="submit"] {
- -webkit-appearance: button; }
-
-button {
- overflow: visible;
- text-transform: none; }
-
-button, [type="button"], [type="submit"], [type="reset"],
-a.button, label.button, .button,
-a[role="button"], label[role="button"], [role="button"] {
- display: inline-block;
- background: var(--button-back-color);
- color: var(--button-fore-color);
- border: 0.0714285714rem solid var(--button-border-color);
- border-radius: var(--universal-border-radius);
- padding: var(--universal-padding) calc(1.5 * var(--universal-padding));
- margin: var(--universal-margin);
- text-decoration: none;
- cursor: pointer;
- transition: background 0.3s; }
- button:hover, button:focus, [type="button"]:hover, [type="button"]:focus, [type="submit"]:hover, [type="submit"]:focus, [type="reset"]:hover, [type="reset"]:focus,
- a.button:hover,
- a.button:focus, label.button:hover, label.button:focus, .button:hover, .button:focus,
- a[role="button"]:hover,
- a[role="button"]:focus, label[role="button"]:hover, label[role="button"]:focus, [role="button"]:hover, [role="button"]:focus {
- background: var(--button-hover-back-color);
- border-color: var(--button-hover-border-color); }
-
-input:disabled, input[disabled], textarea:disabled, textarea[disabled], select:disabled, select[disabled], button:disabled, button[disabled], .button:disabled, .button[disabled], [role="button"]:disabled, [role="button"][disabled] {
- cursor: not-allowed;
- opacity: 0.75; }
-
-.button-group {
- display: flex;
- border: 0.0714285714rem solid var(--button-group-border-color);
- border-radius: var(--universal-border-radius);
- margin: var(--universal-margin); }
- .button-group > button, .button-group [type="button"], .button-group > [type="submit"], .button-group > [type="reset"], .button-group > .button, .button-group > [role="button"] {
- margin: 0;
- max-width: 100%;
- flex: 1 1 auto;
- text-align: center;
- border: 0;
- border-radius: 0;
- box-shadow: none; }
- .button-group > :not(:first-child) {
- border-left: 0.0714285714rem solid var(--button-group-border-color); }
- @media screen and (max-width: 499px) {
- .button-group {
- flex-direction: column; }
- .button-group > :not(:first-child) {
- border: 0;
- border-top: 0.0714285714rem solid var(--button-group-border-color); } }
-
-/*
- Custom elements for forms and input elements.
-*/
-button.primary, [type="button"].primary, [type="submit"].primary, [type="reset"].primary, .button.primary, [role="button"].primary {
- --button-back-color: #1976d2;
- --button-fore-color: #f8f8f8; }
- button.primary:hover, button.primary:focus, [type="button"].primary:hover, [type="button"].primary:focus, [type="submit"].primary:hover, [type="submit"].primary:focus, [type="reset"].primary:hover, [type="reset"].primary:focus, .button.primary:hover, .button.primary:focus, [role="button"].primary:hover, [role="button"].primary:focus {
- --button-hover-back-color: #1565c0; }
-
-button.secondary, [type="button"].secondary, [type="submit"].secondary, [type="reset"].secondary, .button.secondary, [role="button"].secondary {
- --button-back-color: #d32f2f;
- --button-fore-color: #f8f8f8; }
- button.secondary:hover, button.secondary:focus, [type="button"].secondary:hover, [type="button"].secondary:focus, [type="submit"].secondary:hover, [type="submit"].secondary:focus, [type="reset"].secondary:hover, [type="reset"].secondary:focus, .button.secondary:hover, .button.secondary:focus, [role="button"].secondary:hover, [role="button"].secondary:focus {
- --button-hover-back-color: #c62828; }
-
-button.tertiary, [type="button"].tertiary, [type="submit"].tertiary, [type="reset"].tertiary, .button.tertiary, [role="button"].tertiary {
- --button-back-color: #308732;
- --button-fore-color: #f8f8f8; }
- button.tertiary:hover, button.tertiary:focus, [type="button"].tertiary:hover, [type="button"].tertiary:focus, [type="submit"].tertiary:hover, [type="submit"].tertiary:focus, [type="reset"].tertiary:hover, [type="reset"].tertiary:focus, .button.tertiary:hover, .button.tertiary:focus, [role="button"].tertiary:hover, [role="button"].tertiary:focus {
- --button-hover-back-color: #277529; }
-
-button.inverse, [type="button"].inverse, [type="submit"].inverse, [type="reset"].inverse, .button.inverse, [role="button"].inverse {
- --button-back-color: #212121;
- --button-fore-color: #f8f8f8; }
- button.inverse:hover, button.inverse:focus, [type="button"].inverse:hover, [type="button"].inverse:focus, [type="submit"].inverse:hover, [type="submit"].inverse:focus, [type="reset"].inverse:hover, [type="reset"].inverse:focus, .button.inverse:hover, .button.inverse:focus, [role="button"].inverse:hover, [role="button"].inverse:focus {
- --button-hover-back-color: #111; }
-
-button.small, [type="button"].small, [type="submit"].small, [type="reset"].small, .button.small, [role="button"].small {
- padding: calc(0.5 * var(--universal-padding)) calc(0.75 * var(--universal-padding));
- margin: var(--universal-margin); }
-
-button.large, [type="button"].large, [type="submit"].large, [type="reset"].large, .button.large, [role="button"].large {
- padding: calc(1.5 * var(--universal-padding)) calc(2 * var(--universal-padding));
- margin: var(--universal-margin); }
-
-/*
- Definitions for navigation elements.
-*/
-/* Navigation module CSS variable definitions */
-:root {
- --header-back-color: #03234b;
- --header-hover-back-color: #ffd200;
- --header-fore-color: #ffffff;
- --header-border-color: #3cb4e6;
- --nav-back-color: #ffffff;
- --nav-hover-back-color: #ffe97f;
- --nav-fore-color: #e6007e;
- --nav-border-color: #3cb4e6;
- --nav-link-color: #3cb4e6;
- --footer-fore-color: #ffffff;
- --footer-back-color: #03234b;
- --footer-border-color: #3cb4e6;
- --footer-link-color: #3cb4e6;
- --drawer-back-color: #ffffff;
- --drawer-hover-back-color: #ffe97f;
- --drawer-border-color: #3cb4e6;
- --drawer-close-color: #e6007e; }
-
-header {
- height: 2.75rem;
- background: var(--header-back-color);
- color: var(--header-fore-color);
- border-bottom: 0.0714285714rem solid var(--header-border-color);
- padding: calc(var(--universal-padding) / 4) 0;
- white-space: nowrap;
- overflow-x: auto;
- overflow-y: hidden; }
- header.row {
- box-sizing: content-box; }
- header .logo {
- color: var(--header-fore-color);
- font-size: 1.75rem;
- padding: var(--universal-padding) calc(2 * var(--universal-padding));
- text-decoration: none; }
- header button, header [type="button"], header .button, header [role="button"] {
- box-sizing: border-box;
- position: relative;
- top: calc(0rem - var(--universal-padding) / 4);
- height: calc(3.1875rem + var(--universal-padding) / 2);
- background: var(--header-back-color);
- line-height: calc(3.1875rem - var(--universal-padding) * 1.5);
- text-align: center;
- color: var(--header-fore-color);
- border: 0;
- border-radius: 0;
- margin: 0;
- text-transform: uppercase; }
- header button:hover, header button:focus, header [type="button"]:hover, header [type="button"]:focus, header .button:hover, header .button:focus, header [role="button"]:hover, header [role="button"]:focus {
- background: var(--header-hover-back-color); }
-
-nav {
- background: var(--nav-back-color);
- color: var(--nav-fore-color);
- border: 0.0714285714rem solid var(--nav-border-color);
- border-radius: var(--universal-border-radius);
- margin: var(--universal-margin); }
- nav * {
- padding: var(--universal-padding) calc(1.5 * var(--universal-padding)); }
- nav a, nav a:visited {
- display: block;
- color: var(--nav-link-color);
- border-radius: var(--universal-border-radius);
- transition: background 0.3s; }
- nav a:hover, nav a:focus, nav a:visited:hover, nav a:visited:focus {
- text-decoration: none;
- background: var(--nav-hover-back-color); }
- nav .sublink-1 {
- position: relative;
- margin-left: calc(2 * var(--universal-padding)); }
- nav .sublink-1:before {
- position: absolute;
- left: calc(var(--universal-padding) - 1 * var(--universal-padding));
- top: -0.0714285714rem;
- content: '';
- height: 100%;
- border: 0.0714285714rem solid var(--nav-border-color);
- border-left: 0; }
- nav .sublink-2 {
- position: relative;
- margin-left: calc(4 * var(--universal-padding)); }
- nav .sublink-2:before {
- position: absolute;
- left: calc(var(--universal-padding) - 3 * var(--universal-padding));
- top: -0.0714285714rem;
- content: '';
- height: 100%;
- border: 0.0714285714rem solid var(--nav-border-color);
- border-left: 0; }
-
-footer {
- background: var(--footer-back-color);
- color: var(--footer-fore-color);
- border-top: 0.0714285714rem solid var(--footer-border-color);
- padding: calc(2 * var(--universal-padding)) var(--universal-padding);
- font-size: 0.875rem; }
- footer a, footer a:visited {
- color: var(--footer-link-color); }
-
-header.sticky {
- position: -webkit-sticky;
- position: sticky;
- z-index: 1101;
- top: 0; }
-
-footer.sticky {
- position: -webkit-sticky;
- position: sticky;
- z-index: 1101;
- bottom: 0; }
-
-.drawer-toggle:before {
- display: inline-block;
- position: relative;
- vertical-align: bottom;
- content: '\00a0\2261\00a0';
- font-family: sans-serif;
- font-size: 1.5em; }
-@media screen and (min-width: 500px) {
- .drawer-toggle:not(.persistent) {
- display: none; } }
-
-[type="checkbox"].drawer {
- height: 1px;
- width: 1px;
- margin: -1px;
- overflow: hidden;
- position: absolute;
- clip: rect(0 0 0 0);
- -webkit-clip-path: inset(100%);
- clip-path: inset(100%); }
- [type="checkbox"].drawer + * {
- display: block;
- box-sizing: border-box;
- position: fixed;
- top: 0;
- width: 320px;
- height: 100vh;
- overflow-y: auto;
- background: var(--drawer-back-color);
- border: 0.0714285714rem solid var(--drawer-border-color);
- border-radius: 0;
- margin: 0;
- z-index: 1110;
- right: -320px;
- transition: right 0.3s; }
- [type="checkbox"].drawer + * .drawer-close {
- position: absolute;
- top: var(--universal-margin);
- right: var(--universal-margin);
- z-index: 1111;
- width: 2rem;
- height: 2rem;
- border-radius: var(--universal-border-radius);
- padding: var(--universal-padding);
- margin: 0;
- cursor: pointer;
- transition: background 0.3s; }
- [type="checkbox"].drawer + * .drawer-close:before {
- display: block;
- content: '\00D7';
- color: var(--drawer-close-color);
- position: relative;
- font-family: sans-serif;
- font-size: 2rem;
- line-height: 1;
- text-align: center; }
- [type="checkbox"].drawer + * .drawer-close:hover, [type="checkbox"].drawer + * .drawer-close:focus {
- background: var(--drawer-hover-back-color); }
- @media screen and (max-width: 320px) {
- [type="checkbox"].drawer + * {
- width: 100%; } }
- [type="checkbox"].drawer:checked + * {
- right: 0; }
- @media screen and (min-width: 500px) {
- [type="checkbox"].drawer:not(.persistent) + * {
- position: static;
- height: 100%;
- z-index: 1100; }
- [type="checkbox"].drawer:not(.persistent) + * .drawer-close {
- display: none; } }
-
-/*
- Definitions for the responsive table component.
-*/
-/* Table module CSS variable definitions. */
-:root {
- --table-border-color: #03234b;
- --table-border-separator-color: #03234b;
- --table-head-back-color: #03234b;
- --table-head-fore-color: #ffffff;
- --table-body-back-color: #ffffff;
- --table-body-fore-color: #03234b;
- --table-body-alt-back-color: #f4f4f4; }
-
-table {
- border-collapse: separate;
- border-spacing: 0;
- margin: 0;
- display: flex;
- flex: 0 1 auto;
- flex-flow: row wrap;
- padding: var(--universal-padding);
- padding-top: 0; }
- table caption {
- font-size: 1rem;
- margin: calc(2 * var(--universal-margin)) 0;
- max-width: 100%;
- flex: 0 0 100%; }
- table thead, table tbody {
- display: flex;
- flex-flow: row wrap;
- border: 0.0714285714rem solid var(--table-border-color); }
- table thead {
- z-index: 999;
- border-radius: var(--universal-border-radius) var(--universal-border-radius) 0 0;
- border-bottom: 0.0714285714rem solid var(--table-border-separator-color); }
- table tbody {
- border-top: 0;
- margin-top: calc(0 - var(--universal-margin));
- border-radius: 0 0 var(--universal-border-radius) var(--universal-border-radius); }
- table tr {
- display: flex;
- padding: 0; }
- table th, table td {
- padding: calc(0.5 * var(--universal-padding));
- font-size: 0.9rem; }
- table th {
- text-align: left;
- background: var(--table-head-back-color);
- color: var(--table-head-fore-color); }
- table td {
- background: var(--table-body-back-color);
- color: var(--table-body-fore-color);
- border-top: 0.0714285714rem solid var(--table-border-color); }
-
-table:not(.horizontal) {
- overflow: auto;
- max-height: 100%; }
- table:not(.horizontal) thead, table:not(.horizontal) tbody {
- max-width: 100%;
- flex: 0 0 100%; }
- table:not(.horizontal) tr {
- flex-flow: row wrap;
- flex: 0 0 100%; }
- table:not(.horizontal) th, table:not(.horizontal) td {
- flex: 1 0 0%;
- overflow: hidden;
- text-overflow: ellipsis; }
- table:not(.horizontal) thead {
- position: sticky;
- top: 0; }
- table:not(.horizontal) tbody tr:first-child td {
- border-top: 0; }
-
-table.horizontal {
- border: 0; }
- table.horizontal thead, table.horizontal tbody {
- border: 0;
- flex: .2 0 0;
- flex-flow: row nowrap; }
- table.horizontal tbody {
- overflow: auto;
- justify-content: space-between;
- flex: .8 0 0;
- margin-left: 0;
- padding-bottom: calc(var(--universal-padding) / 4); }
- table.horizontal tr {
- flex-direction: column;
- flex: 1 0 auto; }
- table.horizontal th, table.horizontal td {
- width: auto;
- border: 0;
- border-bottom: 0.0714285714rem solid var(--table-border-color); }
- table.horizontal th:not(:first-child), table.horizontal td:not(:first-child) {
- border-top: 0; }
- table.horizontal th {
- text-align: right;
- border-left: 0.0714285714rem solid var(--table-border-color);
- border-right: 0.0714285714rem solid var(--table-border-separator-color); }
- table.horizontal thead tr:first-child {
- padding-left: 0; }
- table.horizontal th:first-child, table.horizontal td:first-child {
- border-top: 0.0714285714rem solid var(--table-border-color); }
- table.horizontal tbody tr:last-child td {
- border-right: 0.0714285714rem solid var(--table-border-color); }
- table.horizontal tbody tr:last-child td:first-child {
- border-top-right-radius: 0.25rem; }
- table.horizontal tbody tr:last-child td:last-child {
- border-bottom-right-radius: 0.25rem; }
- table.horizontal thead tr:first-child th:first-child {
- border-top-left-radius: 0.25rem; }
- table.horizontal thead tr:first-child th:last-child {
- border-bottom-left-radius: 0.25rem; }
-
-@media screen and (max-width: 499px) {
- table, table.horizontal {
- border-collapse: collapse;
- border: 0;
- width: 100%;
- display: table; }
- table thead, table th, table.horizontal thead, table.horizontal th {
- border: 0;
- height: 1px;
- width: 1px;
- margin: -1px;
- overflow: hidden;
- padding: 0;
- position: absolute;
- clip: rect(0 0 0 0);
- -webkit-clip-path: inset(100%);
- clip-path: inset(100%); }
- table tbody, table.horizontal tbody {
- border: 0;
- display: table-row-group; }
- table tr, table.horizontal tr {
- display: block;
- border: 0.0714285714rem solid var(--table-border-color);
- border-radius: var(--universal-border-radius);
- background: #ffffff;
- padding: var(--universal-padding);
- margin: var(--universal-margin);
- margin-bottom: calc(1 * var(--universal-margin)); }
- table th, table td, table.horizontal th, table.horizontal td {
- width: auto; }
- table td, table.horizontal td {
- display: block;
- border: 0;
- text-align: right; }
- table td:before, table.horizontal td:before {
- content: attr(data-label);
- float: left;
- font-weight: 600; }
- table th:first-child, table td:first-child, table.horizontal th:first-child, table.horizontal td:first-child {
- border-top: 0; }
- table tbody tr:last-child td, table.horizontal tbody tr:last-child td {
- border-right: 0; } }
-table tr:nth-of-type(2n) > td {
- background: var(--table-body-alt-back-color); }
-
-@media screen and (max-width: 500px) {
- table tr:nth-of-type(2n) {
- background: var(--table-body-alt-back-color); } }
-:root {
- --table-body-hover-back-color: #90caf9; }
-
-table.hoverable tr:hover, table.hoverable tr:hover > td, table.hoverable tr:focus, table.hoverable tr:focus > td {
- background: var(--table-body-hover-back-color); }
-
-@media screen and (max-width: 500px) {
- table.hoverable tr:hover, table.hoverable tr:hover > td, table.hoverable tr:focus, table.hoverable tr:focus > td {
- background: var(--table-body-hover-back-color); } }
-/*
- Definitions for contextual background elements, toasts and tooltips.
-*/
-/* Contextual module CSS variable definitions */
-:root {
- --mark-back-color: #3cb4e6;
- --mark-fore-color: #ffffff; }
-
-mark {
- background: var(--mark-back-color);
- color: var(--mark-fore-color);
- font-size: 0.95em;
- line-height: 1em;
- border-radius: var(--universal-border-radius);
- padding: calc(var(--universal-padding) / 4) var(--universal-padding); }
- mark.inline-block {
- display: inline-block;
- font-size: 1em;
- line-height: 1.4;
- padding: calc(var(--universal-padding) / 2) var(--universal-padding); }
-
-:root {
- --toast-back-color: #424242;
- --toast-fore-color: #fafafa; }
-
-.toast {
- position: fixed;
- bottom: calc(var(--universal-margin) * 3);
- left: 50%;
- transform: translate(-50%, -50%);
- z-index: 1111;
- color: var(--toast-fore-color);
- background: var(--toast-back-color);
- border-radius: calc(var(--universal-border-radius) * 16);
- padding: var(--universal-padding) calc(var(--universal-padding) * 3); }
-
-:root {
- --tooltip-back-color: #212121;
- --tooltip-fore-color: #fafafa; }
-
-.tooltip {
- position: relative;
- display: inline-block; }
- .tooltip:before, .tooltip:after {
- position: absolute;
- opacity: 0;
- clip: rect(0 0 0 0);
- -webkit-clip-path: inset(100%);
- clip-path: inset(100%);
- transition: all 0.3s;
- z-index: 1010;
- left: 50%; }
- .tooltip:not(.bottom):before, .tooltip:not(.bottom):after {
- bottom: 75%; }
- .tooltip.bottom:before, .tooltip.bottom:after {
- top: 75%; }
- .tooltip:hover:before, .tooltip:hover:after, .tooltip:focus:before, .tooltip:focus:after {
- opacity: 1;
- clip: auto;
- -webkit-clip-path: inset(0%);
- clip-path: inset(0%); }
- .tooltip:before {
- content: '';
- background: transparent;
- border: var(--universal-margin) solid transparent;
- left: calc(50% - var(--universal-margin)); }
- .tooltip:not(.bottom):before {
- border-top-color: #212121; }
- .tooltip.bottom:before {
- border-bottom-color: #212121; }
- .tooltip:after {
- content: attr(aria-label);
- color: var(--tooltip-fore-color);
- background: var(--tooltip-back-color);
- border-radius: var(--universal-border-radius);
- padding: var(--universal-padding);
- white-space: nowrap;
- transform: translateX(-50%); }
- .tooltip:not(.bottom):after {
- margin-bottom: calc(2 * var(--universal-margin)); }
- .tooltip.bottom:after {
- margin-top: calc(2 * var(--universal-margin)); }
-
-:root {
- --modal-overlay-color: rgba(0, 0, 0, 0.45);
- --modal-close-color: #e6007e;
- --modal-close-hover-color: #ffe97f; }
-
-[type="checkbox"].modal {
- height: 1px;
- width: 1px;
- margin: -1px;
- overflow: hidden;
- position: absolute;
- clip: rect(0 0 0 0);
- -webkit-clip-path: inset(100%);
- clip-path: inset(100%); }
- [type="checkbox"].modal + div {
- position: fixed;
- top: 0;
- left: 0;
- display: none;
- width: 100vw;
- height: 100vh;
- background: var(--modal-overlay-color); }
- [type="checkbox"].modal + div .card {
- margin: 0 auto;
- max-height: 50vh;
- overflow: auto; }
- [type="checkbox"].modal + div .card .modal-close {
- position: absolute;
- top: 0;
- right: 0;
- width: 1.75rem;
- height: 1.75rem;
- border-radius: var(--universal-border-radius);
- padding: var(--universal-padding);
- margin: 0;
- cursor: pointer;
- transition: background 0.3s; }
- [type="checkbox"].modal + div .card .modal-close:before {
- display: block;
- content: '\00D7';
- color: var(--modal-close-color);
- position: relative;
- font-family: sans-serif;
- font-size: 1.75rem;
- line-height: 1;
- text-align: center; }
- [type="checkbox"].modal + div .card .modal-close:hover, [type="checkbox"].modal + div .card .modal-close:focus {
- background: var(--modal-close-hover-color); }
- [type="checkbox"].modal:checked + div {
- display: flex;
- flex: 0 1 auto;
- z-index: 1200; }
- [type="checkbox"].modal:checked + div .card .modal-close {
- z-index: 1211; }
-
-:root {
- --collapse-label-back-color: #03234b;
- --collapse-label-fore-color: #ffffff;
- --collapse-label-hover-back-color: #3cb4e6;
- --collapse-selected-label-back-color: #3cb4e6;
- --collapse-border-color: var(--collapse-label-back-color);
- --collapse-selected-border-color: #ceecf8;
- --collapse-content-back-color: #ffffff;
- --collapse-selected-label-border-color: #3cb4e6; }
-
-.collapse {
- width: calc(100% - 2 * var(--universal-margin));
- opacity: 1;
- display: flex;
- flex-direction: column;
- margin: var(--universal-margin);
- border-radius: var(--universal-border-radius); }
- .collapse > [type="radio"], .collapse > [type="checkbox"] {
- height: 1px;
- width: 1px;
- margin: -1px;
- overflow: hidden;
- position: absolute;
- clip: rect(0 0 0 0);
- -webkit-clip-path: inset(100%);
- clip-path: inset(100%); }
- .collapse > label {
- flex-grow: 1;
- display: inline-block;
- height: 1.25rem;
- cursor: pointer;
- transition: background 0.2s;
- color: var(--collapse-label-fore-color);
- background: var(--collapse-label-back-color);
- border: 0.0714285714rem solid var(--collapse-selected-border-color);
- padding: calc(1.25 * var(--universal-padding)); }
- .collapse > label:hover, .collapse > label:focus {
- background: var(--collapse-label-hover-back-color); }
- .collapse > label + div {
- flex-basis: auto;
- height: 1px;
- width: 1px;
- margin: -1px;
- overflow: hidden;
- position: absolute;
- clip: rect(0 0 0 0);
- -webkit-clip-path: inset(100%);
- clip-path: inset(100%);
- transition: max-height 0.3s;
- max-height: 1px; }
- .collapse > :checked + label {
- background: var(--collapse-selected-label-back-color);
- border-color: var(--collapse-selected-label-border-color); }
- .collapse > :checked + label + div {
- box-sizing: border-box;
- position: relative;
- width: 100%;
- height: auto;
- overflow: auto;
- margin: 0;
- background: var(--collapse-content-back-color);
- border: 0.0714285714rem solid var(--collapse-selected-border-color);
- border-top: 0;
- padding: var(--universal-padding);
- clip: auto;
- -webkit-clip-path: inset(0%);
- clip-path: inset(0%);
- max-height: 100%; }
- .collapse > label:not(:first-of-type) {
- border-top: 0; }
- .collapse > label:first-of-type {
- border-radius: var(--universal-border-radius) var(--universal-border-radius) 0 0; }
- .collapse > label:last-of-type:not(:first-of-type) {
- border-radius: 0 0 var(--universal-border-radius) var(--universal-border-radius); }
- .collapse > label:last-of-type:first-of-type {
- border-radius: var(--universal-border-radius); }
- .collapse > :checked:last-of-type:not(:first-of-type) + label {
- border-radius: 0; }
- .collapse > :checked:last-of-type + label + div {
- border-radius: 0 0 var(--universal-border-radius) var(--universal-border-radius); }
-
-/*
- Custom elements for contextual background elements, toasts and tooltips.
-*/
-mark.tertiary {
- --mark-back-color: #3cb4e6; }
-
-mark.tag {
- padding: calc(var(--universal-padding)/2) var(--universal-padding);
- border-radius: 1em; }
-
-/*
- Definitions for progress elements and spinners.
-*/
-/* Progress module CSS variable definitions */
-:root {
- --progress-back-color: #3cb4e6;
- --progress-fore-color: #555; }
-
-progress {
- display: block;
- vertical-align: baseline;
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- height: 0.75rem;
- width: calc(100% - 2 * var(--universal-margin));
- margin: var(--universal-margin);
- border: 0;
- border-radius: calc(2 * var(--universal-border-radius));
- background: var(--progress-back-color);
- color: var(--progress-fore-color); }
- progress::-webkit-progress-value {
- background: var(--progress-fore-color);
- border-top-left-radius: calc(2 * var(--universal-border-radius));
- border-bottom-left-radius: calc(2 * var(--universal-border-radius)); }
- progress::-webkit-progress-bar {
- background: var(--progress-back-color); }
- progress::-moz-progress-bar {
- background: var(--progress-fore-color);
- border-top-left-radius: calc(2 * var(--universal-border-radius));
- border-bottom-left-radius: calc(2 * var(--universal-border-radius)); }
- progress[value="1000"]::-webkit-progress-value {
- border-radius: calc(2 * var(--universal-border-radius)); }
- progress[value="1000"]::-moz-progress-bar {
- border-radius: calc(2 * var(--universal-border-radius)); }
- progress.inline {
- display: inline-block;
- vertical-align: middle;
- width: 60%; }
-
-:root {
- --spinner-back-color: #ddd;
- --spinner-fore-color: #555; }
-
-@keyframes spinner-donut-anim {
- 0% {
- transform: rotate(0deg); }
- 100% {
- transform: rotate(360deg); } }
-.spinner {
- display: inline-block;
- margin: var(--universal-margin);
- border: 0.25rem solid var(--spinner-back-color);
- border-left: 0.25rem solid var(--spinner-fore-color);
- border-radius: 50%;
- width: 1.25rem;
- height: 1.25rem;
- animation: spinner-donut-anim 1.2s linear infinite; }
-
-/*
- Custom elements for progress bars and spinners.
-*/
-progress.primary {
- --progress-fore-color: #1976d2; }
-
-progress.secondary {
- --progress-fore-color: #d32f2f; }
-
-progress.tertiary {
- --progress-fore-color: #308732; }
-
-.spinner.primary {
- --spinner-fore-color: #1976d2; }
-
-.spinner.secondary {
- --spinner-fore-color: #d32f2f; }
-
-.spinner.tertiary {
- --spinner-fore-color: #308732; }
-
-/*
- Definitions for icons - powered by Feather (https://feathericons.com/).
-*/
-span[class^='icon-'] {
- display: inline-block;
- height: 1em;
- width: 1em;
- vertical-align: -0.125em;
- background-size: contain;
- margin: 0 calc(var(--universal-margin) / 4); }
- span[class^='icon-'].secondary {
- -webkit-filter: invert(25%);
- filter: invert(25%); }
- span[class^='icon-'].inverse {
- -webkit-filter: invert(100%);
- filter: invert(100%); }
-
-span.icon-alert {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12' y2='16'%3E%3C/line%3E%3C/svg%3E"); }
-span.icon-bookmark {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z'%3E%3C/path%3E%3C/svg%3E"); }
-span.icon-calendar {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E"); }
-span.icon-credit {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='4' width='22' height='16' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='1' y1='10' x2='23' y2='10'%3E%3C/line%3E%3C/svg%3E"); }
-span.icon-edit {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 14.66V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h5.34'%3E%3C/path%3E%3Cpolygon points='18 2 22 6 12 16 8 16 8 12 18 2'%3E%3C/polygon%3E%3C/svg%3E"); }
-span.icon-link {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'%3E%3C/path%3E%3Cpolyline points='15 3 21 3 21 9'%3E%3C/polyline%3E%3Cline x1='10' y1='14' x2='21' y2='3'%3E%3C/line%3E%3C/svg%3E"); }
-span.icon-help {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3'%3E%3C/path%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='17' x2='12' y2='17'%3E%3C/line%3E%3C/svg%3E"); }
-span.icon-home {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'%3E%3C/path%3E%3Cpolyline points='9 22 9 12 15 12 15 22'%3E%3C/polyline%3E%3C/svg%3E"); }
-span.icon-info {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='16' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='8' x2='12' y2='8'%3E%3C/line%3E%3C/svg%3E"); }
-span.icon-lock {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'%3E%3C/rect%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'%3E%3C/path%3E%3C/svg%3E"); }
-span.icon-mail {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'%3E%3C/path%3E%3Cpolyline points='22,6 12,13 2,6'%3E%3C/polyline%3E%3C/svg%3E"); }
-span.icon-location {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'%3E%3C/path%3E%3Ccircle cx='12' cy='10' r='3'%3E%3C/circle%3E%3C/svg%3E"); }
-span.icon-phone {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'%3E%3C/path%3E%3C/svg%3E"); }
-span.icon-rss {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 11a9 9 0 0 1 9 9'%3E%3C/path%3E%3Cpath d='M4 4a16 16 0 0 1 16 16'%3E%3C/path%3E%3Ccircle cx='5' cy='19' r='1'%3E%3C/circle%3E%3C/svg%3E"); }
-span.icon-search {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E"); }
-span.icon-settings {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'%3E%3C/circle%3E%3Cpath d='M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z'%3E%3C/path%3E%3C/svg%3E"); }
-span.icon-share {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='18' cy='5' r='3'%3E%3C/circle%3E%3Ccircle cx='6' cy='12' r='3'%3E%3C/circle%3E%3Ccircle cx='18' cy='19' r='3'%3E%3C/circle%3E%3Cline x1='8.59' y1='13.51' x2='15.42' y2='17.49'%3E%3C/line%3E%3Cline x1='15.41' y1='6.51' x2='8.59' y2='10.49'%3E%3C/line%3E%3C/svg%3E"); }
-span.icon-cart {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'%3E%3C/circle%3E%3Ccircle cx='20' cy='21' r='1'%3E%3C/circle%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'%3E%3C/path%3E%3C/svg%3E"); }
-span.icon-upload {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'%3E%3C/path%3E%3Cpolyline points='17 8 12 3 7 8'%3E%3C/polyline%3E%3Cline x1='12' y1='3' x2='12' y2='15'%3E%3C/line%3E%3C/svg%3E"); }
-span.icon-user {
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2303234b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'%3E%3C/path%3E%3Ccircle cx='12' cy='7' r='4'%3E%3C/circle%3E%3C/svg%3E"); }
-
-/*
- Definitions for utilities and helper classes.
-*/
-/* Utility module CSS variable definitions */
-:root {
- --generic-border-color: rgba(0, 0, 0, 0.3);
- --generic-box-shadow: 0 0.2857142857rem 0.2857142857rem 0 rgba(0, 0, 0, 0.125), 0 0.1428571429rem 0.1428571429rem -0.1428571429rem rgba(0, 0, 0, 0.125); }
-
-.hidden {
- display: none !important; }
-
-.visually-hidden {
- position: absolute !important;
- width: 1px !important;
- height: 1px !important;
- margin: -1px !important;
- border: 0 !important;
- padding: 0 !important;
- clip: rect(0 0 0 0) !important;
- -webkit-clip-path: inset(100%) !important;
- clip-path: inset(100%) !important;
- overflow: hidden !important; }
-
-.bordered {
- border: 0.0714285714rem solid var(--generic-border-color) !important; }
-
-.rounded {
- border-radius: var(--universal-border-radius) !important; }
-
-.circular {
- border-radius: 50% !important; }
-
-.shadowed {
- box-shadow: var(--generic-box-shadow) !important; }
-
-.responsive-margin {
- margin: calc(var(--universal-margin) / 4) !important; }
- @media screen and (min-width: 500px) {
- .responsive-margin {
- margin: calc(var(--universal-margin) / 2) !important; } }
- @media screen and (min-width: 1280px) {
- .responsive-margin {
- margin: var(--universal-margin) !important; } }
-
-.responsive-padding {
- padding: calc(var(--universal-padding) / 4) !important; }
- @media screen and (min-width: 500px) {
- .responsive-padding {
- padding: calc(var(--universal-padding) / 2) !important; } }
- @media screen and (min-width: 1280px) {
- .responsive-padding {
- padding: var(--universal-padding) !important; } }
-
-@media screen and (max-width: 499px) {
- .hidden-sm {
- display: none !important; } }
-@media screen and (min-width: 500px) and (max-width: 1279px) {
- .hidden-md {
- display: none !important; } }
-@media screen and (min-width: 1280px) {
- .hidden-lg {
- display: none !important; } }
-@media screen and (max-width: 499px) {
- .visually-hidden-sm {
- position: absolute !important;
- width: 1px !important;
- height: 1px !important;
- margin: -1px !important;
- border: 0 !important;
- padding: 0 !important;
- clip: rect(0 0 0 0) !important;
- -webkit-clip-path: inset(100%) !important;
- clip-path: inset(100%) !important;
- overflow: hidden !important; } }
-@media screen and (min-width: 500px) and (max-width: 1279px) {
- .visually-hidden-md {
- position: absolute !important;
- width: 1px !important;
- height: 1px !important;
- margin: -1px !important;
- border: 0 !important;
- padding: 0 !important;
- clip: rect(0 0 0 0) !important;
- -webkit-clip-path: inset(100%) !important;
- clip-path: inset(100%) !important;
- overflow: hidden !important; } }
-@media screen and (min-width: 1280px) {
- .visually-hidden-lg {
- position: absolute !important;
- width: 1px !important;
- height: 1px !important;
- margin: -1px !important;
- border: 0 !important;
- padding: 0 !important;
- clip: rect(0 0 0 0) !important;
- -webkit-clip-path: inset(100%) !important;
- clip-path: inset(100%) !important;
- overflow: hidden !important; } }
-
-/*# sourceMappingURL=mini-custom.css.map */
-
-img[alt="ST logo"] { display: block; margin: auto; width: 75%; max-width: 250px; min-width: 71px; }
-img[alt="Cube logo"] { float: right; width: 30%; max-width: 10rem; min-width: 8rem; padding-right: 1rem;}
-
-.figure {
- display: block;
- margin-left: auto;
- margin-right: auto;
- text-align: center;
-}
diff --git a/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/_htmresc/st_logo_2020.png b/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/_htmresc/st_logo_2020.png
deleted file mode 100644
index d6cebb5ac..000000000
Binary files a/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/_htmresc/st_logo_2020.png and /dev/null differ
diff --git a/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/tcpp0203.c b/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/tcpp0203.c
deleted file mode 100644
index 952ff16c9..000000000
--- a/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/tcpp0203.c
+++ /dev/null
@@ -1,886 +0,0 @@
-/**
- ******************************************************************************
- * @file tcpp0203.c
- * @author MCD Application Team
- * @brief This file provides the TCPP02/03 Type-C port protection driver.
- ******************************************************************************
- * @attention
- *
- * Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.
- *
- * This software is licensed under terms that can be found in the LICENSE file
- * in the root directory of this software component.
- * If no LICENSE file comes with this software, it is provided AS-IS.
- *
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "tcpp0203.h"
-
-#if defined(_TRACE)
-#include "usbpd_core.h"
-#include "usbpd_trace.h"
-#include "string.h"
-#include "stdio.h"
-#endif /* _TRACE */
-
-/** @addtogroup BSP
- * @{
- */
-
-/** @addtogroup Components
- * @{
- */
-
-/** @addtogroup TCPP0203
- * @brief This file provides a set of functions needed to drive the
- * TCPP02/03 Type-C port protection.
- * @{
- */
-
-/** @defgroup TCPP0203_Private_Constants Private Constants
- * @{
- */
-
-/* Compilation option in order to enable/disable a concistency check performed
- after each I2C access into TCPP0203 registers : goal is to check that written value in Reg0
- is properly reflected into reg1 register content.
- To enable register consistency check, please uncomment below definition.
- To disable it, comment below line */
-/* #define TCPP0203_REGISTER_CONSISTENCY_CHECK */
-
-/** @defgroup TCPP0203_Private_Types Private Types
- * @{
- */
-/* TCPP02/03 Type-C port protection driver structure initialization */
-TCPP0203_Drv_t TCPP0203_Driver =
-{
- TCPP0203_Init,
- TCPP0203_DeInit,
- TCPP0203_Reset,
- TCPP0203_SetVConnSwitch,
- TCPP0203_SetGateDriverProvider,
- TCPP0203_SetGateDriverConsumer,
- TCPP0203_SetPowerMode,
- TCPP0203_SetVBusDischarge,
- TCPP0203_SetVConnDischarge,
- TCPP0203_GetVConnSwitchAck,
- TCPP0203_GetGateDriverProviderAck,
- TCPP0203_GetGateDriverConsumerAck,
- TCPP0203_GetPowerModeAck,
- TCPP0203_GetVBusDischargeAck,
- TCPP0203_GetVConnDischargeAck,
- TCPP0203_GetOCPVConnFlag,
- TCPP0203_GetOCPVBusFlag,
- TCPP0203_GetOVPVBusFlag,
- TCPP0203_GetOVPCCFlag,
- TCPP0203_GetOTPFlag,
- TCPP0203_GetVBusOkFlag,
- TCPP0203_ReadTCPPType,
- TCPP0203_ReadVCONNPower,
- TCPP0203_WriteCtrlRegister,
- TCPP0203_ReadAckRegister,
- TCPP0203_ReadFlagRegister,
-};
-
-/**
- * @}
- */
-
-/** @defgroup TCPP0203_Private_Variables Private Variables
- * @{
- */
-static uint8_t TCPP0203_DeviceType = TCPP0203_DEVICE_TYPE_03;
-
-#if defined(TCPP0203_REGISTER_CONSISTENCY_CHECK)
-static uint8_t Reg0_Expected_Value = 0x00;
-static uint8_t Reg1_LastRead_Value = 0x00;
-#endif /* TCPP0203_REGISTER_CONSISTENCY_CHECK */
-
-/**
- * @}
- */
-
-/* Private function prototypes -----------------------------------------------*/
-
-/** @defgroup TCPP0203_Private_Function_Prototypes TCPP0203 Private Function Prototypes
- * @{
- */
-static int32_t TCPP0203_ReadRegWrap(const void *handle, uint8_t Reg, uint8_t *Data, uint8_t Length);
-static int32_t TCPP0203_WriteRegWrap(const void *handle, uint8_t Reg, uint8_t *Data, uint8_t Length);
-
-static int32_t TCPP0203_ModifyReg0(TCPP0203_Object_t *pObj, uint8_t Value, uint8_t Mask);
-
-#if defined(TCPP0203_REGISTER_CONSISTENCY_CHECK)
-static int32_t TCPP0203_CheckReg0Reg1(TCPP0203_Object_t *pObj, uint8_t Reg0ExpectedValue);
-#endif /* TCPP0203_REGISTER_CONSISTENCY_CHECK */
-
-/**
- * @}
- */
-
-/** @defgroup TCPP0203_Exported_Functions TCPP0203 Exported Functions
- * @{
- */
-
-/**
- * @brief Register Bus Io to component
- * @param Component object pointer
- * @retval Status of execution
- */
-int32_t TCPP0203_RegisterBusIO(TCPP0203_Object_t *pObj, TCPP0203_IO_t *pIO)
-{
- int32_t ret;
-
- if (pObj == NULL)
- {
- ret = TCPP0203_ERROR;
- }
- else
- {
- pObj->IO.Init = pIO->Init;
- pObj->IO.DeInit = pIO->DeInit;
- pObj->IO.Address = pIO->Address;
- pObj->IO.WriteReg = pIO->WriteReg;
- pObj->IO.ReadReg = pIO->ReadReg;
- pObj->IO.GetTick = pIO->GetTick;
-
- pObj->Ctx.ReadReg = TCPP0203_ReadRegWrap;
- pObj->Ctx.WriteReg = TCPP0203_WriteRegWrap;
- pObj->Ctx.handle = pObj;
-
- if (pObj->IO.Init != NULL)
- {
- ret = pObj->IO.Init();
- }
- else
- {
- ret = TCPP0203_ERROR;
- }
- }
-
- return ret;
-}
-
-/**
- * @brief Initializes the TCPP0203 interface
- * @param pObj Pointer to component object
- * @retval Component status (TCPP0203_OK / TCPP0203_ERROR)
- */
-int32_t TCPP0203_Init(TCPP0203_Object_t *pObj)
-{
- int32_t ret = 0;
- uint8_t tmp;
-
- if (pObj->IsInitialized == 0U)
- {
- /* Read TCPP Device type */
- ret += tcpp0203_read_reg(&pObj->Ctx, TCPP0203_READ_REG2, &tmp, 1);
-
- if (ret == TCPP0203_OK)
- {
- TCPP0203_DeviceType = (tmp & TCPP0203_DEVICE_TYPE_MSK);
- }
- else
- {
- TCPP0203_DeviceType = TCPP0203_DEVICE_TYPE_02;
- }
- pObj->IsInitialized = 1U;
- }
-
- if (ret != TCPP0203_OK)
- {
- ret = TCPP0203_ERROR;
- }
-
- return ret;
-}
-
-/**
- * @brief Deinitializes the TCPP0203 interface
- * @param pObj Pointer to component object
- * @retval Component status (TCPP0203_OK / TCPP0203_ERROR)
- */
-int32_t TCPP0203_DeInit(TCPP0203_Object_t *pObj)
-{
- if (pObj->IsInitialized == 1U)
- {
- /* De-Initialize IO BUS layer */
- pObj->IO.DeInit();
-
- pObj->IsInitialized = 0U;
- }
-
- return TCPP0203_OK;
-}
-
-/**
- * @brief Resets TCPP0203 register (Reg0)
- * @param pObj Pointer to component object
- * @retval Component status (TCPP0203_OK / TCPP0203_ERROR)
- */
-int32_t TCPP0203_Reset(TCPP0203_Object_t *pObj)
-{
- int32_t ret = TCPP0203_OK;
- uint8_t tmp = TCPP0203_REG0_RST_VALUE;
-
- /* Write reset values in Reg0 register */
- if (tcpp0203_write_reg(&pObj->Ctx, TCPP0203_PROG_CTRL, &tmp, 1) != TCPP0203_OK)
- {
- ret = TCPP0203_ERROR;
- }
-
-#if defined(TCPP0203_REGISTER_CONSISTENCY_CHECK)
- Reg0_Expected_Value = TCPP0203_REG0_RST_VALUE;
- Reg1_LastRead_Value = TCPP0203_REG0_RST_VALUE;
-#endif /* TCPP0203_REGISTER_CONSISTENCY_CHECK */
-
- return ret;
-}
-
-/**
- * @brief Configure TCPP0203 VConn Switch
- * @param pObj Pointer to component object
- * @param VConnSwitch VConn Switch requested setting
- * This parameter can be one of the following values:
- * @arg TCPP0203_VCONN_SWITCH_OPEN VConn switch open
- * @arg TCPP0203_VCONN_SWITCH_CC1 VConn closed on CC1
- * @arg TCPP0203_VCONN_SWITCH_CC2 VConn closed on CC2
- * @retval Component status
- */
-int32_t TCPP0203_SetVConnSwitch(TCPP0203_Object_t *pObj, uint8_t VConnSwitch)
-{
- int32_t ret = TCPP0203_OK;
-
- if ((VConnSwitch != TCPP0203_VCONN_SWITCH_OPEN)
- && (VConnSwitch != TCPP0203_VCONN_SWITCH_CC1)
- && (VConnSwitch != TCPP0203_VCONN_SWITCH_CC2))
- {
- ret = TCPP0203_ERROR;
- }
- else
- {
- /* Update VConn switch setting in Writing register Reg0 */
- ret += TCPP0203_ModifyReg0(pObj, VConnSwitch, TCPP0203_VCONN_SWITCH_MSK);
- }
-
- return ret;
-}
-
-/**
- * @brief Configure TCPP0203 Gate Driver for Provider path
- * @param pObj Pointer to component object
- * @param GateDriverProvider GDP switch load requested setting
- * This parameter can be one of the following values:
- * @arg TCPP0203_GD_PROVIDER_SWITCH_OPEN GDP Switch Load Open
- * @arg TCPP0203_GD_PROVIDER_SWITCH_CLOSED GDP Switch Load closed
- * @retval Component status
- */
-int32_t TCPP0203_SetGateDriverProvider(TCPP0203_Object_t *pObj, uint8_t GateDriverProvider)
-{
- int32_t ret = TCPP0203_OK;
-
- if ((GateDriverProvider != TCPP0203_GD_PROVIDER_SWITCH_OPEN)
- && (GateDriverProvider != TCPP0203_GD_PROVIDER_SWITCH_CLOSED))
- {
- ret = TCPP0203_ERROR;
- }
- else
- {
- /* Update GDP Switch Load setting in Writing register Reg0 */
- if (GateDriverProvider == TCPP0203_GD_PROVIDER_SWITCH_CLOSED)
- {
- /* If Gate Driver Provider is to be closed, Gate Driver Consumer should be open */
- ret += TCPP0203_ModifyReg0(pObj, (GateDriverProvider | TCPP0203_GD_CONSUMER_SWITCH_OPEN),
- (TCPP0203_GD_PROVIDER_SWITCH_MSK | TCPP0203_GD_CONSUMER_SWITCH_MSK));
- }
- else
- {
- ret += TCPP0203_ModifyReg0(pObj, GateDriverProvider, TCPP0203_GD_PROVIDER_SWITCH_MSK);
- }
- }
-
- return ret;
-}
-
-/**
- * @brief Configure TCPP0203 Gate Driver for Consumer path
- * @param pObj Pointer to component object
- * @param GateDriverConsumer GDC switch load requested setting
- * This parameter can be one of the following values:
- * @arg TCPP0203_GD_CONSUMER_SWITCH_OPEN GDC Switch Load Open
- * @arg TCPP0203_GD_CONSUMER_SWITCH_CLOSED GDC Switch Load closed
- * @retval Component status
- */
-int32_t TCPP0203_SetGateDriverConsumer(TCPP0203_Object_t *pObj, uint8_t GateDriverConsumer)
-{
- int32_t ret = TCPP0203_OK;
-
- /* Check if TCPP type is TCPP03. Otherwise, return error */
- if (TCPP0203_DeviceType != TCPP0203_DEVICE_TYPE_03)
- {
- return (TCPP0203_ERROR);
- }
-
- if ((GateDriverConsumer != TCPP0203_GD_CONSUMER_SWITCH_OPEN)
- && (GateDriverConsumer != TCPP0203_GD_CONSUMER_SWITCH_CLOSED))
- {
- ret = TCPP0203_ERROR;
- }
- else
- {
- /* Update GDC Switch Load setting in Writing register Reg0 */
- if (GateDriverConsumer == TCPP0203_GD_CONSUMER_SWITCH_CLOSED)
- {
- /* If Gate Driver Consumer is to be closed, Gate Driver Provider should be open */
- ret += TCPP0203_ModifyReg0(pObj, (GateDriverConsumer | TCPP0203_GD_PROVIDER_SWITCH_OPEN),
- (TCPP0203_GD_PROVIDER_SWITCH_MSK | TCPP0203_GD_CONSUMER_SWITCH_MSK));
- }
- else
- {
- ret += TCPP0203_ModifyReg0(pObj, GateDriverConsumer, TCPP0203_GD_CONSUMER_SWITCH_MSK);
- }
- }
-
- return ret;
-}
-
-/**
- * @brief Configure TCPP0203 Power Mode
- * @param pObj Pointer to component object
- * @param PowerMode Power mode requested setting
- * This parameter can be one of the following values:
- * @arg TCPP0203_POWER_MODE_HIBERNATE Hibernate
- * @arg TCPP0203_POWER_MODE_LOWPOWER Low Power
- * @arg TCPP0203_POWER_MODE_NORMAL Normal
- * @retval Component status
- */
-int32_t TCPP0203_SetPowerMode(TCPP0203_Object_t *pObj, uint8_t PowerMode)
-{
- int32_t ret = TCPP0203_OK;
-
- if ((PowerMode != TCPP0203_POWER_MODE_HIBERNATE)
- && (PowerMode != TCPP0203_POWER_MODE_LOWPOWER)
- && (PowerMode != TCPP0203_POWER_MODE_NORMAL))
- {
- ret = TCPP0203_ERROR;
- }
- else
- {
- /* Update Power Mode setting in Writing register Reg0 */
- ret += TCPP0203_ModifyReg0(pObj, PowerMode, TCPP0203_POWER_MODE_MSK);
- }
-
- return ret;
-}
-
-/**
- * @brief Configure TCPP0203 Gate Driver for Provider path
- * @param pObj Pointer to component object
- * @param VBusDischarge VBUS Discharge requested setting
- * This parameter can be one of the following values:
- * @arg TCPP0203_VBUS_DISCHARGE_OFF VBUS Discharge Off
- * @arg TCPP0203_VBUS_DISCHARGE_ON VBUS Discharge On
- * @retval Component status
- */
-int32_t TCPP0203_SetVBusDischarge(TCPP0203_Object_t *pObj, uint8_t VBusDischarge)
-{
- int32_t ret = TCPP0203_OK;
-
- if ((VBusDischarge != TCPP0203_VBUS_DISCHARGE_OFF)
- && (VBusDischarge != TCPP0203_VBUS_DISCHARGE_ON))
- {
- ret = TCPP0203_ERROR;
- }
- else
- {
- /* Update VBUS Discharge setting in Writing register Reg0 */
- ret += TCPP0203_ModifyReg0(pObj, VBusDischarge, TCPP0203_VBUS_DISCHARGE_MSK);
- }
-
- return ret;
-}
-
-/**
- * @brief Configure TCPP0203 Gate Driver for Provider path
- * @param pObj Pointer to component object
- * @param VConnDischarge GDP switch load requested setting
- * This parameter can be one of the following values:
- * @arg TCPP0203_VCONN_DISCHARGE_OFF VConn Discharge Off
- * @arg TCPP0203_VCONN_DISCHARGE_ON VConn Discharge On
- * @retval Component status
- */
-int32_t TCPP0203_SetVConnDischarge(TCPP0203_Object_t *pObj, uint8_t VConnDischarge)
-{
- int32_t ret = TCPP0203_OK;
-
- if ((VConnDischarge != TCPP0203_VCONN_DISCHARGE_OFF)
- && (VConnDischarge != TCPP0203_VCONN_DISCHARGE_ON))
- {
- ret = TCPP0203_ERROR;
- }
- else
- {
- /* Update VConn Discharge setting in Writing register Reg0 */
- ret += TCPP0203_ModifyReg0(pObj, VConnDischarge, TCPP0203_VCONN_DISCHARGE_MSK);
- }
-
- return ret;
-}
-
-/**
- * @brief Get VConn switch Ack value
- * @param pObj Pointer to component object
- * @param pVConnSwitchAck Pointer on VConn switch Ack value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_VCONN_SWITCH_OPEN VConn switch open Ack
- * @arg TCPP0203_VCONN_SWITCH_CC1 VConn closed on CC1 Ack
- * @arg TCPP0203_VCONN_SWITCH_CC2 VConn closed on CC2 Ack
- * @retval Component status
- */
-int32_t TCPP0203_GetVConnSwitchAck(TCPP0203_Object_t *pObj, uint8_t *pVConnSwitchAck)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_ACK_REG, &tmp, 1);
- *pVConnSwitchAck = (tmp & TCPP0203_VCONN_SWITCH_ACK_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get Gate Driver Provider Ack value
- * @param pObj Pointer to component object
- * @param pGateDriverProviderAck Pointer on Gate Driver Provider Ack value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_GD_PROVIDER_SWITCH_ACK_OPEN Gate Driver Provider Open Ack
- * @arg TCPP0203_GD_PROVIDER_SWITCH_ACK_CLOSED Gate Driver Provider Closed Ack
- * @retval Component status
- */
-int32_t TCPP0203_GetGateDriverProviderAck(TCPP0203_Object_t *pObj, uint8_t *pGateDriverProviderAck)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_ACK_REG, &tmp, 1);
- *pGateDriverProviderAck = (tmp & TCPP0203_GD_PROVIDER_SWITCH_ACK_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get Gate Driver Consumer Ack value
- * @param pObj Pointer to component object
- * @param pGateDriverConsumerAck Pointer on Gate Driver Consumer Ack value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_GD_CONSUMER_SWITCH_ACK_OPEN Gate Driver Consumer Open Ack
- * @arg TCPP0203_GD_CONSUMER_SWITCH_ACK_CLOSED Gate Driver Consumer Closed Ack
- * @retval Component status
- */
-int32_t TCPP0203_GetGateDriverConsumerAck(TCPP0203_Object_t *pObj, uint8_t *pGateDriverConsumerAck)
-{
- int32_t ret;
- uint8_t tmp;
-
- /* Check if TCPP type is TCPP03. Otherwise, return error */
- if (TCPP0203_DeviceType != TCPP0203_DEVICE_TYPE_03)
- {
- return (TCPP0203_ERROR);
- }
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_ACK_REG, &tmp, 1);
- *pGateDriverConsumerAck = (tmp & TCPP0203_GD_CONSUMER_SWITCH_ACK_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get Power Mode Ack value
- * @param pObj Pointer to component object
- * @param pPowerModeAck Pointer on Power Mode Ack value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_POWER_MODE_ACK_HIBERNATE Power Mode Hibernate Ack
- * @arg TCPP0203_POWER_MODE_ACK_LOWPOWER Power Mode Low Power Ack
- * @arg TCPP0203_POWER_MODE_ACK_NORMAL Power Mode Normal Ack
- * @retval Component status
- */
-int32_t TCPP0203_GetPowerModeAck(TCPP0203_Object_t *pObj, uint8_t *pPowerModeAck)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_ACK_REG, &tmp, 1);
- *pPowerModeAck = (tmp & TCPP0203_POWER_MODE_ACK_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get VBUS Discharge Ack value
- * @param pObj Pointer to component object
- * @param pVBusDischargeAck Pointer on VBUS Discharge Ack value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_VBUS_DISCHARGE_ACK_OFF VBUS Discharge Off Ack
- * @arg TCPP0203_VBUS_DISCHARGE_ACK_ON VBUS Discharge On Ack
- * @retval Component status
- */
-int32_t TCPP0203_GetVBusDischargeAck(TCPP0203_Object_t *pObj, uint8_t *pVBusDischargeAck)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_ACK_REG, &tmp, 1);
- *pVBusDischargeAck = (tmp & TCPP0203_VBUS_DISCHARGE_ACK_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get VConn Discharge Ack value
- * @param pObj Pointer to component object
- * @param pVConnDischargeAck Pointer on VConn Discharge Ack value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_VCONN_DISCHARGE_ACK_OFF VConn Discharge Off Ack
- * @arg TCPP0203_VCONN_DISCHARGE_ACK_ON VConn Discharge On Ack
- * @retval Component status
- */
-int32_t TCPP0203_GetVConnDischargeAck(TCPP0203_Object_t *pObj, uint8_t *pVConnDischargeAck)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_ACK_REG, &tmp, 1);
- *pVConnDischargeAck = (tmp & TCPP0203_VCONN_DISCHARGE_ACK_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get OCP VConn Flag value
- * @param pObj Pointer to component object
- * @param pOCPVConnFlag Pointer on OCP VConn Flag value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_FLAG_OCP_VCONN_RESET OCP VConn flag not set
- * @arg TCPP0203_FLAG_OCP_VCONN_SET OCP VConn flag set
- * @retval Component status
- */
-int32_t TCPP0203_GetOCPVConnFlag(TCPP0203_Object_t *pObj, uint8_t *pOCPVConnFlag)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_FLAG_REG, &tmp, 1);
- *pOCPVConnFlag = (tmp & TCPP0203_FLAG_OCP_VCONN_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get OCP VBUS Flag value
- * @param pObj Pointer to component object
- * @param pGetOCPVBusFlag Pointer on OCP VBUS Flag value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_FLAG_OCP_VBUS_RESET OCP VBUS flag not set
- * @arg TCPP0203_FLAG_OCP_VBUS_SET OCP VBUS flag set
- * @retval Component status
- */
-int32_t TCPP0203_GetOCPVBusFlag(TCPP0203_Object_t *pObj, uint8_t *pGetOCPVBusFlag)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_FLAG_REG, &tmp, 1);
- *pGetOCPVBusFlag = (tmp & TCPP0203_FLAG_OCP_VBUS_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get OVP VBUS Flag value
- * @param pObj Pointer to component object
- * @param pOVPVBusFlag Pointer on OVP VBUS Flag value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_FLAG_OVP_VBUS_RESET OVP VBUS flag not set
- * @arg TCPP0203_FLAG_OVP_VBUS_SET OVP VBUS flag set
- * @retval Component status
- */
-int32_t TCPP0203_GetOVPVBusFlag(TCPP0203_Object_t *pObj, uint8_t *pOVPVBusFlag)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_FLAG_REG, &tmp, 1);
- *pOVPVBusFlag = (tmp & TCPP0203_FLAG_OVP_VBUS_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get OVP CC Flag value
- * @param pObj Pointer to component object
- * @param pOVPCCFlag Pointer on OVP CC Flag value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_FLAG_OVP_CC_RESET OVP CC flag not set
- * @arg TCPP0203_FLAG_OVP_CC_SET OVP CC flag set
- * @retval Component status
- */
-int32_t TCPP0203_GetOVPCCFlag(TCPP0203_Object_t *pObj, uint8_t *pOVPCCFlag)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_FLAG_REG, &tmp, 1);
- *pOVPCCFlag = (tmp & TCPP0203_FLAG_OVP_CC_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get Over Temperature Flag value
- * @param pObj Pointer to component object
- * @param pOTPFlag Pointer on Over Temperature Flag value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_FLAG_OTP_RESET Over Temperature flag not set
- * @arg TCPP0203_FLAG_OTP_SET Over Temperature flag set
- * @retval Component status
- */
-int32_t TCPP0203_GetOTPFlag(TCPP0203_Object_t *pObj, uint8_t *pOTPFlag)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_FLAG_REG, &tmp, 1);
- *pOTPFlag = (tmp & TCPP0203_FLAG_OTP_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get VBUS OK Flag value
- * @param pObj Pointer to component object
- * @param pVBusOkFlag Pointer on VBUS OK Flag value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_FLAG_VBUS_OK_RESET VBUS OK flag not set
- * @arg TCPP0203_FLAG_VBUS_OK_SET VBUS OK flag set
- * @retval Component status
- */
-int32_t TCPP0203_GetVBusOkFlag(TCPP0203_Object_t *pObj, uint8_t *pVBusOkFlag)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_FLAG_REG, &tmp, 1);
- *pVBusOkFlag = (tmp & TCPP0203_FLAG_VBUS_OK_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get TCPP0203 Device Type value
- * @param pObj Pointer to component object
- * @param pTCPPType Pointer on TCPP0203 Device Type value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_DEVICE_TYPE_02 TCPP02 Type
- * @arg TCPP0203_DEVICE_TYPE_03 TCPP03 Type
- * @retval Component status
- */
-int32_t TCPP0203_ReadTCPPType(TCPP0203_Object_t *pObj, uint8_t *pTCPPType)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_FLAG_REG, &tmp, 1);
- *pTCPPType = (tmp & TCPP0203_DEVICE_TYPE_MSK);
-
- return ret;
-}
-
-/**
- * @brief Get VConn Power value
- * @param pObj Pointer to component object
- * @param pVCONNPower Pointer on VConn Power value
- * This output parameter can be one of the following values:
- * @arg TCPP0203_FLAG_VCONN_PWR_1W OCP VConn flag not set
- * @arg TCPP0203_FLAG_VCONN_PWR_0_1W OCP VConn flag set
- * @retval Component status
- */
-int32_t TCPP0203_ReadVCONNPower(TCPP0203_Object_t *pObj, uint8_t *pVCONNPower)
-{
- int32_t ret;
- uint8_t tmp;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_FLAG_REG, &tmp, 1);
- *pVCONNPower = (tmp & TCPP0203_FLAG_VCONN_PWR_MSK);
-
- return ret;
-}
-
-/**
- * @brief Set complete Ctrl register value (Reg 0)
- * @param pObj Pointer to component object
- * @param pCtrlRegister Pointer on Ctrl register value
- * @retval Component status
- */
-int32_t TCPP0203_WriteCtrlRegister(TCPP0203_Object_t *pObj, uint8_t *pCtrlRegister)
-{
- int32_t ret;
-
- /* Update value in writing register (reg0) */
- ret = tcpp0203_write_reg(&pObj->Ctx, TCPP0203_PROG_CTRL, pCtrlRegister, 1);
-
-#if defined(TCPP0203_REGISTER_CONSISTENCY_CHECK)
- Reg0_Expected_Value = *pCtrlRegister;
-#endif /* TCPP0203_REGISTER_CONSISTENCY_CHECK */
-
- return ret;
-}
-
-/**
- * @brief Get complete Ack register value
- * @param pObj Pointer to component object
- * @param pAckRegister Pointer on Ack register value
- * @retval Component status
- */
-int32_t TCPP0203_ReadAckRegister(TCPP0203_Object_t *pObj, uint8_t *pAckRegister)
-{
- int32_t ret;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_ACK_REG, pAckRegister, 1);
-
- return ret;
-}
-
-/**
- * @brief Get complete Flag register value
- * @param pObj Pointer to component object
- * @param pFlagRegister Pointer on Flag register value
- * @retval Component status
- */
-int32_t TCPP0203_ReadFlagRegister(TCPP0203_Object_t *pObj, uint8_t *pFlagRegister)
-{
- int32_t ret;
-
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_FLAG_REG, pFlagRegister, 1);
-
- return ret;
-}
-
-/******************** Static functions ****************************************/
-/**
- * @brief Wrap TCPP0203 read function to Bus IO function
- * @param handle Component object handle
- * @param Reg Target register address to read
- * @param pData Buffer where Target register value should be stored
- * @param Length buffer size to be read
- * @retval error status
- */
-static int32_t TCPP0203_ReadRegWrap(const void *handle, uint8_t Reg, uint8_t *pData, uint8_t Length)
-{
- const TCPP0203_Object_t *pObj = (const TCPP0203_Object_t *)handle;
-
- return pObj->IO.ReadReg(pObj->IO.Address, Reg, pData, Length);
-}
-
-/**
- * @brief Wrap TCPP0203 write function to Bus IO function
- * @param handle Component object handle
- * @param Reg Target register address to write
- * @param pData Target register value to be written
- * @param Length Buffer size to be written
- * @retval error status
- */
-static int32_t TCPP0203_WriteRegWrap(const void *handle, uint8_t Reg, uint8_t *pData, uint8_t Length)
-{
- const TCPP0203_Object_t *pObj = (const TCPP0203_Object_t *)handle;
-
-#if defined(TCPP0203_REGISTER_CONSISTENCY_CHECK)
- Reg0_Expected_Value = *pData;
-#endif /* TCPP0203_REGISTER_CONSISTENCY_CHECK */
-
- return pObj->IO.WriteReg(pObj->IO.Address, Reg, pData, Length);
-}
-
-/**
- * @brief TCPP0203 register update function to Bus IO function
- * @param handle Component object handle
- * @param Reg Target register address to write
- * @param pData Target register value to be written
- * @param Length Buffer size to be written
- * @retval error status
- */
-static int32_t TCPP0203_ModifyReg0(TCPP0203_Object_t *pObj, uint8_t Value, uint8_t Mask)
-{
- int32_t ret;
- uint8_t tmp;
-
- /* Read current content of ACK register (reflects content of bits set to 1 in Writing register Reg0) */
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_ACK_REG, &tmp, 1);
-
- /* Update only the area dedicated to Mask */
- tmp &= ~(Mask);
- tmp |= (Value & Mask);
-
-#if defined(TCPP0203_REGISTER_CONSISTENCY_CHECK)
- Reg0_Expected_Value = tmp;
-#endif /* TCPP0203_REGISTER_CONSISTENCY_CHECK */
-
- /* Update value in writing register (reg0) */
- ret += tcpp0203_write_reg(&pObj->Ctx, TCPP0203_PROG_CTRL, &tmp, 1);
-
-#if defined(TCPP0203_REGISTER_CONSISTENCY_CHECK)
- ret += TCPP0203_CheckReg0Reg1(pObj, Reg0_Expected_Value);
-#endif /* TCPP0203_REGISTER_CONSISTENCY_CHECK */
-
- return ret;
-}
-
-#if defined(TCPP0203_REGISTER_CONSISTENCY_CHECK)
-/**
- * @brief TCPP0203 register control function between Reg0 and Reg1 value
- * @param handle Component object handle
- * @param Reg0ExpectedValue Value expected in Reg0 (built after all calls to write functions)
- * @retval error status
- */
-static int32_t TCPP0203_CheckReg0Reg1(TCPP0203_Object_t *pObj, uint8_t Reg0ExpectedValue)
-{
- int32_t ret;
-
- /* Read current content of ACK register (expected to reflect content of bits set to 1 in Writing register Reg0) */
- ret = tcpp0203_read_reg(&pObj->Ctx, TCPP0203_ACK_REG, &Reg1_LastRead_Value, 1);
-
-#ifdef _TRACE
- char str[12];
- sprintf(str, "Exp0_0x%02x", Reg0ExpectedValue);
- USBPD_TRACE_Add(USBPD_TRACE_DEBUG, 0U, 0U, (uint8_t *)str, sizeof(str) - 1U);
- sprintf(str, "Reg1_0x%02x", Reg1_LastRead_Value);
- USBPD_TRACE_Add(USBPD_TRACE_DEBUG, 0U, 0U, (uint8_t *)str, sizeof(str) - 1U);
-#endif /* _TRACE */
-
- /* Control if Reg1 value is same as Reg0 expected one */
- if (Reg1_LastRead_Value != Reg0ExpectedValue)
- {
- while (1);
- }
-
- return ret;
-}
-#endif /* TCPP0203_REGISTER_CONSISTENCY_CHECK */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
diff --git a/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/tcpp0203.h b/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/tcpp0203.h
deleted file mode 100644
index 271b534fc..000000000
--- a/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/tcpp0203.h
+++ /dev/null
@@ -1,353 +0,0 @@
-/**
- ******************************************************************************
- * @file tcpp0203.h
- * @author MCD Application Team
- * @brief This file contains all the functions prototypes for the
- * tcpp0203.c driver.
- ******************************************************************************
- * @attention
- *
- * Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.
- *
- * This software is licensed under terms that can be found in the LICENSE file
- * in the root directory of this software component.
- * If no LICENSE file comes with this software, it is provided AS-IS.
- *
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef TCPP0203_H
-#define TCPP0203_H
-
-/* Includes ------------------------------------------------------------------*/
-#include "tcpp0203_reg.h"
-#include
-
-/** @addtogroup BSP
- * @{
- */
-
-/** @addtogroup Component
- * @{
- */
-
-/** @addtogroup TCPP0203
- * @{
- */
-
-/* Exported types ------------------------------------------------------------*/
-
-/** @defgroup TCPP0203_Exported_Types TCPP0203 Exported Types
- * @{
- */
-typedef int32_t (*TCPP0203_Init_Func)(void);
-typedef int32_t (*TCPP0203_DeInit_Func)(void);
-typedef int32_t (*TCPP0203_GetTick_Func)(void);
-typedef int32_t (*TCPP0203_WriteReg_Func)(uint16_t, uint16_t, uint8_t *, uint16_t);
-typedef int32_t (*TCPP0203_ReadReg_Func)(uint16_t, uint16_t, uint8_t *, uint16_t);
-
-typedef struct
-{
- TCPP0203_Init_Func Init;
- TCPP0203_DeInit_Func DeInit;
- uint16_t Address;
- TCPP0203_WriteReg_Func WriteReg;
- TCPP0203_ReadReg_Func ReadReg;
- TCPP0203_GetTick_Func GetTick;
-} TCPP0203_IO_t;
-
-
-typedef struct
-{
- TCPP0203_IO_t IO;
- TCPP0203_ctx_t Ctx;
- uint8_t IsInitialized;
-} TCPP0203_Object_t;
-
-typedef struct
-{
- int32_t (*Init)(TCPP0203_Object_t *);
- int32_t (*DeInit)(TCPP0203_Object_t *);
- int32_t (*Reset)(TCPP0203_Object_t *);
- int32_t (*SetVConnSwitch)(TCPP0203_Object_t *, uint8_t);
- int32_t (*SetGateDriverProvider)(TCPP0203_Object_t *, uint8_t);
- int32_t (*SetGateDriverConsumer)(TCPP0203_Object_t *, uint8_t);
- int32_t (*SetPowerMode)(TCPP0203_Object_t *, uint8_t);
- int32_t (*SetVBusDischarge)(TCPP0203_Object_t *, uint8_t);
- int32_t (*SetVConnDischarge)(TCPP0203_Object_t *, uint8_t);
- int32_t (*GetVConnSwitchAck)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetGateDriverProviderAck)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetGateDriverConsumerAck)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetPowerModeAck)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetVBusDischargeAck)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetVConnDischargeAck)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetOCPVConnFlag)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetOCPVBusFlag)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetOVPVBusFlag)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetOVPCCFlag)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetOTPFlag)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*GetVBusOkFlag)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*ReadTCPPType)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*ReadVCONNPower)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*WriteCtrlRegister)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*ReadAckRegister)(TCPP0203_Object_t *, uint8_t *);
- int32_t (*ReadFlagRegister)(TCPP0203_Object_t *, uint8_t *);
-} TCPP0203_Drv_t;
-
-/**
- * @}
- */
-
-/** @defgroup TCPP0203_Exported_Constants TCPP0203 Exported Constants
- * @{
- */
-/**
- * @brief TCPP0203 Driver Response codes
- */
-#define TCPP0203_OK (0)
-#define TCPP0203_ERROR (-1)
-
-/**
- * @brief TCPP0203 possible I2C Addresses
- */
-#define TCPP0203_I2C_ADDRESS_X68 (0x68U)
-#define TCPP0203_I2C_ADDRESS_X6A (0x6AU)
-
-/**
- * @brief TCPP0203 Reg0 Reset Value
- */
-#define TCPP0203_REG0_RST_VALUE TCPP0203_GD_CONSUMER_SWITCH_CLOSED
-
-/**
- * @brief TCPP0203 VCONN Switch
- */
-#define TCPP0203_VCONN_SWITCH_POS (0U)
-#define TCPP0203_VCONN_SWITCH_MSK (0x03U << TCPP0203_VCONN_SWITCH_POS)
-#define TCPP0203_VCONN_SWITCH_OPEN (0x00U)
-#define TCPP0203_VCONN_SWITCH_CC1 (0x01U << TCPP0203_VCONN_SWITCH_POS)
-#define TCPP0203_VCONN_SWITCH_CC2 (0x02U << TCPP0203_VCONN_SWITCH_POS)
-
-/**
- * @brief TCPP0203 Gate Driver Provider values
- */
-#define TCPP0203_GD_PROVIDER_SWITCH_POS (2U)
-#define TCPP0203_GD_PROVIDER_SWITCH_MSK (0x01U << TCPP0203_GD_PROVIDER_SWITCH_POS)
-#define TCPP0203_GD_PROVIDER_SWITCH_OPEN (0x00U)
-#define TCPP0203_GD_PROVIDER_SWITCH_CLOSED (TCPP0203_GD_PROVIDER_SWITCH_MSK)
-
-/**
- * @brief TCPP0203 Gate Driver Consumer values
- */
-#define TCPP0203_GD_CONSUMER_SWITCH_POS (3U)
-#define TCPP0203_GD_CONSUMER_SWITCH_MSK (0x01U << TCPP0203_GD_CONSUMER_SWITCH_POS)
-#define TCPP0203_GD_CONSUMER_SWITCH_CLOSED (0x00U)
-#define TCPP0203_GD_CONSUMER_SWITCH_OPEN (TCPP0203_GD_CONSUMER_SWITCH_MSK)
-
-/**
- * @brief TCPP0203 Power Mode values
- */
-#define TCPP0203_POWER_MODE_POS (4U)
-#define TCPP0203_POWER_MODE_MSK (0x03U << TCPP0203_POWER_MODE_POS)
-#define TCPP0203_POWER_MODE_HIBERNATE (0x00U)
-#define TCPP0203_POWER_MODE_LOWPOWER (0x02U << TCPP0203_POWER_MODE_POS)
-#define TCPP0203_POWER_MODE_NORMAL (0x01U << TCPP0203_POWER_MODE_POS)
-
-/**
- * @brief TCPP0203 VBUS Discharge management
- */
-#define TCPP0203_VBUS_DISCHARGE_POS (6U)
-#define TCPP0203_VBUS_DISCHARGE_MSK (0x01U << TCPP0203_VBUS_DISCHARGE_POS)
-#define TCPP0203_VBUS_DISCHARGE_OFF (0x00U)
-#define TCPP0203_VBUS_DISCHARGE_ON (TCPP0203_VBUS_DISCHARGE_MSK)
-
-/**
- * @brief TCPP0203 VConn Discharge management
- */
-#define TCPP0203_VCONN_DISCHARGE_POS (7U)
-#define TCPP0203_VCONN_DISCHARGE_MSK (0x01U << TCPP0203_VCONN_DISCHARGE_POS)
-#define TCPP0203_VCONN_DISCHARGE_OFF (0x00U)
-#define TCPP0203_VCONN_DISCHARGE_ON (TCPP0203_VCONN_DISCHARGE_MSK)
-
-/**
- * @brief TCPP0203 VCONN Switch Acknowledge
- */
-#define TCPP0203_VCONN_SWITCH_ACK_POS (0U)
-#define TCPP0203_VCONN_SWITCH_ACK_MSK (0x03U << TCPP0203_VCONN_SWITCH_ACK_POS)
-#define TCPP0203_VCONN_SWITCH_ACK_OPEN (0x00U)
-#define TCPP0203_VCONN_SWITCH_ACK_CC1 (0x02U << TCPP0203_VCONN_SWITCH_ACK_POS)
-#define TCPP0203_VCONN_SWITCH_ACK_CC2 (0x01U << TCPP0203_VCONN_SWITCH_ACK_POS)
-
-/**
- * @brief TCPP0203 Gate Driver Provider Acknowledge
- */
-#define TCPP0203_GD_PROVIDER_SWITCH_ACK_POS (2U)
-#define TCPP0203_GD_PROVIDER_SWITCH_ACK_MSK (0x01U << TCPP0203_GD_PROVIDER_SWITCH_ACK_POS)
-#define TCPP0203_GD_PROVIDER_SWITCH_ACK_OPEN (0x00U)
-#define TCPP0203_GD_PROVIDER_SWITCH_ACK_CLOSED (TCPP0203_GD_PROVIDER_SWITCH_ACK_MSK)
-
-/**
- * @brief TCPP0203 Gate Driver Consumer Acknowledge
- */
-#define TCPP0203_GD_CONSUMER_SWITCH_ACK_POS (3U)
-#define TCPP0203_GD_CONSUMER_SWITCH_ACK_MSK (0x01U << TCPP0203_GD_CONSUMER_SWITCH_ACK_POS)
-#define TCPP0203_GD_CONSUMER_SWITCH_ACK_CLOSED (0x00U)
-#define TCPP0203_GD_CONSUMER_SWITCH_ACK_OPEN (TCPP0203_GD_CONSUMER_SWITCH_ACK_MSK)
-
-/**
- * @brief TCPP0203 Power Mode Acknowledge
- */
-#define TCPP0203_POWER_MODE_ACK_POS (4U)
-#define TCPP0203_POWER_MODE_ACK_MSK (0x03U << TCPP0203_POWER_MODE_ACK_POS)
-#define TCPP0203_POWER_MODE_ACK_HIBERNATE (0x00U)
-#define TCPP0203_POWER_MODE_ACK_LOWPOWER (0x01U << TCPP0203_POWER_MODE_ACK_POS)
-#define TCPP0203_POWER_MODE_ACK_NORMAL (0x02U << TCPP0203_POWER_MODE_ACK_POS)
-
-/**
- * @brief TCPP0203 VBUS Discharge Acknowledge
- */
-#define TCPP0203_VBUS_DISCHARGE_ACK_POS (6U)
-#define TCPP0203_VBUS_DISCHARGE_ACK_MSK (0x01U << TCPP0203_VBUS_DISCHARGE_ACK_POS)
-#define TCPP0203_VBUS_DISCHARGE_ACK_OFF (0x00U)
-#define TCPP0203_VBUS_DISCHARGE_ACK_ON (TCPP0203_VBUS_DISCHARGE_ACK_MSK)
-
-/**
- * @brief TCPP0203 VConn Discharge Acknowledge
- */
-#define TCPP0203_VCONN_DISCHARGE_ACK_POS (7U)
-#define TCPP0203_VCONN_DISCHARGE_ACK_MSK (0x01U << TCPP0203_VCONN_DISCHARGE_ACK_POS)
-#define TCPP0203_VCONN_DISCHARGE_ACK_OFF (0x00U)
-#define TCPP0203_VCONN_DISCHARGE_ACK_ON (TCPP0203_VCONN_DISCHARGE_ACK_MSK)
-
-/**
- * @brief TCPP0203 OCP Vconn Flag management
- */
-#define TCPP0203_FLAG_OCP_VCONN_POS (0U)
-#define TCPP0203_FLAG_OCP_VCONN_MSK (0x01U << TCPP0203_FLAG_OCP_VCONN_POS)
-#define TCPP0203_FLAG_OCP_VCONN_SET (TCPP0203_FLAG_OCP_VCONN_MSK)
-#define TCPP0203_FLAG_OCP_VCONN_RESET (0x00U)
-
-/**
- * @brief TCPP0203 OCP VBUS Flag management
- */
-#define TCPP0203_FLAG_OCP_VBUS_POS (1U)
-#define TCPP0203_FLAG_OCP_VBUS_MSK (0x01U << TCPP0203_FLAG_OCP_VBUS_POS)
-#define TCPP0203_FLAG_OCP_VBUS_SET (TCPP0203_FLAG_OCP_VBUS_MSK)
-#define TCPP0203_FLAG_OCP_VBUS_RESET (0x00U)
-
-/**
- * @brief TCPP0203 OVP VBUS Flag management
- */
-#define TCPP0203_FLAG_OVP_VBUS_POS (2U)
-#define TCPP0203_FLAG_OVP_VBUS_MSK (0x01U << TCPP0203_FLAG_OVP_VBUS_POS)
-#define TCPP0203_FLAG_OVP_VBUS_SET (TCPP0203_FLAG_OVP_VBUS_MSK)
-#define TCPP0203_FLAG_OVP_VBUS_RESET (0x00U)
-
-/**
- * @brief TCPP0203 OVP CC Flag management
- */
-#define TCPP0203_FLAG_OVP_CC_POS (3U)
-#define TCPP0203_FLAG_OVP_CC_MSK (0x01U << TCPP0203_FLAG_OVP_CC_POS)
-#define TCPP0203_FLAG_OVP_CC_SET (TCPP0203_FLAG_OVP_CC_MSK)
-#define TCPP0203_FLAG_OVP_CC_RESET (0x00U)
-
-/**
- * @brief TCPP0203 OTP Flag management
- */
-#define TCPP0203_FLAG_OTP_POS (4U)
-#define TCPP0203_FLAG_OTP_MSK (0x01U << TCPP0203_FLAG_OTP_POS)
-#define TCPP0203_FLAG_OTP_SET (TCPP0203_FLAG_OTP_MSK)
-#define TCPP0203_FLAG_OTP_RESET (0x00U)
-
-/**
- * @brief TCPP0203 VBUS OK Flag management
- */
-#define TCPP0203_FLAG_VBUS_OK_POS (5U)
-#define TCPP0203_FLAG_VBUS_OK_MSK (0x01U << TCPP0203_FLAG_VBUS_OK_POS)
-#define TCPP0203_FLAG_VBUS_OK_SET (TCPP0203_FLAG_VBUS_OK_MSK)
-#define TCPP0203_FLAG_VBUS_OK_RESET (0x00U)
-
-/**
- * @brief TCPP0203 VConn Power
- */
-#define TCPP0203_FLAG_VCONN_PWR_POS (6U)
-#define TCPP0203_FLAG_VCONN_PWR_MSK (0x01U << TCPP0203_FLAG_VCONN_PWR_POS)
-#define TCPP0203_FLAG_VCONN_PWR_1W (TCPP0203_FLAG_VCONN_PWR_MSK)
-#define TCPP0203_FLAG_VCONN_PWR_0_1W (0x00U)
-
-/**
- * @brief TCPP0203 Device Type
- */
-#define TCPP0203_DEVICE_TYPE_POS (7U)
-#define TCPP0203_DEVICE_TYPE_MSK (0x01U << TCPP0203_DEVICE_TYPE_POS)
-#define TCPP0203_DEVICE_TYPE_02 (TCPP0203_DEVICE_TYPE_MSK)
-#define TCPP0203_DEVICE_TYPE_03 (0x00U)
-
-/**
- * @}
- */
-
-/** @defgroup TCPP0203_Exported_Macros TCPP0203 Exported Macros
- * @{
- */
-/**
- * @}
- */
-
-/** @defgroup TCPP0203_Exported_Functions TCPP0203 Exported Functions
- * @{
- */
-
-/*------------------------------------------------------------------------------
- TCPP02/03 Type-C port protection functions
-------------------------------------------------------------------------------*/
-/* High Layer codec functions */
-int32_t TCPP0203_RegisterBusIO(TCPP0203_Object_t *pObj, TCPP0203_IO_t *pIO);
-int32_t TCPP0203_Init(TCPP0203_Object_t *pObj);
-int32_t TCPP0203_DeInit(TCPP0203_Object_t *pObj);
-int32_t TCPP0203_Reset(TCPP0203_Object_t *pObj);
-int32_t TCPP0203_SetVConnSwitch(TCPP0203_Object_t *pObj, uint8_t VConnSwitch);
-int32_t TCPP0203_SetGateDriverProvider(TCPP0203_Object_t *pObj, uint8_t GateDriverProvider);
-int32_t TCPP0203_SetGateDriverConsumer(TCPP0203_Object_t *pObj, uint8_t GateDriverConsumer);
-int32_t TCPP0203_SetPowerMode(TCPP0203_Object_t *pObj, uint8_t PowerMode);
-int32_t TCPP0203_SetVBusDischarge(TCPP0203_Object_t *pObj, uint8_t VBusDischarge);
-int32_t TCPP0203_SetVConnDischarge(TCPP0203_Object_t *pObj, uint8_t VConnDischarge);
-int32_t TCPP0203_GetVConnSwitchAck(TCPP0203_Object_t *pObj, uint8_t *pVConnSwitchAck);
-int32_t TCPP0203_GetGateDriverProviderAck(TCPP0203_Object_t *pObj, uint8_t *pGateDriverProviderAck);
-int32_t TCPP0203_GetGateDriverConsumerAck(TCPP0203_Object_t *pObj, uint8_t *pGateDriverConsumerAck);
-int32_t TCPP0203_GetPowerModeAck(TCPP0203_Object_t *pObj, uint8_t *pPowerModeAck);
-int32_t TCPP0203_GetVBusDischargeAck(TCPP0203_Object_t *pObj, uint8_t *pVBusDischargeAck);
-int32_t TCPP0203_GetVConnDischargeAck(TCPP0203_Object_t *pObj, uint8_t *pVConnDischargeAck);
-int32_t TCPP0203_GetOCPVConnFlag(TCPP0203_Object_t *pObj, uint8_t *pOCPVConnFlag);
-int32_t TCPP0203_GetOCPVBusFlag(TCPP0203_Object_t *pObj, uint8_t *pGetOCPVBusFlag);
-int32_t TCPP0203_GetOVPVBusFlag(TCPP0203_Object_t *pObj, uint8_t *pOVPVBusFlag);
-int32_t TCPP0203_GetOVPCCFlag(TCPP0203_Object_t *pObj, uint8_t *pOVPCCFlag);
-int32_t TCPP0203_GetOTPFlag(TCPP0203_Object_t *pObj, uint8_t *pOTPFlag);
-int32_t TCPP0203_GetVBusOkFlag(TCPP0203_Object_t *pObj, uint8_t *pVBusOkFlag);
-int32_t TCPP0203_ReadTCPPType(TCPP0203_Object_t *pObj, uint8_t *pTCPPType);
-int32_t TCPP0203_ReadVCONNPower(TCPP0203_Object_t *pObj, uint8_t *pVCONNPower);
-int32_t TCPP0203_WriteCtrlRegister(TCPP0203_Object_t *pObj, uint8_t *pCtrlRegister);
-int32_t TCPP0203_ReadAckRegister(TCPP0203_Object_t *pObj, uint8_t *pAckRegister);
-int32_t TCPP0203_ReadFlagRegister(TCPP0203_Object_t *pObj, uint8_t *pFlagRegister);
-
-/**
- * @}
- */
-
-/* TCPP02/03 Type-C port protection driver structure */
-extern TCPP0203_Drv_t TCPP0203_Driver;
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-#endif /* TCPP0203_H */
diff --git a/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/tcpp0203_reg.c b/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/tcpp0203_reg.c
deleted file mode 100644
index 8025fa85e..000000000
--- a/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/tcpp0203_reg.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- ******************************************************************************
- * @file tcpp0203_reg.c
- * @author MCD Application Team
- * @brief This file provides unitary register function to control the TCPP02-03
- * Type-C port protection driver.
- ******************************************************************************
- * @attention
- *
- * Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.
- *
- * This software is licensed under terms that can be found in the LICENSE file
- * in the root directory of this software component.
- * If no LICENSE file comes with this software, it is provided AS-IS.
- *
- ******************************************************************************
- */
-
-/* Includes ------------------------------------------------------------------*/
-#include "tcpp0203_reg.h"
-
-/** @addtogroup BSP
- * @{
- */
-
-/** @addtogroup Components
- * @{
- */
-
-/** @addtogroup TCPP0203
- * @brief This file provides a set of functions needed to drive the
- * TCPP02/03 Type-C port protection codec.
- * @{
- */
-
-/************** Generic Function *******************/
-/*******************************************************************************
- * Function Name : tcpp0203_read_reg
- * Description : Generic Reading function. It must be fulfilled with either
- * I2C or SPI reading functions
- * Input : Register Address, length of buffer
- * Output : data Read
- *******************************************************************************/
-int32_t tcpp0203_read_reg(const TCPP0203_ctx_t *ctx, uint8_t reg, uint8_t *data, uint8_t length)
-{
- return ctx->ReadReg(ctx->handle, reg, data, length);
-}
-
-/*******************************************************************************
- * Function Name : tcpp0203_write_reg
- * Description : Generic Writing function. It must be fulfilled with either
- * I2C or SPI writing function
- * Input : Register Address, data to be written, length of buffer
- * Output : None
- *******************************************************************************/
-int32_t tcpp0203_write_reg(const TCPP0203_ctx_t *ctx, uint8_t reg, uint8_t *data, uint8_t length)
-{
- return ctx->WriteReg(ctx->handle, reg, data, length);
-}
-
-/******************************************************************************/
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
diff --git a/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/tcpp0203_reg.h b/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/tcpp0203_reg.h
deleted file mode 100644
index 92420e1fe..000000000
--- a/hw/bsp/stm32n6/boards/stm32n657nucleo/tcpp0203/tcpp0203_reg.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- ******************************************************************************
- * @file tcpp0203_reg.h
- * @author MCD Application Team
- * @brief Header of tcpp0203_reg.c
- *
- ******************************************************************************
- * @attention
- *
- * Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.
- *
- * This software is licensed under terms that can be found in the LICENSE file
- * in the root directory of this software component.
- * If no LICENSE file comes with this software, it is provided AS-IS.
- *
- ******************************************************************************
- */
-
-/* Define to prevent recursive inclusion -------------------------------------*/
-#ifndef TCPP0203_REG_H
-#define TCPP0203_REG_H
-
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Includes ------------------------------------------------------------------*/
-/** @addtogroup BSP
- * @{
- */
-
-/** @addtogroup Component
- * @{
- */
-
-/** @addtogroup TCPP0203
- * @{
- */
-
-
-/** @defgroup TCPP0203_Exported_Constants TCPP0203 Exported Constants
- * @{
- */
-/******************************************************************************/
-/****************************** REGISTER MAPPING ******************************/
-/******************************************************************************/
-#define TCPP0203_WRITE_REG 0x00U
-#define TCPP0203_PROG_CTRL TCPP0203_WRITE_REG
-#define TCPP0203_READ_REG1 0x01U
-#define TCPP0203_ACK_REG TCPP0203_READ_REG1
-#define TCPP0203_READ_REG2 0x02U
-#define TCPP0203_FLAG_REG TCPP0203_READ_REG2
-
-/**
- * @}
- */
-
-/************** Generic Function *******************/
-
-typedef int32_t (*TCPP0203_Write_Func)(const void *, uint8_t, uint8_t *, uint8_t);
-typedef int32_t (*TCPP0203_Read_Func)(const void *, uint8_t, uint8_t *, uint8_t);
-
-typedef struct
-{
- TCPP0203_Write_Func WriteReg;
- TCPP0203_Read_Func ReadReg;
- void *handle;
-} TCPP0203_ctx_t;
-
-/*******************************************************************************
- * Register : Generic - All
- * Address : Generic - All
- * Bit Group Name: None
- * Permission : W
- *******************************************************************************/
-int32_t tcpp0203_write_reg(const TCPP0203_ctx_t *ctx, uint8_t reg, uint8_t *data, uint8_t length);
-int32_t tcpp0203_read_reg(const TCPP0203_ctx_t *ctx, uint8_t reg, uint8_t *data, uint8_t length);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* TCPP0203_REG_H */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
-
-/**
- * @}
- */
diff --git a/hw/bsp/stm32n6/family.cmake b/hw/bsp/stm32n6/family.cmake
index c2c634525..76763937e 100644
--- a/hw/bsp/stm32n6/family.cmake
+++ b/hw/bsp/stm32n6/family.cmake
@@ -6,6 +6,7 @@ set(ST_PREFIX stm32${ST_FAMILY}xx)
set(ST_HAL_DRIVER ${TOP}/hw/mcu/st/stm32${ST_FAMILY}xx_hal_driver)
set(ST_CMSIS ${TOP}/hw/mcu/st/cmsis_device_${ST_FAMILY})
set(CMSIS_5 ${TOP}/lib/CMSIS_5)
+set(ST_TCPP0203 ${TOP}/hw/mcu/st/stm32-tcpp0203)
# include board specific
include(${CMAKE_CURRENT_LIST_DIR}/boards/${BOARD}/board.cmake)
diff --git a/hw/bsp/stm32n6/family.mk b/hw/bsp/stm32n6/family.mk
index d613e53d2..37087ed42 100644
--- a/hw/bsp/stm32n6/family.mk
+++ b/hw/bsp/stm32n6/family.mk
@@ -2,6 +2,7 @@ ST_FAMILY = n6
ST_PREFIX = stm32${ST_FAMILY}xx
ST_CMSIS = hw/mcu/st/cmsis_device_$(ST_FAMILY)
ST_HAL_DRIVER = hw/mcu/st/${ST_PREFIX}_hal_driver
+ST_TCPP0203 = hw/mcu/st/stm32-tcpp0203
UF2_FAMILY_ID = 0x6db66083
diff --git a/tools/get_deps.py b/tools/get_deps.py
index b2699b88c..6a36ef35d 100755
--- a/tools/get_deps.py
+++ b/tools/get_deps.py
@@ -133,6 +133,9 @@ deps_optional = {
'hw/mcu/st/stm32-mfxstm32l152': ['https://github.com/STMicroelectronics/stm32-mfxstm32l152.git',
'7f4389efee9c6a655b55e5df3fceef5586b35f9b',
'stm32h7'],
+ 'hw/mcu/st/stm32-tcpp0203': ['https://github.com/STMicroelectronics/stm32-tcpp0203.git',
+ '9918655bff176ac3046ccf378b5c7bbbc6a38d15',
+ 'stm32h7rs stm32n6'],
'hw/mcu/st/stm32c0xx_hal_driver': ['https://github.com/STMicroelectronics/stm32c0xx_hal_driver.git',
'41253e2f1d7ae4a4d0c379cf63f5bcf71fcf8eb3',
'stm32c0'],